wolffd@0: function [r, c] = partial_corr_coef(S, i, j, Y) wolffd@0: % PARTIAL_CORR_COEF Compute a partial correlation coefficient wolffd@0: % [r, c] = partial_corr_coef(S, i, j, Y) wolffd@0: % wolffd@0: % S is the covariance (or correlation) matrix for X, Y, Z wolffd@0: % where X=[i j], Y is conditioned on, and Z is marginalized out. wolffd@0: % Let S2 = Cov[X | Y] be the partial covariance matrix. wolffd@0: % Then c = S2(i,j) and r = c / sqrt( S2(i,i) * S2(j,j) ) wolffd@0: % wolffd@0: wolffd@0: % Example: Anderson (1984) p129 wolffd@0: % S = [1.0 0.8 -0.4; wolffd@0: % 0.8 1.0 -0.56; wolffd@0: % -0.4 -0.56 1.0]; wolffd@0: % r(1,3 | 2) = 0.0966 wolffd@0: % wolffd@0: % Example: Van de Geer (1971) p111 wolffd@0: %S = [1 0.453 0.322; wolffd@0: % 0.453 1.0 0.596; wolffd@0: % 0.322 0.596 1]; wolffd@0: % r(2,3 | 1) = 0.533 wolffd@0: wolffd@0: X = [i j]; wolffd@0: i2 = 1; % find_equiv_posns(i, X); wolffd@0: j2 = 2; % find_equiv_posns(j, X); wolffd@0: S2 = S(X,X) - S(X,Y)*inv(S(Y,Y))*S(Y,X); wolffd@0: c = S2(i2,j2); wolffd@0: r = c / sqrt(S2(i2,i2) * S2(j2,j2));