Estoy usando el lme4
paquete en R para hacer algunos modelos logísticos de efectos mixtos.
Entiendo que la suma de cada efecto aleatorio debe ser cero.
Cuando hago modelos mixtos lineales de juguete usando lmer
, los efectos aleatorios generalmente son < confirmando mi creencia de que el
But en los modelos binomiales de juguete (y en los modelos de mis datos binomiales reales) algunos de los efectos aleatorios suman ~ 0.9.colSums(ranef(model)$groups) ~ 0
¿Debería Preocuparme? ¿Cómo interpreto esto?
Aquí hay un ejemplo de juguete lineal
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
}
En este caso, los colMeans siempre salen
Aquí hay un ejemplo de juguete binomial (compartiría mis datos reales, pero se está enviando para su publicación y no estoy seguro de cuál es la política de la publicación sobre la publicación de antemano):
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
}
Ahora los colMeans a veces salen por encima de 0.3, y definitivamente más altos, en promedio que el ejemplo lineal.
fuente
Respuestas:
Dado que el código de @ Hemmo quedó ligeramente destrozado en el cuadro "Bounty", agrego esta versión reformateada como "wiki de la comunidad". Si este no es un uso apropiado de la wiki, me disculpo de antemano. Siéntase libre de eliminarlo.
fuente