Drift and change points

detect_changes(values; method=:auto)
detect_drift(values; kind=:auto)

:auto inspects sample size, tail weight, missingness, cadence, and control presence, then reports the chosen method and why.

MethodRole
:cusumPage CUSUM (Page, 1954)
:likelihoodGaussian mean-change LR / SIC
:peltPELT piecewise mean (Killick et al., 2012)
:robust_medianMAD-standardized CUSUM
:rollingWelch window scan
:bayesianFearnhead product-partition posterior (multiple changes) (Fearnhead, 2006)
:turingOptional Turing.jl MCMC (sampler=:mh or :nuts; model=:multiple with ncuts)
:kernelEnergy-distance scan (Székely and Rizzo, 2013)

Drift kinds: linear (Theil–Sen), sudden, variance (Inclán–Tiao (Inclán and Tiao, 1994)), cyclic (periodogram), distributional (KS), nonlinear (quadratic vs linear).

Results are DriftResult / ChangePointResult structs, not booleans.

Multivariate matrices use Mahalanobis, PCA Hotelling T², covariance Frobenius shift, or energy distance.