Skip to contents

Unified tidy changepoint detection with ggplot2 visualisation.

Details

ggchangepoint provides a consistent S3 result class (ggcpt) for changepoint detection results, broom-style methods (tidy(), glance(), augment()), ggplot2 integration via autoplot() and composable geoms (geom_changepoint(), geom_cpt_segment(), geom_cpt_ci(), stat_changepoint()), and a unified dispatcher cpt_detect() that supports over thirty methods.

**Detection engines.** cpt_detect() currently dispatches to 31 methods across five families (run cpt_methods() for the live table with installation status):

  • Penalised/optimal: PELT, BinSeg, SegNeigh, AMOC (changepoint); FPOP (fpop); the CROPS penalty path (cpt_crops()); fastcpd (fastcpd, incl. AR/ARMA/GARCH); change-in-slope via CPOP (cpop).

  • Multiscale/search: WBS (wbs), WBS2 and TGUH (breakfast), NOT (not), MOSUM incl. multiscale (mosum), Isolate-Detect (IDetect), SMUCE/HSMUCE with confidence intervals (stepR).

  • Nonparametric/kernel: NP (changepoint.np), E-Divisive/E-Agglo (ecp), kernel running statistics (kcpRS), NP-MOJO (CptNonPar), sequential CPM (cpm), self-normalisation (SNSeg).

  • Bayesian: Barry-Hartigan posterior (bcp), online BOCPD (ocp), BEAST model averaging (Rbeast).

  • Multivariate/high-dimensional and regression: sparse projection (InspectChangepoint), online ocd (ocd), geometric mapping (changepoint.geo), Bai-Perron breaks with CIs (strucchange), broken-line regression (segmented), changepoints-vs-autocorrelation model selection (EnvCpt), drift+AR robust detection (DeCAFS).

**Key features.** Every detector returns a ggcpt object with a stable tibble(cp, cp_value) contract (plus engine extras such as ci_lower/ci_upper and posterior_prob). Visualise any result directly with autoplot() (confidence intervals, fitted signals, multivariate facets), the Bayesian displays (ggcpt_posterior(), ggcpt_runlength()), or interactively via ggcpt_interactive(). Compare methods with ggcpt_compare(); run panels of series with cpt_batch(); quantify uncertainty with cpt_stability(); sweep penalties with cpt_crops(). Evaluate accuracy with cpt_metrics() and ggcpt_eval(); simulate ground-truth data with cpt_simulate() and the canonical test signals; and cite the methodology behind any result with cpt_cite().

Author

Maintainer: Youzhi Yu yuyouzhi666@icloud.com