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

作者:kervin

编辑:韩苗苗

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

PearsonSpearman相关系数

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

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

1Matlab计算变量AB之间的Pearson相关系数r,以及AB之间是否显著相关,

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函数中两个变量XY必须是列向量,而不能是行向量,如例1中用[r,p]=corr(A',B')的命令,需要对AB进行转置。

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

2Matlab计算变量AB之间的Spearman相关系数r,以及AB之间是否显著相关,

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计算变量AB之间的偏相关系数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计算相关系数和偏相关系数相关推荐

  1. mysql数据库计算两列数据的和_在sql中对两列数据进行运算作为新的列操作

    如下所示: select a1,a2,a1+a2 a,a1*a2 b,a1*1.0/a2 c from bb_sb 把a表的a1,a2列相加作为新列a,把a1,a2相乘作为新列b,注意: 相除的时候得 ...

  2. R计算两列数据的相关系数_数据相关性分析 correlation - R实现

    相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度.相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析. 有时候多组数据需要分析其关联性(是否有正向 ...

  3. R计算两列数据的相关系数_相关系数简介及R计算

    变量间Pearson.Spearman.Kendall.Polychoric.Tetrachoric.Polyserial.Biserial相关系数简介及R计算对于给定数据集中,变量之间的关联程度以及 ...

  4. R计算两列数据的相关系数_数据特征分析·相关性分析

    相关性分析 相关分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个因素的的相关密切程度,相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析. 1. 如何利用相关系数判断数据之间 ...

  5. R计算两列数据的相关系数_Python+pandas计算数据相关系数(person、Kendall、spearman)...

    pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数.Kendall Tau相关系数和spearman秩相 ...

  6. R计算两列数据的相关系数_R可视化基础(7)——相关amp;相关关系可视化

    相关性分析是我们探索和分析数据时经常使用的方法,本文以R语言的角度介绍一下常用的相关分析及其可视化的实现方法.本文数据准备 本文使用CGGA数据库中 mRNAseq_325 数据(325个样本-243 ...

  7. R计算两列数据的相关系数_使用R语言中的corrplot来绘制相关系数矩阵热图

    R语言也是目前常用的数据分析编程语言之一,目前经过使用者.科学家们的开发,其功能也比较强大.本文就使用R语言中的corrplot来绘制相关系数矩阵热图进行介绍. 下面以波士顿Boston的房价数据为例 ...

  8. python计算两组数据的协方差_(python3)数据分析之Pandas:汇总、统计、相关系数和协方差...

    pandas对象中拥有一组常用的数学和统计方法,跟NumPy数组相比,它们是基于没有缺失数据的加上构建的. In [71]: df = DataFrame([[1.4,np.nan],[7.1,-4. ...

  9. java计算两列数据差_DAX计算列基于其他表中的两列

    我需要编写一个DAX语句,从概念/逻辑的角度来看有点复杂 - 所以这可能很难解释 . 我有两张 table . 在第一个表(如下所示)上,我有一个数值列表(工资) . 对于每个值,我都有相应的日期范围 ...

  10. python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现...

    graph = {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['D'], 'D': ['C','G','H'], 'E': ['F'], 'F': ['C']} # ...

最新文章

  1. linux 替换文件中某个字符串_word中如何删除包含某个特定字符串的整个段落?...
  2. 牛逼哄哄的布隆过滤器,到底有什么用?
  3. 1-2 Zabbix web界面支持中文
  4. 很多人都不知道的小秘密,c++中拷贝分为两种
  5. 【Python】手把手教你用Python做一个图像融合demo,小白可上手!
  6. JQuery:全选按钮的实现
  7. apk静态注射[转]-未实践
  8. linux grub rescue 光盘,Ubuntu9.10用安装光盘如何进入linux rescue方式?
  9. solaris php,针对 Solaris 的安装提示
  10. js fmt 时间失败,解决方案
  11. 一个简易的C++性能分析工具
  12. CDN选择合适的回源策略很重要
  13. 微信小程序实现页面按钮分享,右上角三个点分享禁用分享
  14. python中 d是什么意思_python里d是什么意思
  15. WeMos TTGO WiFi + 蓝牙电池 ESP32 0.96 英寸 OLED点亮屏幕
  16. D2D与蜂窝系统间的干扰
  17. C#——Windows程序实现窗体输出九九乘法表
  18. draw.io和plantuml替代visio画图工具
  19. vue-router.esm-bundler.js?6c02:1474 Uncaught TypeError: Cannot read property ‘forEach‘ of undefined
  20. 研究生项目狗自救指南

热门文章

  1. 计算机基础和Linux安装
  2. java 无法加载主类
  3. 【Vegas原创】IPAD忘记密码重置恢复出厂设置
  4. 设备状态监测系统提升企业设备管理水平
  5. 电脑版微信防撤回大全
  6. 上海交大计算机系王楠,交通学院本科生学生组织干部名单
  7. Windows10更新错误显示0x8000ffff,易升更新0xc1900107
  8. 如何理解“安全的本质是信任问题”
  9. 导出微信聊天记录并输出
  10. 菜鸟版JAVA设计模式—从笔记本电源线看适配器模式