Chi2cdf上Python

2024-07-04 08:49:21 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我把Matlab翻译成python代码

Pv = chi2cdf(Devk,Md,'upper');

其中Devk是一个3D矩阵,Md是df=10。你知道吗

我在寻找Python中的等价物。 我发现了这个:

from scipy.stats import chi2
Pv = chi2.cdf(Devk,Md)

然而,这并没有给出类似的结果,我猜是因为Matlab有“上”参数。有人知道如何在Python中实现这一点吗?你知道吗

有人要求制作一些玩具数据来说明问题:

Matlab软件:

Devk = [1,2,3,4,5]
Md = 10
Pv = chi2cdf(Devk,Md,'upper')
Pv =
0.9998    0.9963    0.9814    0.9473    0.8912

Python:

from scipy.stats import chi2
Devk = np.array([1,2,3,4,5])
Md = 10
Pv = chi2.cdf(Devk,Md)
Pv
Out[125]: array([0.00017212, 0.00365985, 0.01857594, 0.05265302, 0.10882198])

Tags: 代码fromimportstats矩阵scipyarrayupper
1条回答
网友
1楼 · 发布于 2024-07-04 08:49:21

我认为以下观点成立:

chi2cdf(..., 'upper') == (1 .- chi2cdf(...))

因此,在Python代码中,您可能必须:

from scipy.stats import chi2

Pv = 1 - chi2.cdf(Devk, Md)

编辑:

更好地使用:

Pv = chi2.sf(Devk, Md)

因为,根据documentation,生存函数sf()(也被定义为1 - cdf())有时更精确。你知道吗

相关问题 更多 >

    热门问题