我一直在寻找一种将数据拟合到β二项分布并估计α和β的方法,类似于vgam库中vglm包的方法。我还没有找到如何在python中做到这一点有一个scipy.stats.beta.fit(),但没有beta二项分布有办法吗?
最佳答案
我还没有看到Python中β二项式的估计。
如果您只想估计参数,那么可以使用scipy.optimize来最小化日志似然函数,您可以在internet搜索后自己编写或复制代码。
为了使用scipy.stats.distributions的框架,可以对rv_discrete
进行子类化,但是scipy中的离散分布没有fit
方法。
如果您想使用子查询,那么您可以使用我们使用最大似然估计所需的大部分内容来定义子类。
但是,您需要为日志似然函数编写代码这将提供通常的最大似然结果,例如参数和各种测试的标准误差。
如果您需要β二项回归,那么在r包gamls中使用的均值-方差参数化将更为常见,并且可以重用GenericLikelihoodModel
函数来将参数限制在有效域中。
作为一个相关的例子:这是导致statsmodels的beta回归请求的genericlikelihoodmodel原型的要点:http://statsmodels.sourceforge.net/devel/dev/generated/statsmodels.base.model.GenericLikelihoodModel.html