# pcorOrder: Compute Partial Correlations In pcalg: Methods for Graphical Models and Causal Inference

## 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

`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.