计算相关系数的置信区间

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如何在导入到Google工作表时使用ApachePOI显示系列标签   java在Swing表上修改数据生成SQL   java TCP数据包在网络级别合并   java自动连线bean在线程位置为空   javasocket。禁用无线连接时getOutputStream()阻塞   JSON上的javascript字符串数组。stringify输出unicode字符   java在Oracle数据库中存储不同类型数据的最佳体验   Spring MVC中模板引擎后的java进程输出   不知从哪里来的java空字符串。   如何加载java。使用Adobe Flex的客户端的属性文件?   java如何替换多层括号之间的所有内容?   {JSONObject必须以java'开头   java使用commandButton或commandLink返回并管理HTML控件值   java Android大文本视图动态   java JMock需要自定义类   java Android应用程序在emulator中工作,但在设备中失败   java连接到derby数据库时使用什么文件路径格式?   java在一个函数调用中返回两个结果?