scipy.special.ncfdtr#

scipy.special.ncfdtr(dfn, dfd, nc, f, out=None) = <ufunc 'ncfdtr'>#

非中心 F 分佈的累積分布函數。

非中心 F 描述了以下的分佈:

\[Z = \frac{X/d_n}{Y/d_d}\]

其中 \(X\)\(Y\) 是獨立分佈的,其中 \(X\) 服從非中心 \(\chi^2\) 分佈,其非中心參數為 nc,自由度為 \(d_n\),而 \(Y\) 服從 \(\chi^2\) 分佈,自由度為 \(d_d\)

參數:
dfnarray_like (類陣列)

分子平方和的自由度。範圍 (0, 無窮大)。

dfdarray_like (類陣列)

分母平方和的自由度。範圍 (0, 無窮大)。

ncarray_like (類陣列)

非中心參數。範圍 [0, 無窮大)。

farray_like (類陣列)

分位數,即積分上限。

outndarray, optional (可選)

用於函數結果的可選輸出陣列

返回:
cdf純量或 ndarray

計算出的 CDF。如果所有輸入都是純量,則返回值將為浮點數。否則它將是一個陣列。

參見

ncfdtri

分位數函數;ncfdtr 關於 f 的反函數。

ncfdtridfd

ncfdtr 關於 dfd 的反函數。

ncfdtridfn

ncfdtr 關於 dfn 的反函數。

ncfdtrinc

ncfdtr 關於 nc 的反函數。

scipy.stats.ncf

非中心 F 分佈。

註解

此函數使用 Boost Math C++ 庫 [1] 計算非中心 f 分佈的 CDF。

累積分布函數是使用 [2] 的公式 26.6.20 計算的

\[F(d_n, d_d, n_c, f) = \sum_{j=0}^\infty e^{-n_c/2} \frac{(n_c/2)^j}{j!} I_{x}(\frac{d_n}{2} + j, \frac{d_d}{2}),\]

其中 \(I\) 是正規化不完全貝塔函數,而 \(x = f d_n/(f d_n + d_d)\)

請注意,ncfdtr 的參數順序與 scipy.stats.ncf 的類似 cdf 方法的參數順序不同:fncfdtr 的最後一個參數,但卻是 scipy.stats.ncf.cdf 的第一個參數。

參考文獻

[1]

Boost 開發者。“Boost C++ 庫”。https://boost.dev.org.tw/

[2]

Milton Abramowitz 和 Irene A. Stegun,編輯。《Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables》。紐約:Dover,1972年。

範例

>>> import numpy as np
>>> from scipy import special
>>> from scipy import stats
>>> import matplotlib.pyplot as plt

繪製 nc=0 時非中心 F 分佈的 CDF。與 scipy.stats 的 F 分佈進行比較

>>> x = np.linspace(-1, 8, num=500)
>>> dfn = 3
>>> dfd = 2
>>> ncf_stats = stats.f.cdf(x, dfn, dfd)
>>> ncf_special = special.ncfdtr(dfn, dfd, 0, x)
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.plot(x, ncf_stats, 'b-', lw=3)
>>> ax.plot(x, ncf_special, 'r-')
>>> plt.show()
../../_images/scipy-special-ncfdtr-1.png