计算相关系数的置信区间

correlation的Python项目详细描述


相关性

计算相关系数的置信区间,包括Pearson的R、Kendall的tau、Spearman的rho和定制的相关度量。在

方法论

给出了两种计算置信区间的方法,一种是基于正态近似的参数方法,另一种是基于自举的非参数方法。在

参数法

假设r峎hat是我们得到的相关性,然后用一个变换

z = ln((1+r)/(1-r))/2,

z近似服从正态分布,
平均值等于z(r峈hat),
方差sigma^2分别等于1/(n-3),0.437/(n-4),(1+r_^2/2)/(n-3),分别为皮尔逊r,Kendall的tau和Spearman的rho(详见参考文献[1,2])。n是数组长度。在

r的(1α)CI为

^{pr2}$

其中T是前面提到的变换的逆

T(x) = (exp(2x) - 1) / (exp(2x) + 1),
z_lower = z - z_(1-alpha/2) sigma,
z_upper = z + z_(1-alpha/2) sigma.

当Pearson的r、Kendall的tau和Spearman的rho的绝对值分别小于1、0.8和0.95时,这种正态近似就起作用了。在

非参数方法

对于非参数方法,我们简单地采用了一种朴素的bootstrap方法。在

  • 我们从原始(成对)样本中抽取一对样本(x逖i,y逖i),直到样本大小等于n,然后从新样本中计算相关系数。在
  • 多次重复此过程(默认情况下我们使用5000次)
  • 然后我们可以通过获得的相关系数的α/2和(1-α/2)分位数来获得r的(1-α)CI。在

参考文献

[1]Bonett,Douglas G.和Thomas A.Wright。”估计Pearson、Kendall和Spearman相关性的样本量要求〉,《心理测量学》65,第1期(2000):23-28。
[2] 比沙拉、安东尼J.和詹姆斯B.希特纳。”当数据不正常时相关性的置信区间。”行为研究方法49,第1期(2017):294-309。在

安装:

pip install correlation

或者

conda install -c wangxiangwen correlation

用法示例:

>>>importcorrelation>>>a,b=list(range(2000)),list(range(200,0,-1))*10>>>correlation.corr(a,b,method='spearman_rho')(-0.0999987624920335,# correlation coefficient-0.14330929583811683,# lower endpoint of CI-0.056305939127336606,# upper endpoint of CI7.446171861744971e-06)# p-value

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate会话。save()不返回值吗?   java JMS应用程序发布订阅   java使用字符串创建一个长度为n,高度为n的正方形   java如何在MySQL的SQL查询中传递ArrayList<>如IN子句   安卓 java。lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin。jvm。内部的内在的。检查参数不完整   如何用Java绘制交互式图形/线条?   java Blackberry移动Web应用快捷方式   java Json LocalDateTIme问题   java更改密钥的颜色   java在过滤条件之后在流上迭代时如何获取上一个对象   Java:按位和创建无符号字节   java在JavaScript中检索Velocity循环变量   java JButton不会出现在GUI上   java Cell API json转换到POJO   java在模拟中初始化静态最终变量