para - intervalos de confianza en regresion
¿Cómo obtener los coeficientes y sus intervalos de confianza en modelos de efectos mixtos? (5)
En los modelos lm
y glm
, uso las funciones confint
y confint
para lograr el objetivo:
m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
coef(m)
confint(m)
Ahora agregué efectos aleatorios al modelo, usé modelos de efectos mixtos usando la función lmer del paquete lme4. Pero entonces, ¡las funciones confint
y confint
ya no funcionan para mí!
> mix1 = lmer(resp ~ 0 + var1 + var1:var2 + (1|var3))
# var1, var3 categorical, var2 continuous
> coef(mix1)
Error in coef(mix1) : unable to align random and fixed effects
> confint(mix1)
Error: $ operator not defined for this S4 class
Intenté buscar en Google y usar documentos pero sin resultado. Por favor, apúntame en la dirección correcta.
EDITAR: También estaba pensando si esta pregunta se ajusta más a https://stats.stackexchange.com/ pero lo considero más técnico que estadístico, por lo que concluí que encaja mejor aquí (SO) ... ¿qué piensa?
Hay dos nuevos paquetes, lmerTest y lsmeans , que pueden calcular los límites de confianza del 95% para la lmer
de lmer
y glmer
. Tal vez usted puede mirar en esos? Y coefplot2 , creo que también puede hacerlo (aunque como Ben señala a continuación, de una manera no tan sofisticada, a partir de los errores estándar en las estadísticas de Wald, a diferencia de las aproximaciones de df de Kenward-Roger y / o Satterthwaite utilizadas en lmerTest
y lsmeans
) ... Es una lástima que todavía no haya facilidades de trazado incorporadas en el paquete lsmeans
(como hay en los effects()
paquete effects()
, que por cierto también devuelve límites de confianza del 95% en objetos lmer
y glmer
, pero lo hace glmer
montar un modelo sin ningún de los factores aleatorios, que evidentemente no es correcto).
Le sugiero que use buen viejo lme (en el paquete nlme). Tiene confinamiento, y si necesita confinamiento de contrastes, hay una serie de opciones (estimable en gmodels, contraste en contrastes, glht en multcomp).
Por qué los valores de p y el valor de confinamiento están ausentes en lmer: consulte http://finzi.psych.upenn.edu/R/Rhelp02a/archive/76742.html .
No estoy seguro de cuándo se agregó, pero ahora confint () se implementa en lme4. Por ejemplo, el siguiente ejemplo funciona:
library(lme4)
m = lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
confint(m)
Para encontrar el coeficiente, simplemente puede usar la función de resumen de lme4
m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
m_summary <- summary(m)
tener todos los coeficientes:
m_summary$coefficient
Si desea el intervalo de confianza, multiplique el error estándar por 1.96:
CI <- m_summary$coefficient[,"Std. Error"]*1.96
print(CI)
Suponiendo una aproximación normal para los efectos fijos (que también habría hecho la constricción), podemos obtener intervalos de confianza del 95% mediante
estimación + 1.96 * error estándar.
Lo siguiente no se aplica a los componentes de varianza / efectos aleatorios.
library("lme4")
mylm <- lmer(Reaction ~ Days + (Days|Subject), data =sleepstudy)
# standard error of coefficient
days_se <- sqrt(diag(vcov(mylm)))[2]
# estimated coefficient
days_coef <- fixef(mylm)[2]
upperCI <- days_coef + 1.96*days_se
lowerCI <- days_coef - 1.96*days_se