scipy.special.nbdtrin#

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

nbdtr 关于 n 的反函数。

返回关于参数 ny = nbdtr(k, n, p) 的反函数,即负二项累积分布函数。

参数:
karray_like

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

yarray_like

n 次成功之前发生 k 次或更少次失败的概率(浮点数)。

parray_like

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

outndarray,可选

用于函数结果的可选输出数组

返回:
n标量或 ndarray

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

另请参阅

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

用于将累积分布函数的计算简化为正则化不完全贝塔函数 \(I\) 的计算。

n 的计算涉及搜索产生所需 y 值的数值。搜索依赖于 yn 的单调性。

参考文献

[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