拟合 beta 二项式

Fit beta binomial

我一直在寻找一种方法来将数据拟合到 beta 二项分布并估计 alpha 和 beta,类似于 VGAM 库中的 vglm 包的方式。我无法在 python 中找到如何执行此操作。有一个 scipy.stats.beta.fit() ,但没有用于 beta 二项式分布。有办法吗?

我没有在 Python 中看到对 beta-binomial 的估计。

如果你只是想估计参数,那么你可以使用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 但定义了我们进行最大似然估计所需的大部分内容。 但是,您需要编写对数似然函数的代码。这将提供通常的最大似然结果,例如参数和各种测试的标准误差。

如果您需要 beta-binomial 回归,那么 R 包 gamlss 中使用的均值方差参数化会更常见,并且可以重用 link 函数来将参数约束在有效域中.

作为相关示例:这是 GenericLikelihoodModel 原型的要点,它导致了对统计模型的 Beta 回归的拉取请求:http://gist.github.com/brentp/089c7d6d69d78d26437f

此 python 模块提供 https://github.com/lfiaschi/fastbetabino