rpca_mfd {funcharts} | R Documentation |
Robust multivariate functional principal components analysis
Description
It performs robust MFPCA as described in Capezza et al. (2024).
Usage
rpca_mfd(
mfdobj,
center = "fusem",
scale = "funmad",
nharm = 20,
method = "ROBPCA",
alpha = 0.8
)
Arguments
mfdobj |
A multivariate functional data object of class mfd. |
center |
If TRUE, it centers the data before doing MFPCA with respect
to the functional mean of the input data.
If |
scale |
If |
nharm |
Number of multivariate functional principal components to be calculated. Default is 20. |
method |
If |
alpha |
This parameter measures the fraction of outliers the algorithm
should resist and is used only if |
Value
An object of pca_mfd
class, as returned by the pca_mfd
function when performing non robust multivariate
functional principal component analysis.
References
Capezza, C., Centofanti, F., Lepore, A., Palumbo, B. (2024) Robust Multivariate Functional Control Charts. Technometrics, doi:10.1080/00401706.2024.2327346.
Centofanti, F., Colosimo, B.M., Grasso, M.L., Menafoglio, A., Palumbo, B., Vantini, S. (2023) Robust functional ANOVA with application to additive manufacturing. Journal of the Royal Statistical Society Series C: Applied Statistics 72(5), 1210–1234 doi:10.1093/jrsssc/qlad074
Croux, C., Ruiz-Gazen, A. (2005). High breakdown estimators for principal components: The projection-pursuit approach revisited. Journal of Multivariate Analysis, 95, 206–226, doi:10.1016/j.jmva.2004.08.002.
Hubert, M., Rousseeuw, P.J., Branden, K.V. (2005) ROBPCA: A New Approach to Robust Principal Component Analysis, Technometrics 47(1), 64–79, doi:10.1198/004017004000000563
Locantore, N., Marron, J., Simpson, D., Tripoli, N., Zhang, J., Cohen K., K. (1999), Robust principal components for functional data. Test, 8, 1-28. doi:10.1007/BF02595862
Examples
library(funcharts)
dat <- simulate_mfd(nobs = 20, p = 1, correlation_type_x = "Bessel")
mfdobj <- get_mfd_list(dat$X_list, n_basis = 5)
# contaminate first observation
mfdobj$coefs[, 1, ] <- mfdobj$coefs[, 1, ] + 0.05
# plot_mfd(mfdobj) # plot functions to see the outlier
# pca <- pca_mfd(mfdobj) # non robust MFPCA
rpca <- rpca_mfd(mfdobj) # robust MFPCA
# plot_pca_mfd(pca, harm = 1) # plot first eigenfunction, affected by outlier
# plot_pca_mfd(rpca, harm = 1) # plot first eigenfunction in robust case