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 is the variance of
conditioned on the
remaining variables. It equals the inverse of the corresponding diagonal entry
of the precision matrix (see Whittaker 1990).
The partial correlations is the correlation between
and
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)