如果原始相关系数阵可逆的话,那么求起来就容易多了。变量i与j之间的偏相关为-p[i,j]/sqrt(p[i,i]*p[j,j])),p是相关系数阵的逆矩阵,i、j表示行列。给你看个R的源代码,很简单:
> partial.cor<br />
function (X, ...) <br />
{<br />
R <- cor(X, ...)<br />
RI <- solve(R)<br />
D <- 1/sqrt(diag(RI))<br />
R <- -RI * (D %o% D)<br />
diag(R) <- 0<br />
rownames(R) <- colnames(R) <- colnames(X)<br />
R<br />
}<br />
<environment: namespace:Rcmdr>