pcorOrder: Compute Partial Correlations

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/pcalg.R

Description

This function computes partial correlations given a correlation matrix using a recursive algorithm.

Usage

1
pcorOrder(i,j, k, C, cut.at = 0.9999999)

Arguments

i,j

(integer) position of variable i and j, respectively, in correlation matrix.

k

(integer) positions of zero or more conditioning variables in the correlation matrix.

C

Correlation matrix (matrix)

cut.at

Number slightly smaller than one; if c is cut.at, values outside of [-c,c] are set to -c or c respectively.

Details

The partial correlations are computed using a recusive formula if the size of the conditioning set is one. For larger conditioning sets, the pseudoinverse of parts of the correlation matrix is computed (by pseudoinverse() from package corpcor). The pseudoinverse instead of the inverse is used in order to avoid numerical problems.

Value

The partial correlation of i and j given the set k.

Author(s)

Markus Kalisch [email protected] and Martin Maechler

See Also

condIndFisherZ for testing zero partial correlation.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
## produce uncorrelated normal random variables
mat <- matrix(rnorm(3*20),20,3)
## compute partial correlation of var1 and var2 given var3
pcorOrder(1,2, 3, cor(mat))

## define graphical model, simulate data and compute
## partial correlation with bigger conditional set
genDAG <- randomDAG(20, prob = 0.2)
dat <- rmvDAG(1000, genDAG)
C <- cor(dat)
pcorOrder(2,5, k = c(3,7,8,14,19), C)

Example output

[1] 0.1919379
[1] 0.537579

pcalg documentation built on June 5, 2018, 1:05 a.m.