2015-11-09 2 views
0

Я бы хотел запустить логистическую регрессию в наборе данных с положительным классом 0,5% путем повторной балансировки набора данных с помощью классов или весов образца. Я могу сделать это в scikit learn, но он не дает ни одной из выводных характеристик для модели (доверительные интервалы, p-значения, остаточный анализ).Statsmodels Логистический дисбаланс класса регрессии

Можно ли это сделать в статистических моделях? Я не вижу аргумент sample_weights или class_weights в statsmodels.discrete.discrete_model.Logit.fit

Спасибо! Ответ

+0

аналогичный вопрос для GLM http://stackoverflow.com/questions/31661552/statsmodels-python-weighted-glm – user333700

ответ

1

программиста:

statsmodels логит и другие дискретные модели не имеют веса еще. (*)

GLM Binomial неявно определил вес корпуса по количеству успешных и безуспешных испытаний на наблюдение. Это также позволило бы манипулировать весами через функцию дисперсии GLM, но это официально не поддерживается и не тестировалось. Ответ

статистика в/эконометристе в:

Умозаключения, стандартные ошибки, доверительные интервалы, тесты и так далее, основаны на наличие случайной выборки. Если манипуляции с весами, то это должно повлиять на выведенную статистику. Тем не менее, я никогда не рассматривал проблему для балансировки данных на основе наблюдаемого ответа. В общем, это создает смещение выбора. Быстрый поиск в Интернете показывает несколько ответов, от перебалансировки не имеет положительного эффекта в Logit для оценки штрафа в качестве альтернативы.

Одна из возможностей - также попробовать различные функции связи, cloglog или другие функции ссылок имеют асимметричные или более тяжелые хвосты, которые более подходят для данных с небольшим риском в одном классе или категории.

(*) Одна проблема с внедрением весов заключается в том, чтобы решить, какова их интерпретация для вывода. Stata, например, допускает 3 вида весов.

Смежные вопросы