天天看点

R计算两列数据的相关系数_如何用Matlab计算相关系数和偏相关系数

R计算两列数据的相关系数_如何用Matlab计算相关系数和偏相关系数

点击上方蓝色字关注我们~

作者:kervin

编辑:韩苗苗

在脑科学领域的研究中,进行相关分析必不可少,比如说,我们想知道计算出来的某个指标是否与临床数据或行为学数据之间存在正相关或负相关关系。计算相关系数,最常用的是Pearson相关系数和Spearman相关系数。此外,在研究中,偏相关分析也很常用,其在计算两个变量的相关系数的同时把第三个变量当成协变量来排除这个变量的影响。本文,笔者对相关系数和偏相关系数的原理进行简单论述,并重点说明如何用Matlab实现相关系数和偏相关系数的计算。

R计算两列数据的相关系数_如何用Matlab计算相关系数和偏相关系数

Pearson和Spearman相关系数

1. Pearson相关系数。Pearson相关系数是一种反映两个变量线性相关程度的统计量,两个变量的线性相关程度用相关系数r表示,r的计算公式如下所示:

R计算两列数据的相关系数_如何用Matlab计算相关系数和偏相关系数

相关系数r的值属于[-1,+1]之间。关于Pearson相关系数具体的说明,大家可以自行百度,这里笔者重点介绍如何用Matlab实现Pearson相关系数的计算。

例1:用Matlab计算变量A和B之间的Pearson相关系数r,以及A、B之间是否显著相关,

A=[41,63,83,71,94,62,60,42,55,67],

B=[10,16,26,29,20,9,8,13,18,14]。

在Matlab命令窗口中输入以下命令即可:

>>A=[41,63,83,71,94,62,60,42,55,67];

 B=[10,16,26,29,20,9,8,13,18,14];

>> [r,p]=corr(A',B')

r =0.5997

p =0.0669

注意:这里计算相关系数r以及相应的p值用的是corr函数。实际上,corr函数既可以计算Pearson相关系数也可以计算Spearman相关系数,默认情况下计算的是Pearson相关系数,格式如下:

Pearson相关系数:[r,p]=corr(X,Y,'type','Pearson')

Spearman相关系数:[r,p]=corr(X,Y,'type','Spearman')

另外,需要注意的是,corr函数中两个变量X、Y必须是列向量,而不能是行向量,如例1中用[r,p]=corr(A',B')的命令,需要对A、B进行转置。

2. Spearman相关系数。又称秩相关系数,是利用两变量的秩次大小作线性相关分析,具体的原理这里不展开说,需要进一步了解的可以自行百度。在例1中已经说到,Matlab中的corr函数同时可以计算Spearman相关系数。

例2:用Matlab计算变量A和B之间的Spearman相关系数r,以及A、B之间是否显著相关,

A=[41,63,83,71,94,62,60,42,55,67],

B=[10,16,26,29,20,9,8,13,18,14]。

在Matlab命令窗口中直接输入以下命令即可:

>>A=[41,63,83,71,94,62,60,42,55,67];

 B=[10,16,26,29,20,9,8,13,18,14];

>> [r,p]=corr(A',B','type','Spearman')

r =0.6727

p =0.0394

结果显示A、B之间的相关系数r=0.6727,p=0.0394,存在显著的正相关。

偏相关分析

偏相关分析(Partial correlation analysis),简单地说,是在消除其他变量C影响的条件下,计算的A、B两变量之间的相关系数。Matlab中,计算偏相关系数所用的函数是partialcorr,使用方法如下:

[R,P] = partialcorr(X,Y,Z); %在控制变量Z的影响下,计算变量X、Y的偏相关系数。

例3:在消除变量C的影响下,用Matlab计算变量A和B之间的偏相关系数R。

A=[41,63,83,71,94,62,60,42,55,67], 

B=[10,16,26,29,20,9,8,13,18,14];

C=[0.81,0.90,0.12,0.91,0.63,0.09,0.27,0.54,0.95,0.96]。

直接在Matlab命令窗口中输入如下命令即可:

>> A=[41,63,83,71,94,62,60,42,55,67];

B=[10,16,26,29,20,9,8,13,18,14];

>> C= [0.81,0.90,0.12,0.91,0.63,0.09,0.27,0.54,0.95,0.96];

>> [R,P] = partialcorr(A',B',C')

R =0.6614

P =0.0524

结果表明,在控制变量C影响的条件下,计算得到A、B之间的相关系数R=0.6614,P=0.0524,A、B之间不存在显著相关。 总结

本文,笔者对如何用Matlab计算Pearson相关系数、Spearman相关系数和偏相关系数进行了详细论述,希望对大家的研究有所帮助,如有问题可以加笔者微信(微信号:kervin_zhao)进行交流。

如果本文对您有帮助,烦请各位积极转发本文到您的朋友圈,并点击文末右下方的“在看”。

原创不易,请各位朋友积极转发,多多支持,您的每一次转发就会给我们的创作增加一份动力,谢谢!

▼ 往期精彩回顾 ▼

  • 脑科学研究中常用的数据归一化方法(附Matlab程序)
  • 如何计算EEG信号的香农熵Shannon entropy(附Matlab程序)
  • 基于图论的复杂脑网络分析中的常用指标
  • 聊一聊置换检验Permutation test的原理
  • 谈一谈两种常用的多重比较校正方法(附Matlab程序)

关注我们

R计算两列数据的相关系数_如何用Matlab计算相关系数和偏相关系数