lme4
R のパッケージを使用して、ロジスティック混合効果モデリングを行っています。
私の理解は、各変量効果の合計はゼロであるべきだということでした。
私が使用して混合モデル線形おもちゃを作るときはlmer
、ランダム効果は、<通常、というのが私の信念を確認する
のおもちゃ二項モデルではなく、(と私の本当の二項データのモデルで)をランダム効果の和の一部に〜 0.9。colSums(ranef(model)$groups) ~ 0
心配する必要がありますか?これをどのように解釈しますか?
これは線形おもちゃの例です
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
}
この場合、colMeansは常に出てきます
これは二項式のおもちゃの例です(実際のデータを共有しますが、公開のために提出されており、事前に投稿する際のジャーナルポリシーが何であるかわかりません)。
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
}
現在、colMeansは、線形の例よりも平均で0.3を上回り、平均して明らかに高くなっています。
3
これらのおもちゃの例を再現するコードをここに含めることができますか?これは、この興味深い動作を調査するのに役立ちます。
—
アーロンは、スタックオーバーフローを
私の実験でも同じ動作が見られました。ガウスの場合はゼロへの和の制約がありますが、非ガウスの場合はありません。ランダム効果の期待値がゼロである限り、ゼロへの合計が必要条件であるかどうかはわかりません。これは、いくつかのケースで役立つかもしれない、それがありますので、どうやらそれはガウスケース内のコードに簡単です...よりよく理解チャイムとうまくいけば、誰かに。
—
Jouni