Tôi đang sử dụng lme4
gói trong R để thực hiện một số mô hình hiệu ứng hỗn hợp logistic.
Sự hiểu biết của tôi là tổng của mỗi hiệu ứng ngẫu nhiên nên bằng không.
Khi tôi tạo mô hình hỗn hợp tuyến tính đồ chơi bằng cách sử dụng lmer
, các hiệu ứng ngẫu nhiên thường < xác nhận niềm tin của tôi rằng
mô hình nhị thức đồ chơi (và trong các mô hình dữ liệu nhị thức thực của tôi) một số tổng hiệu ứng ngẫu nhiên là ~ 0,9.colSums(ranef(model)$groups) ~ 0
Tôi có nên quan tâm không? Làm thế nào để tôi giải thích điều này?
Dưới đây là một ví dụ đồ chơi tuyến tính
toylin<-function(n=30,gn=10,doplot=FALSE){
require(lme4)
x=runif(n,0,1000)
y1=matrix(0,gn,n)
y2=y1
for (gx in 1:gn)
{
y1[gx,]=2*x*(1+(gx-5.5)/10) + gx-5.5 + rnorm(n,sd=10)
y2[gx,]=3*x*(1+(gx-5.5)/10) * runif(1,1,10) + rnorm(n,sd=20)
}
c1=y1*0;
c2=y2*0+1;
y=c(t(y1[c(1:gn),]),t(y2[c(1:gn),]))
g=rep(1:gn,each=n,times=2)
x=rep(x,times=gn*2)
c=c(c1,c2)
df=data.frame(list(x=x,y=y,c=factor(c),g=factor(g)))
(m=lmer(y~x*c + (x*c|g),data=df))
if (doplot==TRUE)
{require(lattice)
df$fit=fitted(m)
plot1=xyplot(fit ~ x|g,data=df,group=c,pch=19,cex=.1)
plot2=xyplot(y ~ x|g,data=df,group=c)
print(plot1+plot2)
}
print(colMeans(ranef(m)$g))
m
}
Trong trường hợp này, colMeans luôn xuất hiện
Dưới đây là một ví dụ về đồ chơi nhị thức (tôi sẽ chia sẻ dữ liệu thực tế của mình, nhưng nó đang được gửi để xuất bản và tôi không chắc chính sách tạp chí nào được đăng trước đó):
toybin<-function(n=100,gn=4,doplot=FALSE){
require(lme4)
x=runif(n,-16,16)
y1=matrix(0,gn,n)
y2=y1
for (gx in 1:gn)
{ com=runif(1,1,5)
ucom=runif(1,1,5)
y1[gx,]=tanh(x/(com+ucom) + rnorm(1)) > runif(x,-1,1)
y2[gx,]=tanh(2*(x+2)/com + rnorm(1)) > runif(x,-1,1)
}
c1=y1*0;
c2=y2*0+1;
y=c(t(y1[c(1:gn),]),t(y2[c(1:gn),]))
g=rep(1:gn,each=n,times=2)
x=rep(x,times=gn*2)
c=c(c1,c2)
df=data.frame(list(x=x,y=y,c=factor(c),g=factor(g)))
(m=lmer(y~x*c + (x*c|g),data=df,family=binomial))
if (doplot==TRUE)
{require(lattice)
df$fit=fitted(m)
print(xyplot(fit ~ x|g,data=df,group=c,pch=19,cex=.1))
}
print(colMeans(ranef(m)$g))
m
}
Bây giờ, colMeans đôi khi xuất hiện trên 0,3 và trung bình cao hơn so với ví dụ tuyến tính.