gpt4 book ai didi

numpy - Python 中 cor.test 的 R 等价物

转载 作者:行者123 更新时间:2023-12-04 11:36:38 28 4
gpt4 key购买 nike

有没有办法在 Python 中找到 r 置信区间?

在 R 我可以做这样的事情:

cor.test(m, h)

Pearson's product-moment correlation

data: m and h
t = 0.8974, df = 4, p-value = 0.4202
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.6022868 0.9164582
sample estimates:
cor
0.4093729

在 Python 中,我可以使用以下方法计算 r (cor):
r,p = scipy.stats.pearsonr(df.age, df.pets)

但这不会返回 r 置信区间。

最佳答案

这是计算内部置信度的一种方法

首先得到相关值(皮尔逊的)

In [85]: from scipy import stats

In [86]: corr = stats.pearsonr(df['col1'], df['col2'])

In [87]: corr
Out[87]: (0.551178607008175, 0.0)

使用 Fisher 变换得到 z
In [88]: z = np.arctanh(corr[0])

In [89]: z
Out[89]: 0.62007264620685021

而且,西格玛值,即标准误差
In [90]: sigma = (1/((len(df.index)-3)**0.5))

In [91]: sigma
Out[91]: 0.013840913308956662

获取正态连续随机变量的正态 95% 区间概率密度函数 apply two-sided条件公式
In [92]: cint = z + np.array([-1, 1]) * sigma * stats.norm.ppf((1+0.95)/2)

最后取双曲正切得到 95% 的区间值
In [93]: np.tanh(cint)
Out[93]: array([ 0.53201034, 0.56978224])

关于numpy - Python 中 cor.test 的 R 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30390476/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com