scipy.special.nbdtrin#

scipy.special.nbdtrin(k, y, p, out=None) = <ufunc 'nbdtrin'>#

nbdtrn 相反的逆函数。

针对参数 n 返回 y = nbdtr(k, n, p) 的反函数,负二项累积分布函数。

参数:
karray_like

允许的失败次数最大值(非负整型)。

yarray_like

n 成功之前至多 k 次失败的概率(浮点数)。

parray_like

单次事件成功的概率(浮点数)。

outndarray, 可选

函数结果的可选输出阵列

返回:
nscalar or ndarray

成功次数 n,使得 nbdtr(k, n, p) = y

另请参阅

nbdtr

负二项式的累积分布函数。

nbdtri

相对于 nbdtr(k, n, p)p 逆.

nbdtrik

相对于 nbdtr(k, n, p)k 逆.

注释

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),\]

用于将累积分布函数的计算简化为正则未完成 beta \(I\) 的计算.

n 的计算涉及搜索一个产生所需 y 值的值. 该搜索依赖于 yn 单调变化.

参考资料

[1]

Barry Brown、James Lovato 和 Kathy Russell,CDFLIB:累积分布函数、逆函数和其他参数的 Fortran 例程库.

[2]

Milton Abramowitz 和 Irene A. Stegun 编著,带公式、图表和数学表的数学函数手册. 纽约:Dover,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