Подтвердить что ты не робот

Как получить коэффициенты и их доверительные интервалы в моделях смешанных эффектов?

В моделях lm и glm я использую функции coef и confint для достижения цели:

m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
coef(m)
confint(m)

Теперь я добавил случайный эффект к модели - использовал модели смешанных эффектов, используя функцию lmer из пакета lme4. Но тогда функции coef и confint больше не работают для меня!

> 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

Я пытался использовать Google и использовать документы, но без результата. Пожалуйста, укажите мне в правильном направлении.

EDIT: Я также думал, что этот вопрос больше подходит для https://stats.stackexchange.com/, но я считаю его более техническим, чем статистическим, поэтому я сделал вывод, что он лучше всего подходит (SO)... как вы думаете?

4b9b3361

Ответ 1

Есть два новых пакета: lmerTest и lsmeans, который может вычислять доверительные пределы 95% для вывода lmer и glmer. Может быть, вы можете посмотреть на них? И coefplot2, я думаю, что может это сделать (хотя, как Бен указывает ниже, не так сложным образом, из стандартных ошибок по статистике Wald, в отличие от приближений Kenward-Roger и/или Satterthwaite df, используемых в lmerTest и lsmeans)... Просто стыдно, что в пакете lsmeans по-прежнему нет встроенных объектов построения шрифтов (так как есть в пакете effects(), который также возвращает 95% доверительные пределы для объектов lmer и glmer, но делает это, обновляя модель без каких-либо случайных факторов, что, очевидно, неверно).

Ответ 2

Я предлагаю вам использовать добрую старую lme (в пакете nlme). Он имеет уверенность, и если вам нужно согласовать контрасты, существует ряд вариантов (оцениваемых в gmodels, контраст в контрастах, glht в multcomp).

Почему p-значения и confint отсутствуют в lmer: см. http://finzi.psych.upenn.edu/R/Rhelp02a/archive/76742.html.

Ответ 3

Предполагая нормальное приближение для фиксированных эффектов (что и было сделано), мы можем получить доверительные интервалы 95% на

оценка + 1.96 * стандартная ошибка.

Применительно к компонентам дисперсии/случайным эффектам не применяется следующее.

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

Ответ 4

Не уверен, когда он был добавлен, но теперь confint() реализован в lme4. Например, следующий пример работает:

library(lme4)
m = lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
confint(m)

Ответ 5

Чтобы найти коэффициент, вы можете просто использовать итоговую функцию lme4

m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
m_summary <- summary(m)

иметь все коэффициенты:

m_summary$coefficient

Если вам нужен доверительный интервал, умножьте стандартную ошибку на 1.96:

CI <- m_summary$coefficient[,"Std. Error"]*1.96
print(CI)