EffectsEl paquete proporciona una manera muy rápida y conveniente de graficar los resultados del modelo de efectos mixtos lineales obtenidos a través delme4 paquete . La effectfunción calcula los intervalos de confianza (IC) muy rápidamente, pero ¿qué tan confiables son estos intervalos de confianza?
Por ejemplo:
library(lme4)
library(effects)
library(ggplot)
data(Pastes)
fm1 <- lmer(strength ~ batch + (1 | cask), Pastes)
effs <- as.data.frame(effect(c("batch"), fm1))
ggplot(effs, aes(x = batch, y = fit, ymin = lower, ymax = upper)) +
geom_rect(xmax = Inf, xmin = -Inf, ymin = effs[effs$batch == "A", "lower"],
ymax = effs[effs$batch == "A", "upper"], alpha = 0.5, fill = "grey") +
geom_errorbar(width = 0.2) + geom_point() + theme_bw()

Según los CI calculados usando el effectspaquete, el lote "E" no se superpone con el lote "A".
Si intento lo mismo usando la confint.merModfunción y el método predeterminado:
a <- fixef(fm1)
b <- confint(fm1)
# Computing profile confidence intervals ...
# There were 26 warnings (use warnings() to see them)
b <- data.frame(b)
b <- b[-1:-2,]
b1 <- b[[1]]
b2 <- b[[2]]
dt <- data.frame(fit = c(a[1], a[1] + a[2:length(a)]),
lower = c(b1[1], b1[1] + b1[2:length(b1)]),
upper = c(b2[1], b2[1] + b2[2:length(b2)]) )
dt$batch <- LETTERS[1:nrow(dt)]
ggplot(dt, aes(x = batch, y = fit, ymin = lower, ymax = upper)) +
geom_rect(xmax = Inf, xmin = -Inf, ymin = dt[dt$batch == "A", "lower"],
ymax = dt[dt$batch == "A", "upper"], alpha = 0.5, fill = "grey") +
geom_errorbar(width = 0.2) + geom_point() + theme_bw()

Veo que todos los CI se superponen. También recibo advertencias que indican que la función no pudo calcular los CI confiables. Este ejemplo, y mi conjunto de datos real, me hace sospechar que el effectspaquete toma atajos en el cálculo de CI que podrían no estar completamente aprobados por los estadísticos. ¿Cuán confiables son los CI devueltos por effectfunción del effectspaquete para lmerobjetos?
¿Qué he intentado? Al mirar el código fuente, noté que la effectfunción se basa en la Effect.merModfunción, que a su vez se dirige a la Effect.merfunción, que se ve así:
effects:::Effect.mer
function (focal.predictors, mod, ...)
{
result <- Effect(focal.predictors, mer.to.glm(mod), ...)
result$formula <- as.formula(formula(mod))
result
}
<environment: namespace:effects>
mer.to.glmLa función parece calcular la matriz de varianza-covariable a partir del lmerobjeto:
effects:::mer.to.glm
function (mod)
{
...
mod2$vcov <- as.matrix(vcov(mod))
...
mod2
}
Esto, a su vez, probablemente se usa en la Effect.defaultfunción para calcular los IC (podría haber entendido mal esta parte):
effects:::Effect.default
...
z <- qnorm(1 - (1 - confidence.level)/2)
V <- vcov.(mod)
eff.vcov <- mod.matrix %*% V %*% t(mod.matrix)
rownames(eff.vcov) <- colnames(eff.vcov) <- NULL
var <- diag(eff.vcov)
result$vcov <- eff.vcov
result$se <- sqrt(var)
result$lower <- effect - z * result$se
result$upper <- effect + z * result$se
...
No sé lo suficiente sobre LMM para juzgar si este es un enfoque correcto, pero teniendo en cuenta la discusión sobre el cálculo del intervalo de confianza para LMM, este enfoque parece sospechosamente simple.

Respuestas:
Todos los resultados son esencialmente los mismos ( para este ejemplo en particular ). Algunas diferencias teóricas son:
lsmeans,effects,confint(.,method="Wald"); a excepción delsmeans, estos métodos ignoran los efectos de tamaño finito ("grados de libertad"), pero en este caso apenas hace ninguna diferencia (df=40es prácticamente indistinguible de infinitodf)Creo que todos estos enfoques son razonables. (algunos son más aproximados que otros), pero en este caso apenas hace ninguna diferencia cuál usa. Si le preocupa, pruebe varios métodos contrastantes en sus datos, o en datos simulados que se parecen a los suyos, y vea qué sucede ...
(PD: no pondría demasiado peso en el hecho de que los intervalos de confianza
AyEno se superponen. Tendría que hacer un procedimiento de comparación por pares adecuado para hacer inferencias confiables sobre las diferencias entre este par de estimaciones en particular . ..)IC 95%:
Código de comparación:
fuente
effectspaquete y la superposición de CI en este caso?multcomppaquete, pero requiere al menos un un poco de cuidado)Parece que lo que ha hecho en el segundo método es haber calculado intervalos de confianza para los coeficientes de regresión, luego los ha transformado para obtener CI para las predicciones. Esto ignora las covarianzas entre los coeficientes de regresión.
Intente ajustar el modelo sin una intercepción, de modo que los
batchefectos realmente sean las predicciones, yconfintle devuelvan los intervalos que necesita.Anexo 1
Hice exactamente lo que sugerí anteriormente:
Estos intervalos parecen coincidir con los resultados de
effects.Anexo 2
Otra alternativa es el paquete lsmeans . Obtiene grados de libertad y una matriz de covarianza ajustada del paquete pbkrtest .
Estos están aún más en línea con los± 1.96 × se . Así que ahora creo que esos no son muy confiables.
effectresultados: los errores estándar son idénticos, peroeffectusan df diferentes. Losconfintresultados en el Anexo 1 son aún más estrechos que los asintóticos basados en el usoLos resultados de
effectylsmeansson similares, pero con una situación de factores múltiples desequilibrados,lsmeanspor defecto promedios sobre factores no utilizados con pesos iguales, mientras que loseffectpesos por las frecuencias observadas (disponibles como una opción enlsmeans).fuente
effectsse puede confiar en los CI del paquete para loslmerobjetos. Estoy considerando usar los resultados en una publicación y quiero estar seguro de que los IC se calculan utilizando un método aprobado para LMM..sig01y.sigmaproducidos porconfint, son esos intervalos de confianza para la varianza ? o intervalo de confianza de la desviación estándar ?lmerobtener una respuesta definitiva. Sin embargo, las personas generalmente usan anotaciones comosigmapara referirse a desviaciones estándar y /sigma.squareosigma^2para referirse a variaciones.