Compute a correlation matrix, possibly by robust methods, applicable also for the case of a large number of variables.
mcor(dm, method = c("standard", "Qn", "QnStable",
"ogkScaleTau2", "ogkQn", "shrink"))
numeric data matrix; rows are observiations (“samples”), columns are variables.
A correlation matrix estimated by the specified method.
The "standard"
method envokes a standard correlation estimator. "Qn"
envokes a robust, elementwise correlation estimator based on the Qn scale
estimte. "QnStable"
also uses the Qn scale estimator, but uses an
improved way of transforming that into the correlation
estimator. "ogkQn"
envokes a correlation estimator based on Qn using
OGK. "shrink"
is only useful when used with pcSelect. An optimal
shrinkage parameter is used. Only correlation between response and
covariates is shrinked.
See those in the help pages for Qn
and
covOGK
from package robustbase.
Qn
and covOGK
from package robustbase.
pcorOrder
for computing partial correlations.
# NOT RUN {
## produce uncorrelated normal random variables
set.seed(42)
x <- rnorm(100)
y <- 2*x + rnorm(100)
## compute correlation of var1 and var2
mcor(cbind(x,y), method="standard")
## repeat but this time with heavy-tailed noise
yNoise <- 2*x + rcauchy(100)
mcor(cbind(x,yNoise), method="standard") ## shows almost no correlation
mcor(cbind(x,yNoise), method="Qn") ## shows a lot correlation
mcor(cbind(x,yNoise), method="QnStable") ## shows still much correlation
mcor(cbind(x,yNoise), method="ogkQn") ## ditto
# }
Run the code above in your browser using DataLab