# \donttest{
# Length of the functional grid
l <- 100
# Number of observations
n <- 300
# Generate training in-control data with three equally-sized clusters, maximum dissimilarity
data <- simulate_data_fmrcc(n_obs = n, delta_1 = 1, delta_2 = 0.5, len_grid = l, severity = 0)
X_train_mfd <- get_mfd_list(data_list = data['X'], n_basis = 20)
Y_train_mfd <- get_mfd_list(data_list = data['Y'], n_basis = 20)
# Generate tuning in-control data with three equally-sized clusters, maximum dissimilarity
data <- simulate_data_fmrcc(n_obs = n, delta_1 = 1, delta_2 = 0.5, len_grid = l, severity = 0)
X_tun_mfd <- get_mfd_list(data_list = data['X'], n_basis = 20)
Y_tun_mfd <- get_mfd_list(data_list = data['Y'], n_basis = 20)
# Example with dense functional data
phaseI_results <- FMRCC_PhaseI(
Y_train = Y_train_mfd,
X_train = X_train_mfd,
Y_tun = Y_tun_mfd,
X_tun = X_tun_mfd,
FVEy = 0.95,
FVEx = 0.90,
alpha = 0.01,
groups = 1:3,
sigma_par = c('VVV', 'EEE')
)
# View BIC plot
phaseI_results$BIC_plt
# Generate out-of-control data with three equally-sized clusters, maximum dissimilarity
data <- simulate_data_fmrcc(n_obs = n, delta_1 = 1, delta_2 = 0.5, len_grid = l, severity = 2)
X_test_mfd <- get_mfd_list(data_list = data['X'], n_basis = 20)
Y_test_mfd <- get_mfd_list(data_list = data['Y'], n_basis = 20)
# Perform the monitoring of the Phase II data
phaseII_results <- FMRCC_PhaseII(
Y_test = Y_test_mfd,
X_test = X_test_mfd,
phaseI = phaseI_results
)
# Check Average Run Length
phaseII_results$ARL
# View monitoring results
head(phaseII_results$phaseII$df)
# Identify out-of-control observations
oc_observations <- phaseII_results$phaseII$df[phaseII_results$phaseII$df$status == 'OC',]
oc_observations
# }
Run the code above in your browser using DataLab