Fit бета бином

Я искал способ приспособить данные к бинарному распределению бета и оценить альфа и бета, подобно тому, как это делает пакет vglm в библиотеке VGAM. Я не смог найти, как это сделать в Python. Существует scipy.stats.beta.fit(), но ничего для бета-биномиального дистрибутива. Есть ли способ сделать это?

2 ответа

Решение

Я не видел оценки для бета-бинома в Python.

Если вы просто хотите оценить параметры, вы можете использовать scipy.optimize, чтобы минимизировать функцию правдоподобия, которую вы можете написать самостоятельно или скопировать код после поиска в Интернете.

Вы можете подкласс rv_discrete для того, чтобы использовать структуру scipy.stats.distributions, но дискретные распределения в scipy не имеют fit метод.

Если вы хотите использовать statsmodels, то вы можете подкласс GenericLikelihoodModel http://statsmodels.sourceforge.net/devel/dev/generated/statsmodels.base.model.GenericLikelihoodModel.html который использует scipy.optimize, но определяет большинство вещей, которые нам нужны для оценки максимального правдоподобия. Однако вам нужно написать код для функции правдоподобия журнала. Это обеспечит обычные результаты максимального правдоподобия, такие как стандартные ошибки для параметров и различные тесты.

Если вам нужна бета-биномиальная регрессия, тогда более часто будет использоваться параметризация средней дисперсии, используемая в пакете gamlss, и она может повторно использовать link функции для ограничения параметров в допустимой области.

В качестве связанного примера: это суть прототипа GenericLikelihoodModel, который приводит к запросу на извлечение бета-регрессии для statsmodels: http://gist.github.com/brentp/089c7d6d69d78d26437f

Этот модуль Python обеспечивает https://github.com/lfiaschi/fastbetabino

Другие вопросы по тегам