Як нас лякає нас попередження про конвергенцію в lme4


88

Якщо ми підганяємо глімер, ми можемо отримати попередження, яке повідомляє нам, що модель знаходить важкий час для сходження ... наприклад

>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

Чи означає це, що ми повинні ігнорувати результати / оцінки / р-значення моделі? Чи є занадто великим 0,0027 для продовження?

Коли різні оптимізатори дають різні результати, а центрування змінних / видалення параметрів (знімання моделей до мінімуму) не допомагає, але ВІФ низькі, моделі не перекидаються, а результати моделей мають логічний сенс на основі апріорних очікувань, здається, важко знати що робити.

Поради щодо того, як інтерпретувати проблеми конвергенції, наскільки вони потрібні надзвичайно, щоб нас справді хвилювали, і можливі способи спробувати вирішити їх, ніж зазначені, були б дуже корисними.

Використання: R version 3.1.0 (2014-04-10)таlme4_1.1-6


10
Новіша версія lme4(версія 1.1-7) має різну попереджувальну поведінку, за якою автори вважають, що менша ймовірність давати попередження про "помилкову тривогу". Ви можете спробувати оновити lme4до найновішої версії, знову встановити модель і побачити, чи все-таки отримуєте подібні попередження, принаймні у першому випадку.
Джейк Уестпад

Відповіді:


91

Боятися. Дуже бояться.

Минулого року я взяв інтерв’ю у Джона Неша, автора оптимізму та оптимізму, для статті на сайті DeveloperWorks IBM. Ми поговорили про те, як працюють оптимізатори та чому вони виходять з ладу. Він ніби сприймав це як належне, що вони часто роблять. Ось чому діагностика включена в комплект. Він також подумав, що вам потрібно "зрозуміти свою проблему" та зрозуміти ваші дані. Все це означає, що попередження слід сприймати серйозно і є запрошенням переглянути ваші дані іншими способами.

Зазвичай оптимізатор припиняє пошук, коли він більше не може поліпшити функцію втрат на значну суму. Не знаю, куди йти далі, в основному. Якщо градієнт функції втрати не дорівнює нулю в цій точці, ви не досягли будь-якого екстремуму. Якщо гессіан не є позитивним, але градієнт дорівнює нулю, ви не знайшли мінімуму, але, можливо, ви знайшли максимальну або точку сідла. Однак, залежно від оптимізатора, результати щодо гессі не можуть бути надані. В Optimx, якщо ви хочете, щоб умови KKT були оцінені, ви повинні запитати їх - вони не оцінюються за замовчуванням. (Ці умови дивляться на градієнт і Гессіан, щоб побачити, чи справді у вас є мінімум.)

Проблема змішаних моделей полягає в тому, що оцінки дисперсії для випадкових ефектів обмежені позитивними, таким чином, розміщуючи межу в області оптимізації. Але припустимо, що конкретна випадкова дія дійсно не потрібна вашій моделі - тобто дисперсія випадкового ефекту дорівнює 0. Ваш оптимізатор попрямує до цієї межі, не зможе перейти і зупиниться з ненульовим градієнтом. Якщо усунення цього випадкового ефекту покращило конвергенцію, ви будете знати, що це була проблема.

Зауважте, що теорія максимальної ймовірності асимптотичної припущення передбачає, що MLE знаходиться у внутрішній точці (тобто не на межі допустимих значень параметрів) - тому тести відношення ймовірності для компонентів дисперсії можуть не працювати, коли дійсно нульова гіпотеза нульової дисперсії правда. Тестування може бути здійснено за допомогою симуляційних тестів, що реалізовані в пакеті RLRsim.

На мій погляд, я підозрюю, що оптимізатори стикаються з проблемами, коли даних про кількість параметрів недостатньо, або запропонована модель насправді не підходить. Подумайте про скляну тапочку та потворну подружку: ви не можете ввімкнути свої дані в модель, як би ви не намагалися, і щось потрібно дати.

Навіть якщо дані трапляються відповідно до моделі, вони можуть не мати можливості оцінювати всі параметри. Смішна річ зі мною трапилася. Я імітував кілька змішаних моделей, щоб відповісти на запитанняпро те, що станеться, якщо ви не дозволяєте співвідносити випадкові ефекти при встановленні моделі змішаних ефектів. Я моделював дані з сильною кореляцією між двома випадковими ефектами, потім підходив до моделі обома способами з lmer: позиціонуючи 0 кореляцій та вільних кореляцій. Модель кореляції підходить краще, ніж некорельована модель, але що цікаво, в 1000 моделюваннях у мене було 13 помилок при встановленні справжньої моделі та 0 помилок при встановленні більш простої моделі. Я не повністю розумію, чому це сталося (і я повторив симси з подібними результатами). Я підозрюю, що параметр кореляції є досить марним і оптимізатор не може знайти значення (тому що це не має значення).

Ви запитали, що робити, коли різні оптимізатори дають різні результати. Ми з Джоном обговорили цю тему. Деякі оптимізатори, на його думку, просто не такі хороші! І всі вони мають слабкі місця - тобто набори даних, які спричинить їх збій. Ось чому він написав optimx, до якого входять різні оптимізатори. Ви можете запустити декілька в одному наборі даних.

Якщо два оптимізатори дають однакові параметри, але різні діагностики - а ці параметри мають сенс реального світу - то я б схильний довіряти значенням параметрів. Складність може полягати в діагностиці, яка не є дурною. Якщо ви явно не надали функцію градієнта та / або матрицю Гессіана, оптимізатору потрібно буде оцінити їх за допомогою функції втрати та даних, що є просто чимось іншим, що може піти не так.

Якщо ви також отримуєте різні значення параметрів, то, можливо, ви захочете спробувати різні початкові значення і подивитися, що буде потім. Деякі оптимізатори та деякі проблеми дуже чутливі до вихідних значень. Ви хочете стартувати в парку балів.


3
AHHH! Я щойно відкрив це питання, щоб зробити "Бійся. Дуже боїшся". жарт. Добре вам. Також добре включити його до фактичної відповіді, чого я не мав наміру робити.
Олексій

2
Ви справді повинні прочитати книгу, яку написав Наш. Визначити гессіанця на практиці дуже складно, тому оптимізатор, можливо, сходився у багатьох випадках, але гессієць неточний, тому у випадку, коли ви отримуєте подібні результати від різних оптимізаторів, але попередження про конвергенцію часто трапляється, що ваш гессіан є хибним, а не вашою моделлю. Гессіанські або градієнтні тести якраз існують для заспокоєння. Іноді гессіан також має не так багато сенсу, як, коли у вас є оптимізатор з обмеженими межами, але ваш гессіанський алгоритм не враховує це (як lme4), і ви потрапляєте на межу.

18

Я просто хочу доповнити чудову відповідь @ Плацидії. Можливо, ви хочете перевірити "Широко параметризовані лінійні моделі: адитивні, часові ряди та просторові моделі з використанням випадкових ефектів" Джеймса Ходжеса (2014). Він обговорює те, чого ми не знаємо про змішані моделі, і одночасно намагається запропонувати широку теорію, а також практичні поради щодо підгонки складних моделей.

Сам часто лякаючий модельєр, я вважаю, що дискусії Ходже про "пазли" безцінні. Він пояснює дивні випадки, що виникають в результаті моделювання змішаних ефектів, включаючи "Випадковий ефект, що конкурує з фіксованим ефектом" та "Конкуренція між випадковими ефектами". Звучить знайомо?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.