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

В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

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

РЕДАКТИРОВАТЬ: я также думал, подходит ли этот вопрос большеhttps://stats.stackexchange.com/ но я считаю, что это скорее технический, чем статистический, поэтому я пришел к выводу, что это подходит лучше всего (SO) ... что вы думаете?

 TMS17 июн. 2012 г., 18:09
Спасибо @joran. Моя спецификация модели, возможно, необычна, так как пропускает перехват - я хочу сделать это, потому что в противном случае коэффициенты являются бессмысленными.var1 является категоричным, и я хочу "перехваты, специфичные для группы" для каждой своей категории. Если я позволю перехват (удалить0 +  из формулы),coef работает, но не дает того, что я ожидаю.fixef отлично работает, спасибо! Тем не менееconfint не работает вообще.
 TMS17 июн. 2012 г., 23:52
Спасибо @ baha-kev, но вы уверены, что доверительные интервалы в этом объекте? Я так не думаю ...
 baha-kev17 июн. 2012 г., 18:26
Я бы извлек необходимые данные непосредственно из объекта S4 - см. Ответы этого поста:stackoverflow.com/questions/8526681/…
 Ben Bolker26 июн. 2012 г., 10:23
Я исправляю ошибку (пусть)? вcoef в r-forge версиях lme4 (lme4.0, в настоящее время стабильная ветвь, которая соответствует CRAN-lme4), и lme4, ветвь разработки).confint как уже говорилось, это большая банка червей, хотя ветка разработки lme4 может вычислять доверительные интервалы профиля ...
 joran17 июн. 2012 г., 18:01
Чтобы начать, пока не появится кто-то вроде @BenBolker (эксперт):?lmer методы списковfixef а такжеranef в дополнение кcoef, Поскольку ваша ошибка говорит о том, что у нее возникли проблемы с их объединением, проблема, вероятно, заключается в том, что спецификация вашей модели как-то "необычна".

Ответы на вопрос(5)

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

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

 26 июн. 2012 г., 10:27
с помощьюintervals(mix1)  дадите ли вы асимптотические доверительные интервалы, как в ответе @ julieth ниже;intervals(mix1)$fixed извлекает интервалы с фиксированным эффектом. Они основаны на нормальном приближении, а не на распределении t или чем-то более экзотическом ...
 TMS18 июн. 2012 г., 00:07
Спасибо, Дитер, я попробую старую упаковку. Отсутствие p-значения - и возможность сразу сказать значение - также встревожило меня! Не имеет никакого смысла для меня, если я смогу получить доверительный интервал, тогда я просто посмотрю, содержит ли он ноль - и все равно имеет значение! С Уважением,
 TMS18 июн. 2012 г., 13:00
Дитер, что ты имеешь в виду под "confint (glht"?? В пакете multcomp нет функции confint ...
 18 июн. 2012 г., 08:24
Я забыл упомянуть, что confint (glht ... из пакета multcomp дает асимптотические доверительные интервалы для lmer. Предостережения Дугласа Бейтса все еще применяются, но его смелый шаг, чтобы оставить p-значение из lmer / gaussian, безусловно, всколыхнул суп.
 TMS18 июн. 2012 г., 13:20
Дитер, я попробовал старый пакет IME, хорошо, у него есть р-значения. Но моя главная задача - получить доверительный интервал с фиксированными коэффициентами эффекта. Как я могу это сделать? confint возвращает какую-то большую матрицу, glht кажется слишком сложным ..

Чтобы найти коэффициент, вы можете просто использовать функцию итога 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)
 25 мая 2017 г., 14:54
здесь коэффициент 1,96 для 95% доверительного интервала, конечно

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

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

Есть два новых пакета,lmerTest а такжеlsmeans, который может рассчитать 95% доверительные интервалы дляlmer а такжеglmer выход. Может быть, вы можете посмотреть на них? А такжеcoefplot2Я думаю, что может сделать это тоже (хотя, как указывает Бен ниже, не так изощренно, из стандартных ошибок в статистике Вальда, в отличие от приближения Кенварда-Роджера и / или Саттерсвэйта, используемого вlmerTest а такжеlsmeans) ... просто обидно, что в упаковке до сих пор нет встроенных заговорщиковlsmeans (как есть в упаковкеeffects()Который, кстати, также возвращает 95% доверительные пределы наlmer а такжеglmer объекты, но делает это путем переоснащения модели без каких-либо случайных факторов, что, очевидно, не правильно).

 26 июн. 2013 г., 23:14
coefplot2 делает это очень наивно, вычисляя в 1,96 раза стандартные ошибки Вальда - это не решает очень значительных проблем коррекции конечного размера в конфигурационных элементах
 01 окт. 2015 г., 13:29
Проверьте также этот постstats.stackexchange.com/questions/117641/… для более подробного ответа
 15 мая 2018 г., 11:00
Обратите внимание, что многие из этих комментариев сейчас довольно устарели. С помощьюemmeans или жеlmerTest это путь, и сейчас есть методы построения.
 TMS26 июн. 2013 г., 22:41
+1 вау спасибо, но пожалуйста исправьте ссылки ..
 19 дек. 2017 г., 07:47
lmerTest теперь приятно описан в JoSSjstatsoft.org/article/view/v082i13

Предполагая нормальную аппроксимацию для фиксированных эффектов (что было бы возможно и для ограничения), мы можем получить 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
 18 июн. 2012 г., 02:36
Т-распределение асимптотически нормальное, и степени свободы для члена ошибки во многих многоуровневых проектах настолько высоки, что распределение ошибок в этой точке является нормальным. Поэтому, если у вас есть проект с большим количеством степеней свободы, это вполне разумная оценка доверительного интервала.
 TMS17 июн. 2012 г., 23:57
Привет Джулиет, хорошая идея, однакоthere is a difference between the real confidence intervals (computed by confint) and these ..., Может быть, t-распределение даст тот же результат, что и confint (хотя я не уверен в этом), но в этом случае я не знаю df, который следует использовать.
 TMS17 июн. 2012 г., 23:59
Другими словами, это причина, почему я предпочитаю использовать такие функции, какconfint и т.д., чтобы сделать все это для меня ... (особенно, если я не уверен в нормальном распределении коэффициентов).

Ваш ответ на вопрос