有没有办法可以在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置信区间。
答案 0 :(得分:8)
这是计算内部信心的一种方法
首先得到相关值(pearson' s)
In [88]: z = np.arctanh(corr[0])
In [89]: z
Out[89]: 0.62007264620685021
使用Fisher变换得到z
In [90]: sigma = (1/((len(df.index)-3)**0.5))
In [91]: sigma
Out[91]: 0.013840913308956662
并且,sigma值,即标准误差
two-sided
获得正常连续随机变量的正常95%区间概率密度函数应用In [92]: cint = z + np.array([-1, 1]) * sigma * stats.norm.ppf((1+0.95)/2)
条件公式
In [93]: np.tanh(cint)
Out[93]: array([ 0.53201034, 0.56978224])
最后采用双曲正切来获得95%的区间值
{{1}}