pcor.shrink {corpcor} | R Documentation |
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, verbose=TRUE)
pvar.shrink(x, lambda, lambda.var, w, verbose=TRUE)
Arguments
x |
a data matrix |
lambda |
the correlation shrinkage intensity (range 0-1).
If |
lambda.var |
the variance shrinkage intensity (range 0-1).
If |
w |
optional: weights for each data point - if not specified uniform weights
are assumed ( |
verbose |
report progress while computing (default: TRUE) |
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 Sch\"afer and Strimmer (2005),
Opgen-Rhein and Strimmer (2007), and the help page of cov.shrink
.
Value
pcor.shrink
returns the partial correlation matrix. Attached to this
matrix are the standardized partial variances (i.e. PVAR/VAR) that
can be retrieved using attr
under the attribute "spv".
pvar.shrink
returns the partial variances.
Author(s)
Juliane Sch\"afer and Korbinian Strimmer (https://strimmerlab.github.io).
References
Opgen-Rhein, R., and K. Strimmer. 2007. Accurate ranking of differentially expressed genes by a distribution-free shrinkage approach. Statist. Appl. Genet. Mol. Biol. 6:9. <DOI:10.2202/1544-6115.1252>
Sch\"afer, J., and K. Strimmer. 2005. A shrinkage approach to large-scale covariance estimation and implications for functional genomics. Statist. Appl. Genet. Mol. Biol. 4:32. <DOI:10.2202/1544-6115.1175>
Whittaker J. 1990. Graphical Models in Applied Multivariate Statistics. John Wiley, Chichester.
See Also
invcov.shrink
, cov.shrink
, cor2pcor
Examples
# 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)