Jak bardzo powinniśmy się bać ostrzeżeń o konwergencji w lme4


88

Jeśli ponownie dopasowujemy się do blasku, możemy otrzymać ostrzeżenie, które mówi nam, że model ma trudności z konwergencją ... np.

>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.00389462 (tol = 0.001)

innym sposobem sprawdzenia zbieżności omówionym w tym wątku przez @Ben Bolker jest:

 relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
 max(abs(relgrad))
 #[1] 1.152891e-05

jeśli max(abs(relgrad))to <0.001może być w porządku ... więc w tym przypadku mamy sprzeczne wyniki? Jak powinniśmy wybierać między metodami i czuć się bezpiecznie dzięki naszym modelom?

Z drugiej strony, gdy otrzymamy bardziej ekstremalne wartości, takie jak:

>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

Czy to oznacza, że ​​musimy zignorować wyniki / oszacowania / wartości modelu? Czy 0,0027 jest zdecydowanie za duży, aby kontynuować?

Kiedy różne optymalizatory podają różne wyniki i centrowanie zmiennych / usuwanie parametrów (redukcja modeli do minimum) nie pomaga, ale VIF są niskie, modele nie są rozproszone, a wyniki modeli mają logiczny sens w oparciu o oczekiwania a priori, wydaje się, że trudno to ustalić co robić.

Porady, jak interpretować problemy związane z konwergencją, jak muszą być ekstremalne, aby naprawdę nas zaniepokoić, a bardzo pomocne mogą być sposoby radzenia sobie z nimi poza wymienionymi powyżej.

Używanie: R version 3.1.0 (2014-04-10)ilme4_1.1-6


10
Nowsza wersja lme4(wersja 1.1-7) ma różne zachowania ostrzegawcze, które według autorów rzadziej dają ostrzeżenia o „fałszywym alarmie”. Możesz spróbować zaktualizować lme4do najnowszej wersji, ponownie dopasować model i sprawdzić, czy nadal otrzymujesz podobne ostrzeżenia, przynajmniej w pierwszym przypadku.
Jake Westfall

Odpowiedzi:


91

Bać się. Bardzo się bać

W ubiegłym roku przeprowadziłem wywiad z Johnem Nashem, autorem programu optim i optimx, w artykule na stronie IBM DeveloperWorks. Rozmawialiśmy o tym, jak działają optymalizatory i dlaczego zawodzą, gdy zawodzą. Wydawał się brać za pewnik, że często tak robią. Dlatego diagnostyka znajduje się w pakiecie. Pomyślał również, że musisz „zrozumieć swój problem” i zrozumieć swoje dane. Wszystko to oznacza, że ​​ostrzeżenia należy traktować poważnie i są zaproszeniem do spojrzenia na twoje dane w inny sposób.

Zazwyczaj optymalizator przestaje wyszukiwać, gdy nie jest już w stanie poprawić funkcji utraty o znaczącą wartość. Zasadniczo nie wie, gdzie iść. Jeśli gradient funkcji utraty nie jest w tym momencie zerowy, nie osiągnąłeś żadnego ekstremum. Jeśli Hesjan nie jest dodatni, ale gradient wynosi zero, nie znalazłeś minimum, ale możliwe, że znalazłeś punkt maksymalny lub siodłowy. Jednak w zależności od optymalizatora wyniki dotyczące Hesjan mogą nie być dostarczane. W Optimx, jeśli chcesz ocenić warunki KKT, musisz o nie poprosić - nie są one domyślnie oceniane. (Te warunki patrzą na gradient i Hessian, aby sprawdzić, czy naprawdę masz minimum.)

Problem z modelami mieszanymi polega na tym, że oszacowania wariancji dla efektów losowych są ograniczone, aby były dodatnie, tym samym umieszczając granicę w regionie optymalizacji. Przypuśćmy jednak, że konkretny efekt losowy nie jest tak naprawdę potrzebny w twoim modelu - tj. Wariancja efektu losowego wynosi 0. Twój optymalizator przejdzie do tej granicy, nie będzie mógł przejść dalej i zatrzyma się z niezerowym gradientem. Jeśli usunięcie tego losowego efektu poprawi konwergencję, będziesz wiedział, że to był problem.

Nawiasem mówiąc, należy zauważyć, że asymptotyczna teoria maksymalnego prawdopodobieństwa zakłada, że ​​MLE znajduje się w punkcie wewnętrznym (tj. Nie na granicy dopuszczalnych wartości parametrów) - więc testy współczynnika wiarygodności dla składników wariancji mogą nie działać, gdy faktycznie hipoteza zerowa wariancji zerowej jest prawdziwe. Testowanie można przeprowadzić za pomocą testów symulacyjnych zaimplementowanych w pakiecie RLRsim.

Podejrzewam, że optymalizatory napotykają problemy, gdy jest za mało danych na liczbę parametrów lub proponowany model naprawdę nie jest odpowiedni. Pomyśl o szklanym pantoflu i brzydkiej przyrodniej siostrze: nie możesz wrzucić danych do modelu, bez względu na to, jak bardzo się starasz, a coś musi dać.

Nawet jeśli dane pasują do modelu, mogą nie być w stanie oszacować wszystkich parametrów. W tym sensie przytrafiła mi się zabawna rzecz. Symulowałem niektóre mieszane modele, aby odpowiedzieć na pytanieo tym, co się stanie, jeśli nie zezwolisz na korelację efektów losowych podczas dopasowywania modelu efektów mieszanych. Symulowałem dane z silną korelacją między dwoma efektami losowymi, a następnie dopasowałem model w obie strony za pomocą lmera: zakładając korelacje 0 i korelacje swobodne. Model korelacji pasuje lepiej niż model nieskorelowany, ale, co ciekawe, w 1000 symulacji miałem 13 błędów przy dopasowaniu modelu rzeczywistego i 0 błędów przy dopasowaniu prostszego modelu. Nie do końca rozumiem, dlaczego tak się stało (i powtórzyłem simy do podobnych wyników). Podejrzewam, że parametr korelacji jest dość bezużyteczny i optymalizator nie może znaleźć wartości (ponieważ to nie ma znaczenia).

Zapytałeś o to, co zrobić, gdy różne optymalizatory dają różne wyniki. John i ja omawialiśmy tę kwestię. Jego zdaniem niektóre optymalizatory nie są tak dobre! Wszystkie mają słabe punkty - tj. Zestawy danych, które spowodują ich awarię. Właśnie dlatego napisał Optimx, który zawiera różne optymalizatory. Możesz uruchomić kilka na tym samym zestawie danych.

Jeśli dwa optymalizatory podają te same parametry, ale inna diagnostyka - i te parametry mają sens w świecie rzeczywistym - byłbym skłonny zaufać wartościom parametrów. Trudność może leżeć w diagnostyce, która nie jest głupia. Jeśli nie podałeś jawnie funkcji gradientu i / lub macierzy Hesji, optymalizator będzie musiał oszacować je na podstawie funkcji straty i danych, co jest po prostu czymś innym, co może pójść nie tak.

Jeśli otrzymujesz również różne wartości parametrów, możesz spróbować różnych wartości początkowych i zobaczyć, co się wtedy stanie. Niektóre optymalizatory i niektóre problemy są bardzo wrażliwe na wartości początkowe. Chcesz zacząć w parku piłkarskim.


3
AH! Właśnie otworzyłem to pytanie, aby „Bać się. Bać się bardzo”. żart. Dobrze dla ciebie. Również dobrze włączam to do rzeczywistej odpowiedzi, czego nie miałem zamiaru zrobić.
Alexis,

2
Powinieneś naprawdę przeczytać książkę, którą napisał Nash. Określenie Hesji jest bardzo trudne w praktyce, więc optymalizator mógł się zbiegać w wielu przypadkach, ale Hesjan jest nieprecyzyjny, więc w przypadku uzyskania podobnych wyników z różnych optymalizatorów, ale ostrzeżeń o zbieżności często zdarza się, że twój hesjan jest fałszywy, a nie twój model. Testy Hesji lub gradientu są tylko dla zapewnienia bezpieczeństwa. Czasami hessian również nie ma większego sensu, na przykład gdy masz optymalizator ograniczony przez granicę, ale twój algorytm hessian nie bierze tego pod uwagę (jak lme4) i osiągasz granicę.

18

Chcę tylko uzupełnić świetną odpowiedź @ Placidia. Warto sprawdzić „Bogato sparametryzowane modele liniowe: addytywne, szeregi czasowe i modele przestrzenne wykorzystujące efekty losowe” Jamesa Hodgesa (2014). Odrzuca to, czego nie wiemy o modelach mieszanych, a jednocześnie próbuje zaoferować szeroką teorię, a także praktyczne wskazówki dotyczące dopasowania złożonych modeli.

Sam często przestraszony modelarz uważam, że dyskusje Hodge'a na temat „zagadek” są bezcenne. Wyjaśnia dziwne przypadki wynikające z dopasowania modelowania efektów mieszanych, w tym „Efekt losowy konkurujący z efektem stałym” i „Konkurencja między efektami losowymi”. Brzmi znajomo?

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.