Увеличить итерации для новой версии lmer?

Я только что обновил lme4 до версии 1.0-4, и когда я запускаю lmer(), моя модель смешанных эффектов, которая раньше сходилась, теперь выводит это предупреждение:

Warning message:
In (function (fn, par, lower = rep.int(-Inf, n), upper = rep.int(Inf,  :
  failure to converge in 10000 evaluations

Итак, я хотел бы попытаться увеличить количество итераций, чтобы посмотреть, смогу ли я это исправить. (Должен сказать, что понятия не имею, что вызывает предупреждение, поскольку первая часть сообщения звучит немного непрозрачно). В любом случае, я прочитал в документации, что теперь я должен использовать lmerControl (), но я не смог его реализовать. Может ли кто-нибудь дать мне конкретный пример того, как вы сделали бы это для конкретности? (файл справки не помогает). Вот моя модель:

m <- lmer(RT ~ Factor1*Factor2 + (0+Factor1+Factor2|Subject) + (1|Subject)  + (1|Item) + (0+Factor1+Factor2|Item), data= data)

Большое спасибо!

1 ответ

Решение

lmerControl Функция позволяет выбрать оптимизатор и передать ему параметры управления. Параметры, управляющие числом итераций или оценок, варьируются от функции к функции (как описано на странице справки для lmerControl). Оптимизатором по умолчанию является "Nelder_Mead", и для этого выбора оптимизатора максимальное количество оценок можно изменить, указав "maxfun" в списке параметров "optCtrl":

m <- lmer(RT ~ Factor1*Factor2 + (0+Factor1+Factor2|Subject) + 
               (1|Subject)  + (1|Item) + (0+Factor1+Factor2|Item),
          data= data, control=lmerControl(optCtrl=list(maxfun=20000) ) )

Это не гарантия того, что конвергенция будет достигнута. (Мой опыт показывает, что обычно достаточно максимального значения по умолчанию.) Вполне возможно, что ваших данных недостаточно, чтобы поддержать сложность модели, или модель построена неправильно для проектирования исследования.

Другие вопросы по тегам