关于SciPy负二项分布逆生存函数scipy.stats.nbinom.isf的使用疑问
关于scipy.stats.nbinom.isf的参数与返回值说明
1. 入参q的含义
scipy.stats.nbinom.isf(q, n, p)是负二项分布的逆生存函数,入参q是你设定的「允许发生的极端情况概率上限」,取值范围在0~1之间,本质是生存函数的分位阈值。
2. 和95%成功比例的对应关系
你场景中要求的95%成功率,对应q的取值是0.05,而非0.95:
95%成功率意味着你最多接受5%的概率出现「模拟次数不足、没能达到目标成功次数」的情况,刚好和q的定义对应。
3. 负二项分布生存函数的返回值含义
首先明确适配你场景的负二项分布参数定义:将nbinom的第二个参数n设为你需要达成的目标成功次数,第三个参数p设为单次蒙特卡洛模拟的成功概率,此前提下:
- 负二项分布生存函数
nbinom.sf(k, n, p)的返回值含义:单次成功概率为p时,要拿到n次成功,过程中出现的失败次数超过k的概率 - 逆生存函数
nbinom.isf(q, n, p)的返回值含义:满足「失败次数超过k的概率≤q」的最小k值,也就是你需要的最少失败次数 - 你最终需要的总模拟次数 = 返回的k值 + 目标成功次数n
注意:scipy负二项分布默认定义为「n次成功前的失败次数」,和部分教材里定义为「n次成功前的总试验次数」的版本有差异,计算总次数的时候记得加上目标成功次数n,避免结果偏小。
实际示例
假设你单次模拟成功概率是0.2,需要至少1次成功,且要保证95%的成功率:
调用scipy.stats.nbinom.isf(0.05, 1, 0.2)得到结果13,总模拟次数就是13+1=14次,也就是说跑14次模拟,有至少95%的概率能拿到至少1次成功。
内容的提问来源于stack exchange,提问作者lilchicken
相关产品推荐
相关产品推荐

