當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy special.nbdtrik用法及代碼示例


本文簡要介紹 python 語言中 scipy.special.nbdtrik 的用法。

用法:

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

負二項式百分位函數。

返回參數的倒數ky = nbdtr(k, n, p),負二項式累積分布函數。

參數

y array_like

在 n 次成功之前發生 k 次或更少失敗的概率(浮點數)。

n array_like

目標成功次數(正整數)。

p array_like

單個事件的成功概率(浮點數)。

out ndarray,可選

函數結果的可選輸出數組

返回

k 標量或 ndarray

允許的最大失敗次數,使得 nbdtr(k, n, p) = y。

注意

CDFLIB 的包裝器[1]Fortran 例程cdfnbn.

[2]的公式26.5.26,

用於將累積分布函數的計算減少為正則化不完全 beta 的計算。

k 的計算涉及搜索產生所需 y 值的值。搜索依賴於 y 與 k 的單調性。

參考

[1]

Barry Brown、James Lovato 和 Kathy Russell,CDFLIB:累積分布函數、逆函數和其他參數的 Fortran 例程庫。

[2]

Milton Abramowitz 和 Irene A. Stegun 合編。帶有公式、圖表和數學表格的數學函數手冊。紐約:多佛,1972 年。

例子

計算示例性參數集的負二項累積分布函數。

>>> import numpy as np
>>> from scipy.special import nbdtr, nbdtrik
>>> k, n, p = 5, 2, 0.5
>>> cdf_value = nbdtr(k, n, p)
>>> cdf_value
0.9375

驗證nbdtrik恢複原始值k.

>>> nbdtrik(cdf_value, n, p)
5.0

繪製不同參數集的函數。

>>> import matplotlib.pyplot as plt
>>> p_parameters = [0.2, 0.5, 0.7, 0.5]
>>> n_parameters = [30, 30, 30, 80]
>>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
>>> parameters_list = list(zip(p_parameters, n_parameters, linestyles))
>>> cdf_vals = np.linspace(0, 1, 1000)
>>> fig, ax = plt.subplots(figsize=(8, 8))
>>> for parameter_set in parameters_list:
...     p, n, style = parameter_set
...     nbdtrik_vals = nbdtrik(cdf_vals, n, p)
...     ax.plot(cdf_vals, nbdtrik_vals, label=rf"$n={n},\ p={p}$",
...             ls=style)
>>> ax.legend()
>>> ax.set_ylabel("$k$")
>>> ax.set_xlabel("$CDF$")
>>> ax.set_title("Negative binomial percentile function")
>>> plt.show()
scipy-special-nbdtrik-1_00_00.png

負二項分布也可用作 scipy.stats.nbinom 。百分位函數方法 ppf 返回 nbdtrik 向上舍入為整數的結果:

>>> from scipy.stats import nbinom
>>> q, n, p = 0.6, 5, 0.5
>>> nbinom.ppf(q, n, p), nbdtrik(q, n, p)
(5.0, 4.800428460273882)

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.special.nbdtrik。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。