scipy.special.ncfdtr¶
- scipy.special.ncfdtr(dfn, dfd, nc, f) = <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,inf)。
- dfdarray_like
分母平方和的自由度。范围(0,inf)。
- ncarray_like
非中心性参数。应在范围(0,1e4)内。
- farray_like
分位数,即积分的上限。
- 退货
- cdf浮动或ndarray
计算出的CDF。如果所有输入都是标量,则返回的将是浮点数。否则,它将是一个数组。
参见
ncfdtri
分位数函数;与
ncfdtr
关于…… f 。ncfdtridfd
与之相反
ncfdtr
关于…… dfd 。ncfdtridfn
与之相反
ncfdtr
关于…… dfn 。ncfdtrinc
与之相反
ncfdtr
关于…… nc 。
注意事项
CDFLIB的包装器 [1] Fortran例程 cdffnc 。
使用公式26.6.20计算累积分布函数 [2]:
\[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)\) 。
此例程所需的计算时间与非中心性参数成正比 nc 。此参数的值非常大可能会消耗大量的计算机资源。这就是搜索范围限制在10,000的原因。
参考文献
- 1
Barry Brown、James Lovato和Kathy Russell,CDFLIB:累积分布函数、逆和其他参数的Fortran例程程序库。
- 2
米尔顿·阿布拉莫维茨和艾琳·A·斯特根主编。包含公式、图表和数学表的数学函数手册。纽约:多佛,1972年。
示例
>>> 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()