Learn R Programming

corpcor (version 1.4.2)

pcor.shrink: Shrinkage Estimates of Partial Correlation and Partial Variance

Description

The functions pcor.shrink and pvar.shrink compute shrinkage estimates of partial correlation and partial variance, respectively.

Usage

pcor.shrink(x, lambda, w, protect=0.01, verbose=TRUE)
pvar.shrink(x, lambda, lambda.var, w, protect=0.01, verbose=TRUE)

Arguments

x
a data matrix
lambda
the correlation shrinkage intensity (range 0-1). If lambda is not specified (the default) it is estimated using an analytic formula from Schaefer and Strimmer (2005) - see cor.shri
lambda.var
the variance shrinkage intensity (range 0-1). If lambda.var is not specified (the default) it is estimated using an analytic formula from Schaefer and Strimmer (2005) - see
w
optional: weights for each data point - if not specified uniform weights are assumed (w = rep(1/n, n) with n = nrow(x)).
protect
the fraction of correlation components protected against excessive individual component risk (default: 0.01)
verbose
report progress while computing (default: TRUE)

Value

  • pcor.shrink returns the partial correlation matrix. pvar.shrink returns the partial variances.

Details

The partial variance $var(X_k | rest)$ is the variance of $X_k$ conditioned on the remaining variables. It equals the inverse of the corresponding diagonal entry of the precision matrix (see Whittaker 1990). The partial correlations $corr(X_k, X_l | rest)$ is the correlation between $X_k$ and $X_l$ conditioned on the remaining variables. It equals the sign-reversed entries of the off-diagonal entries of the precision matrix, standardized by the the squared root of the associated inverse partial variances. Note that using pcor.shrink(x) much faster than cor2pcor(cor.shrink(x)). For details about the shrinkage procedure consult Schaefer and Strimmer (2005) and the help page of cov.shrink.

References

Schaefer, J., and Strimmer, K. (2005). A shrinkage approach to large-scale covariance estimation and implications for functional genomics. Statist. Appl. Genet. Mol. Biol.4:32. (http://www.bepress.com/sagmb/vol4/iss1/art32/) Whittaker J. (1990). Graphical Models in Applied Multivariate Statistics. John Wiley, Chichester.

See Also

invcov.shrink, cov.shrink, cor2pcor

Examples

Run this code
# load corpcor library
library("corpcor")

# generate data matrix
p <- 50
n <- 10
X <- matrix(rnorm(n*p), nrow = n, ncol = p)


# partial variance
pv <- pvar.shrink(X)
pv

# partial correlations (fast and recommend way)
pcr1 <- pcor.shrink(X)

# other possibilities to estimate partial correlations
pcr2 <- cor2pcor( cor.shrink(X) )


# all the same
sum((pcr1 - pcr2)^2)

Run the code above in your browser using DataLab