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.
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ćlme4
do najnowszej wersji, ponownie dopasować model i sprawdzić, czy nadal otrzymujesz podobne ostrzeżenia, przynajmniej w pierwszym przypadku.