Если мы подгоняем блеск, мы можем получить предупреждение, которое говорит нам, что модели трудно сойтись ... например
>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 0.00389462 (tol = 0.001)
Другой способ проверить сходимость, обсуждаемую в этой теме @Ben Bolker:
relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 1.152891e-05
если max(abs(relgrad))
есть <0.001
то все может быть хорошо ... так что в этом случае у нас есть противоречивые результаты? Как мы должны выбирать между методами и чувствовать себя в безопасности с нашими моделями?
С другой стороны, когда мы получаем более экстремальные значения, такие как:
>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 35.5352 (tol = 0.001)
relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 0.002776518
Означает ли это, что мы должны игнорировать результаты модели / оценки / p-значения? 0,0027 слишком велик, чтобы продолжить?
Когда разные оптимизаторы дают разные результаты и центрирование переменных / удаление параметров (снижение моделей до минимума) не помогает, но VIF низкие, модели не перегружены, а результаты моделей имеют логический смысл, основанный на априорных ожиданиях, кажется трудно понять что делать.
Советы о том, как интерпретировать проблемы конвергенции, насколько они необходимы, чтобы действительно волновать нас, и возможные способы попытаться справиться с ними, помимо упомянутых, были бы очень полезны.
Использование:
R version 3.1.0 (2014-04-10)
иlme4_1.1-6
источник
lme4
(версия 1.1-7) имеет другое поведение предупреждения, которое, по мнению авторов, с меньшей вероятностью выдаст предупреждения «ложной тревоги». Вы можете попробовать обновить егоlme4
до последней версии, снова подгонять модель и посмотреть, получаете ли вы по-прежнему похожие предупреждения, по крайней мере, в первом случае.Ответы:
Бояться. Очень бояться
В прошлом году я брал интервью у Джона Нэша, автора Optim и Optimx, для статьи на сайте IBM DeveloperWorks. Мы говорили о том, как работают оптимизаторы и почему они терпят неудачу, когда терпят неудачу. Казалось, он воспринимал это как должное, что они часто делают. Поэтому диагностика входит в комплект. Он также подумал, что вам нужно «понять вашу проблему» и понять ваши данные. Все это означает, что к предупреждениям следует относиться серьезно, и это приглашение взглянуть на ваши данные другими способами.
Как правило, оптимизатор прекращает поиск, когда он больше не может улучшить функцию потерь на значительную величину. В принципе, он не знает, куда идти дальше. Если в этой точке градиент функции потерь не равен нулю, вы не достигли экстремума любого рода. Если гессиан не является положительным, но градиент равен нулю, вы не нашли минимума, но, возможно, вы нашли максимальную или седловую точку. Однако в зависимости от оптимизатора результаты о гессиане могут не предоставляться. В Optimx, если вы хотите, чтобы условия KKT были оценены, вы должны запросить их - они не оцениваются по умолчанию. (Эти условия смотрят на градиент и гессиан, чтобы увидеть, действительно ли у вас есть минимум.)
Проблема со смешанными моделями заключается в том, что оценки дисперсии для случайных эффектов ограничиваются положительными значениями, что ставит границу в пределах области оптимизации. Но предположим, что конкретный случайный эффект на самом деле не нужен в вашей модели - т. Е. Дисперсия случайного эффекта равна 0. Ваш оптимизатор направится к этой границе, не сможет продолжить работу и остановится с ненулевым градиентом. Если удаление этого случайного эффекта улучшило сходимость, вы поймете, что это была проблема.
Кроме того, обратите внимание, что асимптотическая теория максимального правдоподобия предполагает, что MLE находится во внутренней точке (то есть не на границе допустимых значений параметров) - поэтому тесты отношения правдоподобия для компонентов дисперсии могут не работать, когда действительно нулевая гипотеза нулевой дисперсии правда. Тестирование может быть выполнено с использованием имитационных тестов, реализованных в пакете RLRsim.
Для меня, я подозреваю, что оптимизаторы сталкиваются с проблемами, когда слишком мало данных для количества параметров, или предложенная модель действительно не подходит. Подумайте о стеклянной туфле и уродливой сводной сестре: вы не можете вставить свои данные в модель, как бы вы ни старались, и что-то должно дать.
Даже если данные соответствуют модели, они могут не иметь возможности оценить все параметры. По этому поводу со мной произошла забавная вещь. Я смоделировал несколько смешанных моделей, чтобы ответить на вопросо том, что произойдет, если вы не позволите коррелировать случайные эффекты при подборе модели смешанных эффектов. Я моделировал данные с сильной корреляцией между двумя случайными эффектами, а затем подгонял модель в обоих направлениях с помощью lmer: установление 0 корреляций и свободных корреляций. Корреляционная модель лучше, чем некоррелированная модель, но, что интересно, в 1000 симуляциях у меня было 13 ошибок при подборе истинной модели и 0 ошибок при подборе более простой модели. Я не до конца понимаю, почему это произошло (и я повторил симки с похожими результатами). Я подозреваю, что параметр корреляции довольно бесполезен, и оптимизатор не может найти значение (потому что это не имеет значения).
Вы спросили, что делать, когда разные оптимизаторы дают разные результаты. Джон и я обсуждали этот вопрос. Некоторые оптимизаторы, по его мнению, просто не так хороши! И у всех них есть слабые места - то есть наборы данных, которые приведут к их отказу. Именно поэтому он написал optimx, который включает в себя различные оптимизаторы. Вы можете запустить несколько на одном наборе данных.
Если два оптимизатора выдают одинаковые параметры, но различную диагностику - и эти параметры имеют смысл в реальном мире - тогда я был бы склонен доверять значениям параметров. Трудность может быть связана с диагностикой, которая не является надежной. Если вы не указали явно функцию градиента и / или матрицу Гессиана, оптимизатору потребуется оценить их по функции потерь и данным, что может привести к ошибкам.
Если вы также получаете разные значения параметров, вы можете попробовать разные начальные значения и посмотреть, что произойдет потом. Некоторые оптимизаторы и некоторые проблемы очень чувствительны к начальным значениям. Вы хотите начать в бальном парке.
источник
Я просто хочу дополнить отличный ответ @ Placidia. Возможно, вы захотите проверить «Богато параметризованные линейные модели: аддитивные, временные ряды и пространственные модели с использованием случайных эффектов» Джеймса Ходжеса (2014). Он обсуждает то, что мы не знаем о смешанных моделях, и в то же время пытается предложить широкую теорию, а также практические советы по подгонке сложных моделей.
Я часто напуганный модельер, и я считаю, что обсуждения Ходжа о «головоломках» бесценны. Он объясняет странные случаи, возникающие из-за моделирования смешанных эффектов, включая «Случайный эффект, конкурирующий с фиксированным эффектом» и «Конкуренция между случайными эффектами». Звучит знакомо?
источник