You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scipy.nbinom与负二项分布公式:计算结果不符问题排查

负二项分布在SciPy中的参数理解误区

核心问题:两种负二项分布的定义差异

你手动计算用的是**"第n次试验恰好获得第k次成功"**的负二项分布定义,公式为:
P(n, k, p) = C(n-1, k-1) * p^k * (1-p)^(n-k)
代入n=6, k=4, p=0.8得到的0.16384是正确的。

但SciPy的scipy.stats.nbinom采用的是另一种常见定义:**"直到获得r次成功为止,所经历的失败次数X"**的分布。对应到你的场景:

  • 成功次数r = 4(即你要的第4次成功)
  • 失败次数x = 总试验次数 - 成功次数 = 6 - 4 = 2
  • 单次成功概率p = 0.8

正确的SciPy调用方式

你需要传入的参数是失败次数、成功次数、成功概率:

from scipy.stats import nbinom

# k=失败次数,n=成功次数,p=单次成功概率
result = nbinom.pmf(k=2, n=4, p=0.8)
print(result)  # 输出约0.16384

常见参数错误点

  • 误将总试验次数n=6作为nbinom.pmf的第一个参数(第一个参数是失败次数,不是总试验次数)
  • 混淆了SciPy中n参数的含义:它代表的是需要达成的成功次数,而非总试验次数
  • 颠倒了成功概率和失败概率的传入(比如传入1-p代替p)

内容的提问来源于stack exchange,提问作者beautysleep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:20:26