Боятися. Дуже бояться.
Минулого року я взяв інтерв’ю у Джона Неша, автора оптимізму та оптимізму, для статті на сайті DeveloperWorks IBM. Ми поговорили про те, як працюють оптимізатори та чому вони виходять з ладу. Він ніби сприймав це як належне, що вони часто роблять. Ось чому діагностика включена в комплект. Він також подумав, що вам потрібно "зрозуміти свою проблему" та зрозуміти ваші дані. Все це означає, що попередження слід сприймати серйозно і є запрошенням переглянути ваші дані іншими способами.
Зазвичай оптимізатор припиняє пошук, коли він більше не може поліпшити функцію втрат на значну суму. Не знаю, куди йти далі, в основному. Якщо градієнт функції втрати не дорівнює нулю в цій точці, ви не досягли будь-якого екстремуму. Якщо гессіан не є позитивним, але градієнт дорівнює нулю, ви не знайшли мінімуму, але, можливо, ви знайшли максимальну або точку сідла. Однак, залежно від оптимізатора, результати щодо гессі не можуть бути надані. В Optimx, якщо ви хочете, щоб умови KKT були оцінені, ви повинні запитати їх - вони не оцінюються за замовчуванням. (Ці умови дивляться на градієнт і Гессіан, щоб побачити, чи справді у вас є мінімум.)
Проблема змішаних моделей полягає в тому, що оцінки дисперсії для випадкових ефектів обмежені позитивними, таким чином, розміщуючи межу в області оптимізації. Але припустимо, що конкретна випадкова дія дійсно не потрібна вашій моделі - тобто дисперсія випадкового ефекту дорівнює 0. Ваш оптимізатор попрямує до цієї межі, не зможе перейти і зупиниться з ненульовим градієнтом. Якщо усунення цього випадкового ефекту покращило конвергенцію, ви будете знати, що це була проблема.
Зауважте, що теорія максимальної ймовірності асимптотичної припущення передбачає, що MLE знаходиться у внутрішній точці (тобто не на межі допустимих значень параметрів) - тому тести відношення ймовірності для компонентів дисперсії можуть не працювати, коли дійсно нульова гіпотеза нульової дисперсії правда. Тестування може бути здійснено за допомогою симуляційних тестів, що реалізовані в пакеті RLRsim.
На мій погляд, я підозрюю, що оптимізатори стикаються з проблемами, коли даних про кількість параметрів недостатньо, або запропонована модель насправді не підходить. Подумайте про скляну тапочку та потворну подружку: ви не можете ввімкнути свої дані в модель, як би ви не намагалися, і щось потрібно дати.
Навіть якщо дані трапляються відповідно до моделі, вони можуть не мати можливості оцінювати всі параметри. Смішна річ зі мною трапилася. Я імітував кілька змішаних моделей, щоб відповісти на запитанняпро те, що станеться, якщо ви не дозволяєте співвідносити випадкові ефекти при встановленні моделі змішаних ефектів. Я моделював дані з сильною кореляцією між двома випадковими ефектами, потім підходив до моделі обома способами з lmer: позиціонуючи 0 кореляцій та вільних кореляцій. Модель кореляції підходить краще, ніж некорельована модель, але що цікаво, в 1000 моделюваннях у мене було 13 помилок при встановленні справжньої моделі та 0 помилок при встановленні більш простої моделі. Я не повністю розумію, чому це сталося (і я повторив симси з подібними результатами). Я підозрюю, що параметр кореляції є досить марним і оптимізатор не може знайти значення (тому що це не має значення).
Ви запитали, що робити, коли різні оптимізатори дають різні результати. Ми з Джоном обговорили цю тему. Деякі оптимізатори, на його думку, просто не такі хороші! І всі вони мають слабкі місця - тобто набори даних, які спричинить їх збій. Ось чому він написав optimx, до якого входять різні оптимізатори. Ви можете запустити декілька в одному наборі даних.
Якщо два оптимізатори дають однакові параметри, але різні діагностики - а ці параметри мають сенс реального світу - то я б схильний довіряти значенням параметрів. Складність може полягати в діагностиці, яка не є дурною. Якщо ви явно не надали функцію градієнта та / або матрицю Гессіана, оптимізатору потрібно буде оцінити їх за допомогою функції втрати та даних, що є просто чимось іншим, що може піти не так.
Якщо ви також отримуєте різні значення параметрів, то, можливо, ви захочете спробувати різні початкові значення і подивитися, що буде потім. Деякі оптимізатори та деякі проблеми дуже чутливі до вихідних значень. Ви хочете стартувати в парку балів.
lme4
(версія 1.1-7) має різну попереджувальну поведінку, за якою автори вважають, що менша ймовірність давати попередження про "помилкову тривогу". Ви можете спробувати оновитиlme4
до найновішої версії, знову встановити модель і побачити, чи все-таки отримуєте подібні попередження, принаймні у першому випадку.