#r #lme4 #model-fitting
Вопрос:
Я построил следующую модель
model2 lt;- lmerTest::lmer(LPP2POz ~ 1 COND (1|ID), data = dataLPP2POz)
Если я попытаюсь запустить следующую функцию, она вернет эту ошибку:
printCoefmat(summary(model2)$tTable, has.Pvalue = T, P.values = T)
Вот краткий кадр данных из набора данных, над которым я работаю
dput(head(dataLPP2POz)) structure(list(ID = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("01", "04", "06", "07", "08", "09", "10", "11", "12", "13", "15", "16", "17", "18", "19", "21", "22", "23", "25", "27", "28", "30", "44", "46", "49"), class = "factor"), GR = c("RP", "RP", "RP", "RP", "RP", "RP"), SES = c("V", "V", "V", "V", "V", "V"), COND = structure(c(1L, 2L, 3L, 1L, 2L, 3L), .Label = c("NEG-CTR", "NEG-NOC", "NEU-NOC" ), class = "factor"), LPP2POz = c(7.91468942320841, 9.94838815736199, 10.2186482048953, 1.07455889922813, 1.65917850515029, 3.22422743232682 )), row.names = c(NA, 6L), class = "data.frame") Error in printCoefmat(summary(model2)$tTable, has.Pvalue = T, P.values = T) : 'x' must be coefficient matrix/data frame
Кто-нибудь в состоянии понять, в чем заключается ошибка?
Комментарии:
1. Если я побегу
summary(model2)$tTable
, то попадуNULL
. Может быть, вы имели в видуsummary(model2)$coefficients
?2. Точно!! Это тот результат, который я искал. Материалы, с которыми я ознакомился, сообщали об этом планшете и не обновлялись.
Ответ №1:
Немного развивая и уточняя комментарии @aosmith.
Извлечение таблицы коэффициентов работает по-разному для разных пакетов со смешанной моделью. Более новое значение по умолчанию (которое работает для lme4
, lmerTest
, glmmTMB
) заключается в том, что таблицу коэффициентов можно извлечь как summary(model)$coefficients
(под капотом это означает, что summary()
метод возвращает список с таблицей коэффициентов, сохраненной в качестве элемента $coefficients
). Для этих пакетов coef(summary(model))
это еще лучшая практика.
Для объектов из nlme
пакета (т. Е. lme
) сводная таблица хранится как summary(model)$tTable
(это прискорбно, но nlme
она старше, чем сама R …
Это не дает точно таких же результатов , как printCoefmat
, но вы также можете изучить некоторые варианты красивой печати выходных broom.mixed::tidy()
данных, целью которых является создание уровня совместимости, чтобы вам не нужно было запоминать все это …
Комментарии:
1. Спасибо за полный ответ, который вы опубликовали. Действительно, синтаксис модели в материале, с которым я ознакомился, был сформулирован функцией nlme::lme4 (). Вот почему в этом примере была представлена таблица TTable. Если вы считаете, что это окажется полезным для других пользователей, я приглашаю проголосовать за этот вопрос, если вы согласны. Спасибо 🙂