Staram się przewidzieć wynik binarny przy użyciu 50 ciągłe zmienne objaśniające (w zakresie od najbardziej zmiennych jest do ∞ ). Mój zestaw danych ma prawie 24 000 wierszy. Kiedy biegnę w R, otrzymuję:glm
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
Przeczytałem inne odpowiedzi, które sugerują, że może wystąpić idealna separacja, ale jestem pewien, że nie ma tego w moich danych (chociaż może istnieć quasi-pełna separacja; jak mogę sprawdzić, czy tak jest?) . Jeśli usunę niektóre zmienne, błąd „nie zbiegnie się” może zniknąć. Ale nie zawsze tak się dzieje.
Próbowałem użyć tych samych zmiennych w bayesglm
funkcji i dostałem te same błędy.
Jakie kroki byś podjął, aby dowiedzieć się dokładnie, co się tutaj dzieje? Jak ustalić, które zmienne powodują problemy?
bayesglm
próbuje uniknąć separacji, dodając przeor, ale przy 24 000 rzędach przeor najprawdopodobniej zostanie zalany przez prawdopodobieństwo. Spróbuj zmniejszyć prior.scale
, prawdopodobnie o dużą ilość. Rozważ również zwiększenie stopnia swobody przeora, co pomoże wykluczyć duże wartości związane z separacją.
bayesglm
pracy , oni, że oddzielenie jest „wspólny problem, nawet, jeśli rozmiar próbki jest większy, a ilość predykcyjnych jest mały”