2012-02-15 10 views
5

Jakie jest znaczenie następującego komunikatu ostrzegawczego podczas instalowania modelu "glmer" przy użyciu pakietu lme4?Komunikat ostrzegawczy w modelu mieszanym lme4

Warning messages: 
1: glm.fit: fitted probabilities numerically 0 or 1 occurred 
2: In mer_finalize(ans) : false convergence (8) 

Model Próbuję dopasować jest tak:

glmer(dummy ~ constituency.coa + I(governat.part) + I(district2) + gdp.cap + lula.power + ifdm + bf.cap + year + (1 | munname), data=pool, family=binomial(link = "logit"), REML=T, verbose=T) 

Dzięki

+1

To może być dobre tło: http://www.ats.ucla.edu/stat/mult_pkg/faq/general/complete_separation_logit_models.htm – Aaron

Odpowiedz

6

ostrzegawcze 1: Wartości dopasowane stał 0 lub 1 dla jednej lub większej liczby obserwacji, ale to powinno nie jest możliwe w ramach regresji logistycznej. Przyczyn jest wiele; jeden jest omówiony na stronie pomocy dla ?glm, ale jest to niewiele więcej niż wskaźnik do innej dokumentacji. To tylko ostrzeżenie, więc nie może to stanowić problemu, ale jest ostrzeżeniem, że coś jest nie tak z dopasowaniem.

Ostrzeżenie 2: Nie znam dokładnego znaczenia, ale kod mówi, że procedura optymalizacji zadeklarowała, że ​​procedura dopasowania ma zbieżność z wartościami szacunkowymi, ale to twierdzenie jest fałszywe i że dopasowanie nie miało skupiać.

Jedną z rzeczy, które należy rozważyć, jest to, czy istnieje problem z rozłącznością, w którym jeden predykator lub liniowa kombinacja predyktorów może doskonale rozdzielić zdarzenia 0 i 1.

Proponuję śledzić to na liście mailingowej R-SIG-Mixed, gdzie są prawdziwi eksperci, którzy mogą pomóc dalej. Może być konieczne podanie dalszych szczegółów procesu dopasowywania (włącz tryb informacyjny) lub nawet danych, aby problem mógł zostać zdiagnozowany.

5

W przypadku ostrzeżenia 2 można zwiększyć liczbę powtórzeń, domyślną wartością jest 300, aby sprawdzić, czy jest zbieżna po dodaniu kolejnych iteracji. spróbuj:

glmer(dummy ~ constituency.coa + I(governat.part) + I(district2) + gdp.cap + lula.power + ifdm + bf.cap + year + (1 | munname), data=pool, family=binomial(link = "logit"), REML=T, verbose=T, control = list(maxIter = 600)) 

zmienia to wartość z 300 iteracji na 600, ale możesz spróbować więcej, jeśli to nie działa.

+2

... choć często jest tak, że więcej iteracji nie pomaga w takie sytuacje. (Warto spróbować jednak.) –

Powiązane problemy