在多元相关分析中,简单相关系数可能不能够真实的反映出变量X和Y之间的相关性,因为变量之间的关系很复杂,它们可能受到不止一个变量的影响。这个时候偏相关系数是一个更好的选择。
偏相关系数是在排除了其他变量的影响下计算变量间的相关系数。假设我们需要计算X和Y之间的相关性,Z代表其他所有的变量,X和Y的偏相关系数可以认为是X和Z线性回归得到的残差Rx与Y和Z线性回归得到的残差Ry之间的简单相关系数,即pearson相关系数。
偏相关系数的计算可以有下面的三种方法(详细的计算方法见参考文章)
1 根据上面的说法,从线性回归的角度计算变量间的偏相关系数,但是这样做很麻烦。
2 迭代法,可以认为简单相关系数为0阶偏相关系数,任何n阶偏相关都可以通过3个(n-1)阶偏相关系数计算出来。
3 相关矩阵求逆法,即首先计算出所有变量的相关性矩阵,然后求它的逆矩阵。这样可以求出任何两两变量之间的偏相关系数。
偏相关系数的检验可以有两种方法。一种是t-test,另外一种fisher 转化法。
R中偏相关系数的计算
corpcor包中提供了相关函数计算偏相关系数,有两种方式:
1 函数cor2pcor(). 它以数据矩阵X的相关矩阵cor(x)作为输入,计算出两两的偏相关系数;
2 pcor.shrink(). 它以X作为输入,得到两两的偏相关系数矩阵;它计算得到的偏相关系数矩阵和cor2pcor()给出的结果大体上相同,但是还是有一些出入。它是用shrinkage estimates的方法计算偏相关系数.
参考文章
partial correlation. http://en.wikipedia.org/wiki/Partial_correlation