偏相关分析(partial correlation)-排除某些变量的影响( control variables)

在多要素所构成的系统中,当研究某一个要素对另一个要素的影响或相关程度时,把其他要素的影响视作常数(保持不变),即暂时不考虑其他要素影响,单独研究两个要素之间的相互关系的密切程度,所得数值结果为偏相关系数。也就是我们在论文中看到的control variables(Age, educateion, gender)等与实验无关的变量Z,但是又影响因变量Y。

多元回归分析中,在消除其他变量影响的条件下,所计算的某两变量之间的相关系数。在多元相关分析中,简单相关系数可能不能够真实的反映出变量X和Y之间的相关性,因为变量之间的关系很复杂,它们可能受到不止一个变量的影响。这个时候偏相关系数是一个更好的选择。

假设我们需要计算X和Y之间的相关性,Z代表其他所有的变量,X和Y的偏相关系数可以认为是X和Z线性回归得到的残差Rx与Y和Z线性回归得到的残差Ry之间的简单相关系数,即pearson相关系数。

得到便相关系数partial correlation coefficient。 x,y是想要分析相关的变量,z是想要control的变量。

R,Matlab 和spss上实现:

R method 1:借助工具包“dplyr"里面的函数pcor.test

library(dplyr)

stats2 <- pcor.test(X,Y,Z,method="pearson")

methods:"pearson", "spearman","kendall"

Results:


R method 2:用定义,借助工具包“stats"里面的cor.test,lm,residuals函数

library(stats)

r1 <- residuals(lm(formula=X~Z))

r2 <- residuals(lm(formula=Y~Z))

stats3 <- cor.test(r1,r2,method="pearson")

这样写lm 函数,线性回归拟合的方程为:X=B1*Z+B01; Y= B2*Z+B02, 默认线性回归的函数是有截距的。

Results:


Matlab:利用partialcorr 函数

[rho,p_value] = partialcorr(X,Y,Z,'type','Pearson');

Results:


Matlab method 2:用回归误差相关的思路来求偏相关系数(错误代码示例

[B1,BINT1,R1,RINT1] = regress(X,Z); 

[B2,BINT2,R2,RINT2] = regress(Y,Z); 

[rho,p_value] = corr(R1,R2,'type','Pearson');

这样写regress 函数,线性回归拟合的方程为:X=B1*Z; Y= B2*Z,默认回归函数没有截距。

Results:


注意:结果不一样,貌似做了同样的事情,得不到相同的结果。其实是因为Matlab regress函数的特殊用法,需要一个全一向量来占位b0

 正确代码示例

[B1,BINT1,R1,RINT1] = regress(X,[ones(size(Z,1),1),Z]); 

[B2,BINT2,R2,RINT2] = regress(Y,[ones(size(Z,1),1),Z]); 

[rho,p_value] = corr(R1,R2,'type','Pearson');

这样写regress 函数,线性回归拟合的方程为:X=B1(1,1)*1+B1(1,2)*Z; Y= B2(1,1)*1+B2(1,2)*Z. 由于regress默认回归函数没有截距,所以要自己添加一个全1的向量,回归结果中这个时候B1(1,2)(B2(1,2))才是变量Z的系数,B1(1,1)(B1(1,2))是截距.

Results:结果与上面一致了


SPSS:



Results:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础知识 一.线性相关分析:研究两个变量间线性关系的程度 用相关系数r来描述,关于r的解读:(1)正相关:如果x,...
    超级无敌大蜗牛阅读 20,873评论 0 3
  • 第九章 双变量回归与相关 x2yliner Sys.Date() 知识清单 直线回归相关概念求法统计推断区间估计 ...
    x2yline阅读 5,542评论 0 0
  • 1 相关关系 相关关系指变量之间存在着非确定性依存关系。即当一个或一组变量每取一个值时,相应的另一个变量可能有多个...
    生信F3阅读 5,701评论 1 1
  • 获取代码和更佳阅读体验获取,请移步:相关性分析 | R语言 -- 两个变量的相关性分析[https://mp.we...
    生信摆渡阅读 45,775评论 0 66
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 13,602评论 0 11

友情链接更多精彩内容