Идеальное разделение на линейной модели - PullRequest
0 голосов
/ 24 января 2020

Здесь много сообщений о "Perfect Separation Error" в statsmodels при выполнении регрессии logisit c. Но я не занимаюсь регрессом. Я делаю GLM с частотными весами и гауссовым распределением. Таким образом, в основном OLS.

Все мои независимые переменные являются категориальными с большим количеством категорий. Столь большой размерный набор двоичных кодов.

Но я очень часто получаю "perfectseperationerror" от statsmodels

У меня много моделей. Я думаю, что получаю эту ошибку, когда мои данные слишком тонки для такого количества переменных. Тем не менее, с весами freq, в теории, у меня на самом деле гораздо больше возможностей, чем для данных, потому что наблюдения должны быть умножены на freq.

Есть ли какие-либо рекомендации о том, как действовать?

reg = sm.GLM(dep, Indies, freq_weights = freq)


<p>Error: class 'statsmodels.tools.sm_exceptions.PerfectSeparationError'>

1 Ответ

1 голос
/ 25 января 2020

Проверка на точное предсказание и используется независимо от семейства.

В настоящее время существует обходной путь при использовании irls. Использование оптимизаторов scipy, например, method="bfgs", позволяет избежать идеальной проверки прогнозирования / разделения.

https://github.com/statsmodels/statsmodels/issues/2680

Идеальное разделение определено только для двоичного случая, т.е. семейства бином в GLM, и может быть распространен на другие дискретные модели.

Однако могут быть другие проблемы с выводом, если остаточная дисперсия равна нулю, т. е. мы имеем идеальное соответствие.
Вот проблема с идеальный прогноз в OLS https://github.com/statsmodels/statsmodels/issues/1459

...