Бояться. Очень бояться
В прошлом году я брал интервью у Джона Нэша, автора Optim и Optimx, для статьи на сайте IBM DeveloperWorks. Мы говорили о том, как работают оптимизаторы и почему они терпят неудачу, когда терпят неудачу. Казалось, он воспринимал это как должное, что они часто делают. Поэтому диагностика входит в комплект. Он также подумал, что вам нужно «понять вашу проблему» и понять ваши данные. Все это означает, что к предупреждениям следует относиться серьезно, и это приглашение взглянуть на ваши данные другими способами.
Как правило, оптимизатор прекращает поиск, когда он больше не может улучшить функцию потерь на значительную величину. В принципе, он не знает, куда идти дальше. Если в этой точке градиент функции потерь не равен нулю, вы не достигли экстремума любого рода. Если гессиан не является положительным, но градиент равен нулю, вы не нашли минимума, но, возможно, вы нашли максимальную или седловую точку. Однако в зависимости от оптимизатора результаты о гессиане могут не предоставляться. В Optimx, если вы хотите, чтобы условия KKT были оценены, вы должны запросить их - они не оцениваются по умолчанию. (Эти условия смотрят на градиент и гессиан, чтобы увидеть, действительно ли у вас есть минимум.)
Проблема со смешанными моделями заключается в том, что оценки дисперсии для случайных эффектов ограничиваются положительными значениями, что ставит границу в пределах области оптимизации. Но предположим, что конкретный случайный эффект на самом деле не нужен в вашей модели - т. Е. Дисперсия случайного эффекта равна 0. Ваш оптимизатор направится к этой границе, не сможет продолжить работу и остановится с ненулевым градиентом. Если удаление этого случайного эффекта улучшило сходимость, вы поймете, что это была проблема.
Кроме того, обратите внимание, что асимптотическая теория максимального правдоподобия предполагает, что MLE находится во внутренней точке (то есть не на границе допустимых значений параметров) - поэтому тесты отношения правдоподобия для компонентов дисперсии могут не работать, когда действительно нулевая гипотеза нулевой дисперсии правда. Тестирование может быть выполнено с использованием имитационных тестов, реализованных в пакете RLRsim.
Для меня, я подозреваю, что оптимизаторы сталкиваются с проблемами, когда слишком мало данных для количества параметров, или предложенная модель действительно не подходит. Подумайте о стеклянной туфле и уродливой сводной сестре: вы не можете вставить свои данные в модель, как бы вы ни старались, и что-то должно дать.
Даже если данные соответствуют модели, они могут не иметь возможности оценить все параметры. По этому поводу со мной произошла забавная вещь. Я смоделировал несколько смешанных моделей, чтобы ответить на вопросо том, что произойдет, если вы не позволите коррелировать случайные эффекты при подборе модели смешанных эффектов. Я моделировал данные с сильной корреляцией между двумя случайными эффектами, а затем подгонял модель в обоих направлениях с помощью lmer: установление 0 корреляций и свободных корреляций. Корреляционная модель лучше, чем некоррелированная модель, но, что интересно, в 1000 симуляциях у меня было 13 ошибок при подборе истинной модели и 0 ошибок при подборе более простой модели. Я не до конца понимаю, почему это произошло (и я повторил симки с похожими результатами). Я подозреваю, что параметр корреляции довольно бесполезен, и оптимизатор не может найти значение (потому что это не имеет значения).
Вы спросили, что делать, когда разные оптимизаторы дают разные результаты. Джон и я обсуждали этот вопрос. Некоторые оптимизаторы, по его мнению, просто не так хороши! И у всех них есть слабые места - то есть наборы данных, которые приведут к их отказу. Именно поэтому он написал optimx, который включает в себя различные оптимизаторы. Вы можете запустить несколько на одном наборе данных.
Если два оптимизатора выдают одинаковые параметры, но различную диагностику - и эти параметры имеют смысл в реальном мире - тогда я был бы склонен доверять значениям параметров. Трудность может быть связана с диагностикой, которая не является надежной. Если вы не указали явно функцию градиента и / или матрицу Гессиана, оптимизатору потребуется оценить их по функции потерь и данным, что может привести к ошибкам.
Если вы также получаете разные значения параметров, вы можете попробовать разные начальные значения и посмотреть, что произойдет потом. Некоторые оптимизаторы и некоторые проблемы очень чувствительны к начальным значениям. Вы хотите начать в бальном парке.
lme4
(версия 1.1-7) имеет другое поведение предупреждения, которое, по мнению авторов, с меньшей вероятностью выдаст предупреждения «ложной тревоги». Вы можете попробовать обновить егоlme4
до последней версии, снова подгонять модель и посмотреть, получаете ли вы по-прежнему похожие предупреждения, по крайней мере, в первом случае.