Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 拟合贝塔二项式_Python_Statistics_Scipy_Beta_Binomial Cdf - Fatal编程技术网

Python 拟合贝塔二项式

Python 拟合贝塔二项式,python,statistics,scipy,beta,binomial-cdf,Python,Statistics,Scipy,Beta,Binomial Cdf,我一直在寻找一种将数据拟合到beta二项分布并估计alpha和beta的方法,类似于VGAM库中的vglm包。我还没有找到如何在python中实现这一点。有一个scipy.stats.beta.fit(),但没有beta二项分布。有什么方法可以做到这一点吗?我还没有在Python中看到beta二项式的估计 如果您只想估计参数,那么可以使用scipy.optimize来最小化日志似然函数,您可以在互联网搜索后自己编写或复制代码 为了使用scipy.stats.distributions的框架,您可

我一直在寻找一种将数据拟合到beta二项分布并估计alpha和beta的方法,类似于VGAM库中的vglm包。我还没有找到如何在python中实现这一点。有一个scipy.stats.beta.fit(),但没有beta二项分布。有什么方法可以做到这一点吗?

我还没有在Python中看到beta二项式的估计

如果您只想估计参数,那么可以使用scipy.optimize来最小化日志似然函数,您可以在互联网搜索后自己编写或复制代码

为了使用scipy.stats.distributions的框架,您可以将
rv_discrete
子类化,但是scipy中的离散分布没有
fit
方法

如果您想使用statsmodels,那么可以将
GenericLikelihoodModel
子类化,该子类使用scipy.optimize,但定义了最大似然估计所需的大部分内容。 但是,您需要为对数似然函数编写代码。这将提供通常的最大似然结果,例如参数和各种测试的标准误差

如果需要β-二项回归,则R包gamlss中使用的均值-方差参数化将更为常见,并且可以重用
链接
函数将参数约束在有效域中


作为一个相关示例:这是GenericLikelihoodModel原型的要点,该原型导致对statsmodels的Beta回归的拉式请求:

此python模块提供了

scipy具有scipy.stats.Beta.fit()。它的alpha和beta参数与为beta二项式构建的东西之间有什么区别?我从未尝试过,所以我基于维基百科对beta和beta二项式的描述进行比较。我认为,如果
n
是常数,那么alpha和beta估计值应该是相同的。如果
n
波动,则估计β二项式将具有与估计β不同的观察权重,其中权重将取决于n的大小。与基于较小n的比例相比,基于较大n的比例的方差更小,权重也更大。贝塔分布(在scipy.stats.beta中实现)的支持范围为[0,1],而贝塔二项分布的支持范围为整数。对于两种完全不同的数据类型,它们是两种完全不同的分布;无法使用beta分布拟合beta二项式数据。(把贝塔二项分布想象成一种二项分布,在这种分布中你不知道成功的概率。)我提到贝塔回归是实现最大似然模型的一个例子。然而,如果我们将(β-)二项式计数数据除以暴露(试验次数),那么我们得到的比例可以与β分布相匹配,假设它很好地近似于比例的基本分布。