已知mu和alpha,如何在Python中计算负二项分布CDF?
负二项分布参数转换(mu/alpha → SciPy nbinom的n/p)
不同工具对负二项分布的参数化方式存在差异:statsmodels用均值mu和离散参数alpha定义,而SciPy的nbinom则用成功次数n和单次成功概率p定义。两者的转换公式如下:
- 计算
n:n = 1 / alpha - 计算
p:p = 1 / (1 + alpha * mu)
参数转换逻辑验证
statsmodels中负二项分布的方差为 mu + alpha * mu²,SciPy的nbinom方差为 n*(1-p)/p²,且其均值满足 n*(1-p)/p = mu。联立推导过程:
- 由均值公式得
n*(1-p) = mu*p,代入方差公式可得mu + alpha*mu² = mu/p - 两边除以非零的
mu,整理后得到p = 1/(1 + alpha*mu) - 将
p代入均值公式,化简后即可得到n = 1/alpha
代码示例
已知mu=7.8,alpha=0.2,计算X≤9的累积概率:
from scipy.stats import nbinom mu = 7.8 alpha = 0.2 # 转换为SciPy nbinom所需参数 n = 1 / alpha p = 1 / (1 + alpha * mu) # 计算P(X ≤9)的累积概率 cumulative_prob = nbinom.cdf(k=9, n=n, p=p) print(cumulative_prob)
内容的提问来源于stack exchange,提问作者clupti
相关产品推荐
相关产品推荐

