Ошибка вызова в glmer() с family=gaussian (идентификационная ссылка)
Я пытаюсь исправить glmm для данных с 53 obs. из 17 переменных. Все переменные стандартизированы, но не соответствуют нормальному распределению и не имеют пропущенных значений. Str() фрейма данных выглядит примерно так:
- виды: фактор с 19 уровнями "spp1","spp2",..: 5 18 12 15 19 4 6 14 16 5 ...
- ассоциация: фактор с 4 уровнями "ассоА", "ассоБ",..: 1 1 2 2 2 3 3 4 4 1...
- site: Factor w / 2 level "site1","site2": 1 1 1 1 1 1 1 1 1 2 2...
- obs.no: int 1 1 1 1 1 1 1 1 1 1 1...
- trait1: число 0,652 0,428 0,535 0,389 0,486 ...
- черта 2: число 0,135 0,16 0,134 0,142 0,159
- (вырезано от 3 до 13)
Я выполнил следующий код, чтобы проверить значимость между сайтами ассоциативных классов для данной черты.
model1= glmer(trait1 ~ association+site+ (1 | species),data=df6,family=gaussian)
и получил ошибку, указанную ниже.
В glmer(trait1 ~ ассоциация + сайт + (1 | вид),data=df6,: вызов glmer() с family=gaussian (идентификационная ссылка) как ярлык для lmer () не рекомендуется; пожалуйста, вызовите lmer () напрямую)
После этого я хочу оценить параметры с квадратурой Гаусса-Эрмита. Любая рекомендация исправить эту ошибку и код для выполнения квадратуры Гаусса-Эрмита очень ценится.
2 ответа
Уточнение: причина того, чтоglmer(..., family = gaussian(link = "identity"))
не допускается (и чтоlme4
настаивает на том, чтобы ты использовалlmer(...)
вместо этого) заключается в том, что нет смысла использовать числовую квадратуру (Гаусса-Эрмита) для линейной смешанной модели (что является в точности частным случаем GLMM с гауссовским откликом и тождественной связью); в этом случае интеграл может быть выражен в закрытой форме как задача наименьших квадратов со штрафом (зависит от параметров дисперсии/ковариации случайных эффектов): см. Bates et al. 2015.
Вы фактически отправили ответ. Используйте lmer, а не glmer:
model1 = lmer(trait1~association+site+(1|species), data=df6)