covOGK {robustbase} | R Documentation |
Computes the orthogonalized pairwise covariance matrix estimate described in in Maronna and Zamar (2002). The pairwise proposal goes back to Gnanadesikan and Kettenring (1972).
covOGK(X, n.iter = 2, sigmamu, rcov = covGK, weight.fn = hard.rejection, keep.data = FALSE, ...) covGK (x, y, scalefn = scaleTau2, ...) s_mad(x, mu.too = FALSE, na.rm = FALSE) s_IQR(x, mu.too = FALSE, na.rm = FALSE)
X |
data in something that can be coerced into a numeric matrix. |
n.iter |
number of orthogonalization iterations. Usually 1 or 2; values greater than 2 are unlikely to have any significant effect on the estimate (other than increasing the computing time). |
sigmamu, scalefn |
a function that computes univariate robust
location and scale estimates. By default it should return a single
numeric value containing the robust scale (standard deviation)
estimate. When mu.too is true, sigmamu() should
return a numeric vector of length 2 containing robust location and
scale estimates. See scaleTau2 , s_Qn ,
s_Sn , s_mad or s_IQR for examples to be
used as sigmamu argument. |
rcov |
function that computes a robust covariance estimate
between two vectors. The default, Gnanadesikan-Kettenring's
covGK , is simply (s^2(X+Y) - s^2(X-Y))/4 where
s() is the scale estimate sigmamu() . |
weight.fn |
a function of the robust distances and the number of variables p to compute the weights used in the reweighting step. |
keep.data |
logical indicating if the (untransformed) data matrix
X should be kept as part of the result. |
... |
additional arguments; for covOGK to be passed to
sigmamu() and weight.fn() ; for covGK passed to scalefn . |
x,y |
numeric vectors of the same length, the covariance of which
is sought in covGK (or the scale, in s_mad or
s_IQR ). |
mu.too |
logical indicating if both location and scale should be
returned or just the scale (when mu.too=FALSE as by default). |
na.rm |
if TRUE then NA values are stripped
from x before computation takes place. |
Typical default values for the function arguments
sigmamu
, rcov
, and weight.fn
, are
available as well, see the Examples below,
but their names and calling sequences are
still subject to discussion and may be changed in the future.
covOGK()
currently returns a list with components
center |
robust location: numeric vector of length p. |
cov |
robust covariance matrix estimate: p x p matrix. |
wcenter, wcov |
re-weighted versions of center and
cov . |
weights |
the robustness weights used. |
distances |
the mahalanobis distances computed using
center and cov . |
......
but note that this might be radically changed to returning an
S4 classed object!
covGK()
is a trivial 1-line function returning the covariance
estimate
c^(x,y) = [s^(x+y)^2 - s^(x-y)^2]/4,
where s^(u) is the scale estimate of u
specified by scalefn
.
s_mad()
, and s_IQR()
return the
scale estimates mad
or IQR
respectively, where the s_*
functions return a length-2 vector
(mu, sig) when mu.too = TRUE
, see also scaleTau2
.
Kjell Konis konis@stats.ox.ac.uk, with modifications by Martin Maechler.
Maronna, R.A. and Zamar, R.H. (2002) Robust estimates of location and dispersion of high-dimensional datasets; Technometrics 44(4), 307–317.
Gnanadesikan, R. and John R. Kettenring (1972) Robust estimates, residuals, and outlier detection with multiresponse data. Biometrics 28, 81–124.
data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) cO1 <- covOGK(hbk.x, sigmamu = scaleTau2) cO2 <- covOGK(hbk.x, sigmamu = s_Qn) cO3 <- covOGK(hbk.x, sigmamu = s_Sn) cO4 <- covOGK(hbk.x, sigmamu = s_mad) cO5 <- covOGK(hbk.x, sigmamu = s_IQR) data(toxicity) cO1tox <- covOGK(toxicity, sigmamu = scaleTau2) cO2tox <- covOGK(toxicity, sigmamu = s_Qn) ## nice formatting of correlation matrices: as.dist(round(cov2cor(cO1tox$cov), 2)) as.dist(round(cov2cor(cO2tox$cov), 2)) ## "graphical" symnum(cov2cor(cO1tox$cov)) symnum(cov2cor(cO2tox$cov), legend=FALSE)