X <- glass_df[, c("V29", "V30", "V125", "V175", "V180")]
# Classical estimates
center_mean <- colMeans(X)
center_median <- sapply(X, median)
cov_classical <- cov(X)
cor_classical <- cor(X)
# Robust estimates (MCD)
mcd <- robustbase::covMcd(X)
center_MCD <- mcd$center
cov_MCD <- mcd$cov
cor_MCD <- mcd$cor
# Multivariate MM-estimator
mest <- covRob(as.matrix(X), type = "MM", corr = TRUE)
center_MMest <- mest$center
cov_MMest <- mest$cov
cor_MMest <- mest$cor
# Compare estimated centers
round(rbind(
Mean = center_mean,
Median = center_median,
MM = center_MMest,
MCD = center_MCD
), 2) V29 V30 V125 V175 V180
Mean 13.49 12.62 94.40 2013.37 511.22
Median 13.60 12.32 84.88 1754.15 466.60
MM 12.76 11.87 82.35 1729.24 450.51
MCD 12.46 11.63 79.33 1724.55 447.41




