Learn R Programming

funcharts (version 1.8.1)

RoAMFEWMA_PhaseII: Robust Adaptive Multivariate Functional EWMA Control Chart - Phase II

Description

This function performs Phase II of the Robust Adaptive Multivariate Functional EWMA (RoAMFEWMA) control chart.

Usage

RoAMFEWMA_PhaseII(mfdobj_2, mod_1, n_seq_2 = 1, l_seq_2 = 2000)

Value

A list with the following elements.

  • ARL_2: the average run length estimated over the bootstrap sequences. If n_seq_2 is 1, it is simply the run length observed over the Phase II sequence, i.e., the number of observations up to the first alarm,

  • RL: the run length observed over the Phase II sequence, i.e., the number of observations up to the first alarm,

  • V2: a list with length n_seq_2, containing the AMFEWMA monitoring statistic in Equation (8) of Capezza et al. (2024), calculated in each bootstrap sequence, until the first alarm.

  • cc: a data frame with the information needed to plot the AMFEWMA control chart in Phase II, with the following columns. id contains the id of each multivariate functional observation, amfewma_monitoring_statistic contains the AMFEWMA monitoring statistic values calculated on the Phase II sequence, amfewma_monitoring_statistic_lim is the upper control limit.

Arguments

mfdobj_2

An object of class mfd containing the Phase II multivariate functional data set, to be monitored with the RoAMFEWMA control chart.

mod_1

The output of the Phase I achieved through the RoAMFEWMA_PhaseI function.

n_seq_2

If it is 1, the Phase II monitoring statistic is calculated on the data sequence. If it is an integer number larger than 1, a number n_seq_2 of bootstrap sequences are sampled with replacement from mfdobj_2 to allow uncertainty quantification on the estimation of the run length. Default value is 1.

l_seq_2

If n_seq_2 is larger than 1, this parameter sets the length of each bootstrap sequence to be generated. Default value is 2000.

Details

This function is conceptually similar to AMFEWMA_PhaseII, proposed by Capezza et al. (2024), but adapted to the RoAMFEWMA framework. In Phase II, monitoring relies on the RoAMFEWMA model calibrated in Phase I on data cleaned from both cellwise and casewise outliers. The monitoring statistic, control limit, and bootstrap-based ARL estimation remain unchanged, but the input model must be the robust one obtained through RoAMFEWMA_PhaseI.

References

Capezza, C., Capizzi, G., Centofanti, F., Lepore, A., Palumbo, B. (2025) An Adaptive Multivariate Functional EWMA Control Chart. Journal of Quality Technology, 57(1):1--15, doi:https://doi.org/10.1080/00224065.2024.2383674.

Examples

Run this code
if (FALSE) {
set.seed(0)
dat_phaseI <- simulate_data_RoMFCC(p_cellwise = 0.05,
                            p_casewise = 0.05,
                            outlier = "outlier_E",
                            M_outlier_cell = 0.03,
                            M_outlier_case = 0.01,
                            max_n_cellwise = 10)
dat_phaseII <- simulate_data_RoMFCC(OC = "OC_E",
                                    M_OC = 0.01,
                                    which_OC = 5)
mfdobj_phaseI <- get_mfd_list(dat_phaseI$X_mat_list, n_basis = 5)
mfdobj_phaseII <- get_mfd_list(dat_phaseII$X_mat_list, n_basis = 5)
mfdobj_training_phaseI <- mfdobj_phaseI[1:333, ]
mfdobj_tuning_phaseI <- mfdobj_phaseI[334:1000, ]
out_phaseI <- RoAMFEWMA_PhaseI(mfdobj = mfdobj_training_phaseI,
                               mfdobj_tuning = mfdobj_tuning_phaseI)
out_phaseII <- RoAMFEWMA_PhaseII(mfdobj_2 = mfdobj_phaseII,
                                 mod_1 = out_phaseI)
plot_control_charts(out_phaseII$cc)
}

Run the code above in your browser using DataLab