Skip to main content

Module spm

Module spm 

Source
Expand description

Statistical Process Monitoring (SPM) for functional data.

This module implements a complete framework for monitoring functional data processes using FPCA-based control charts. It supports both univariate and multivariate functional settings.

§Overview

The SPM workflow follows two phases:

  • Phase I (training): Builds a monitoring chart from historical in-control data. The data is split into a tuning set (for FPCA) and a calibration set (for establishing control limits).

  • Phase II (monitoring): Projects new observations through the trained model and checks whether monitoring statistics exceed control limits.

§Monitoring Statistics

  • Hotelling T-squared: Measures variation in the principal component subspace. Sensitive to shifts in the major modes of variation.

  • SPE (Squared Prediction Error): Measures residual variation outside the PC subspace. Sensitive to new types of variation not captured by FPCA.

§Modules

  • phase: Core Phase I/II framework for univariate and multivariate SPM
  • ewma: EWMA smoothing for enhanced sensitivity to small persistent shifts
  • frcc: Functional Regression Control Chart (adjusts for known covariates)
  • mfpca: Multivariate FPCA for multi-response monitoring
  • stats: T-squared and SPE computation
  • control: Control limit estimation
  • contrib: Contribution diagnostics for fault identification
  • partial: Partial-domain monitoring (incomplete observations)

§Example

use fdars_core::matrix::FdMatrix;
use fdars_core::spm::phase::{spm_phase1, spm_monitor, SpmConfig};

// Phase I: build chart from in-control data
let config = SpmConfig { ncomp: 3, alpha: 0.05, ..SpmConfig::default() };
let chart = spm_phase1(&data, &argvals, &config).unwrap();

// Phase II: monitor new data
let result = spm_monitor(&chart, &new_data, &argvals).unwrap();
// Check result.t2_alarm and result.spe_alarm for out-of-control signals

Re-exports§

pub use amewma::spm_amewma_monitor;
pub use amewma::AmewmaConfig;
pub use amewma::AmewmaMonitorResult;
pub use arl::arl0_ewma_t2;
pub use arl::arl0_spe;
pub use arl::arl0_t2;
pub use arl::arl1_t2;
pub use arl::ArlConfig;
pub use arl::ArlResult;
pub use bootstrap::spe_limit_robust;
pub use bootstrap::t2_limit_robust;
pub use bootstrap::ControlLimitMethod;
pub use contrib::spe_contributions;
pub use contrib::t2_contributions;
pub use contrib::t2_contributions_mfpca;
pub use contrib::t2_pc_contributions;
pub use contrib::t2_pc_significance;
pub use control::spe_control_limit;
pub use control::spe_moment_match_diagnostic;
pub use control::t2_control_limit;
pub use control::ControlLimit;
pub use cusum::spm_cusum_monitor;
pub use cusum::spm_cusum_monitor_with_restart;
pub use cusum::CusumConfig;
pub use cusum::CusumMonitorResult;
pub use elastic_spm::elastic_spm_monitor;
pub use elastic_spm::elastic_spm_phase1;
pub use elastic_spm::ElasticSpmChart;
pub use elastic_spm::ElasticSpmConfig;
pub use elastic_spm::ElasticSpmMonitorResult;
pub use ewma::ewma_scores;
pub use ewma::spm_ewma_monitor;
pub use ewma::EwmaConfig;
pub use ewma::EwmaMonitorResult;
pub use frcc::frcc_monitor;
pub use frcc::frcc_phase1;
pub use frcc::FrccChart;
pub use frcc::FrccConfig;
pub use frcc::FrccMonitorResult;
pub use iterative::spm_phase1_iterative;
pub use iterative::IterativePhase1Config;
pub use iterative::IterativePhase1Result;
pub use mewma::spm_mewma_monitor;
pub use mewma::MewmaConfig;
pub use mewma::MewmaMonitorResult;
pub use mfpca::mfpca;
pub use mfpca::MfpcaConfig;
pub use mfpca::MfpcaResult;
pub use ncomp::select_ncomp;
pub use ncomp::NcompMethod;
pub use partial::spm_monitor_partial;
pub use partial::spm_monitor_partial_batch;
pub use partial::DomainCompletion;
pub use partial::PartialDomainConfig;
pub use partial::PartialMonitorResult;
pub use phase::mf_spm_monitor;
pub use phase::mf_spm_phase1;
pub use phase::spm_monitor;
pub use phase::spm_phase1;
pub use phase::MfSpmChart;
pub use phase::SpmChart;
pub use phase::SpmConfig;
pub use phase::SpmMonitorResult;
pub use profile::profile_monitor;
pub use profile::profile_phase1;
pub use profile::ProfileChart;
pub use profile::ProfileMonitorConfig;
pub use profile::ProfileMonitorResult;
pub use rules::evaluate_rules;
pub use rules::nelson_rules;
pub use rules::western_electric_rules;
pub use rules::ChartRule;
pub use rules::RuleViolation;
pub use stats::hotelling_t2;
pub use stats::hotelling_t2_regularized;
pub use stats::spe_multivariate;
pub use stats::spe_univariate;

Modules§

amewma
Adaptive EWMA (AMFEWMA) monitoring for functional data.
arl
Average Run Length (ARL) computation for SPM control charts.
bootstrap
Bootstrap and robust control limit estimation.
contrib
Contribution diagnostics for SPM.
control
Control limits for SPM monitoring statistics.
cusum
CUSUM (Cumulative Sum) monitoring for functional data.
elastic_spm
Phase-aware (elastic) SPM monitoring.
ewma
EWMA (Exponentially Weighted Moving Average) smoothing for SPM.
frcc
Functional Regression Control Chart (FRCC).
iterative
Iterative Phase I chart construction for SPM.
mewma
Multivariate EWMA (MEWMA) monitoring for functional data.
mfpca
Multivariate Functional Principal Component Analysis (MFPCA).
ncomp
Automatic selection of the number of principal components (ncomp).
partial
Partial-domain monitoring for functional data.
phase
Phase I/II framework for statistical process monitoring.
profile
Profile monitoring for functional data.
rules
Runs and zone rules for control chart analysis.
stats
Hotelling T-squared and SPE (Squared Prediction Error) statistics.