scipy.special.nbdtrin#
- scipy.special.nbdtrin(k, y, p, out=None) = <ufunc 'nbdtrin'>#
nbdtr
关于 n 的反函数。返回关于参数 n 的
y = nbdtr(k, n, p)
的反函数,即负二项累积分布函数。- 参数:
- karray_like
允许的最大失败次数(非负整数)。
- yarray_like
在 n 次成功之前发生 k 次或更少次失败的概率(浮点数)。
- parray_like
单次事件中成功的概率(浮点数)。
- outndarray,可选
用于函数结果的可选输出数组
- 返回:
- n标量或 ndarray
使得 nbdtr(k, n, p) = y 的成功次数 n。
备注
CDFLIB [1] Fortran 例程 cdfnbn 的包装器。
[2] 中的公式 26.5.26,
\[\sum_{j=k + 1}^\infty {{n + j - 1} \choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),\]用于将累积分布函数的计算简化为正则化不完全贝塔函数 \(I\) 的计算。
n 的计算涉及搜索产生所需 y 值的数值。搜索依赖于 y 随 n 的单调性。
参考文献
[1]Barry Brown、James Lovato 和 Kathy Russell,《CDFLIB:累积分布函数、反函数和其他参数的 Fortran 例程库》。
[2]Milton Abramowitz 和 Irene A. Stegun 编辑,《数学函数手册,包含公式、图表和数学表格》。纽约:多佛出版社,1972 年。
示例
计算一个示例参数集的负二项累积分布函数。
>>> from scipy.special import nbdtr, nbdtrin >>> k, n, p = 5, 2, 0.5 >>> cdf_value = nbdtr(k, n, p) >>> cdf_value 0.9375
验证
nbdtrin
恢复 n 的原始值,直到浮点精度。>>> nbdtrin(k, cdf_value, p) 1.999999999998137