Ошибка в модели случайного пересечения и случайного наклона

Я использую пакет lme4 в R и пытаюсь вписаться в модель случайного наклона и случайного перехвата. Я был бы очень полезен, если бы кто-нибудь помог мне понять эту ошибку, когда я запускаю модель случайного наклона и случайного перехвата, и что делать с этой ошибкой:

mdl17<-lmer(yld.res ~ brk + (1+brk|state),data=data1,REML="FALSE")
Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
   Model failed to converge with max|grad| = 1.84098 (tol = 0.002, component 3)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
   Model failed to converge: degenerate  Hessian with 1 negative eigenvalues

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


person Community    schedule 15.07.2014    source источник
comment
Во-первых: вы должны указать, если это правда, что это из пакета lme4. Далее: сбой конвергенции происходит, когда ваш набор данных нестабилен или не имеет уникального решения (например, недоопределенного). Алгоритмы подгонки — это не волшебство.   -  person Carl Witthoft    schedule 15.07.2014
comment
Да, я использую пакет lme4. То есть я ничего не могу с этим поделать? Я пробовал это, изменяя масштаб данных, но все равно это не работает   -  person    schedule 15.07.2014
comment
PS. Вы, вероятно, хотите REML=FALSE, а не REML="FALSE"   -  person Ben Bolker    schedule 16.07.2014


Ответы (1)


Как заявил @CarlWitthoft, предупреждение информирует вас о сбое конвергенции вашей модели. Он может быть недо- или переопределен. Вы также должны проверить, имеет ли вообще смысл модель, которую вы пытаетесь подогнать. Кроме того, вам обязательно следует установить самую последнюю версию пакета lme4, запустив update.packages("lme4") или (если вы хотите обновить все пакеты) update.packages(). Текущие пакеты lme4 содержат собственную страницу с предупреждениями о конвергенции. После того, как вы загрузили его через library(lme4), вы можете получить доступ к этой справочной странице, введя ?convergence. Там вы найдете дополнительную информацию о вашем предупреждающем сообщении. (Обратите внимание, что будущая версия может не обязательно содержать эту страницу.) В качестве дополнительной меры вы можете поискать, как использовать другой оптимизатор. Новая версия lme4 например. импортирует nloptr, который можно использовать.

Вы также должны проверить страницу Github lme4: https://github.com/lme4/lme4/ в случаях сталкивались ли вы с предупреждениями или сообщениями об ошибках, которые вас беспокоят. Для вашего конкретного случая есть некоторая информация, которая может иметь значение:

«Последние версии lme4 (e.g. 1.1-6) выдают ложные предупреждения о сходимости. Существует сводная публикация о r-sig-mixed-models. Если вы получаете предупреждения о max|grad|, но модель проходит этот тест:

dd <- fit@optinfo$derivs
with(dd,max(abs(solve(Hessian,gradient)))<2e-3)

то вы видите ложноположительное предупреждение, и проблема исчезнет в будущих версиях (1.1-7 and up)."[1]

Если страница Github содержит соответствующую информацию (например, предупреждение или ошибка относится к текущей версии на CRAN), вам следует рассмотреть возможность установки текущего мастера lme4 из Github и проверить, исчезнет ли проблема при его использовании:

(1) Сначала установите devtools: install.packages("devtools") и присоедините его library(devtools) к вашему пространству имен.

(2) Затем используйте: install_github("lme4/lme4", dependencies = TRUE) для установки последнего мастера пакета lme4 из Github. (Если вы столкнулись с ошибкой, указывающей, что построение виньеток не удалось, несмотря на dependencies = TRUE, вы должны передать build_vignettes = FALSE вашему вызову install_github().)


Вот ссылка на сводку предупреждений о конвергенции: http://thread.gmane.org/gmane.comp.lang.r.lme4.devel/11893 (получено 16.07.2014T10:04+02:00)

person lord.garbage    schedule 15.07.2014
comment
На самом деле версия 1.1-7 сейчас находится в CRAN, поэтому установка с Github не требуется. (К сожалению, это также увеличивает вероятность того, что ОП уже использует последнюю версию/имеет реальную проблему сходимости...) - person Ben Bolker; 16.07.2014
comment
Что мне говорит dd ‹- fit@optinfo$derivs with(dd,max(abs(solve(Hessian,gradient)))‹2e-3)? Я получаю ЛОЖЬ. Хорошо это или плохо? - person Ben; 20.09.2017