pub fn spm_monitor_partial(
chart: &SpmChart,
partial_values: &[f64],
argvals: &[f64],
n_observed: usize,
config: &PartialDomainConfig,
) -> Result<PartialMonitorResult, FdarError>Expand description
Monitor a single partially-observed curve.
§Arguments
chart- Phase I SPM chartpartial_values- Observed values (length m, but only firstn_observedare used)argvals- Full grid points (length m)n_observed- Number of observed grid points (from the start of the domain)config- Partial domain configuration
For domain fractions below 0.3, conditional expectation accuracy degrades significantly. Consider collecting more of the domain or using a dedicated early-detection method.
§Example
use fdars_core::matrix::FdMatrix;
use fdars_core::spm::phase::{spm_phase1, SpmConfig};
use fdars_core::spm::partial::{spm_monitor_partial, PartialDomainConfig, DomainCompletion};
let data = FdMatrix::from_column_major(
(0..200).map(|i| (i as f64 * 0.1).sin()).collect(), 20, 10
).unwrap();
let argvals: Vec<f64> = (0..10).map(|i| i as f64 / 9.0).collect();
let chart = spm_phase1(&data, &argvals, &SpmConfig { ncomp: 2, ..SpmConfig::default() }).unwrap();
let partial_values = vec![0.0, 0.1, 0.2, 0.3, 0.4, 0.0, 0.0, 0.0, 0.0, 0.0];
let config = PartialDomainConfig { ncomp: 2, completion: DomainCompletion::ZeroPad, ..PartialDomainConfig::default() };
let result = spm_monitor_partial(&chart, &partial_values, &argvals, 5, &config).unwrap();
assert!(result.domain_fraction > 0.0);§Errors
Returns FdarError::InvalidDimension if dimensions are inconsistent.
Returns FdarError::InvalidParameter if n_observed is 0, if argvals
is not sorted, or if the computed domain fraction is out of range.