AI Tools Free

Change Point Detector (PELT / Optimal Partitioning & CUSUM)

Locate structural mean shifts and regime boundaries in any numeric time series: run exact `O(N^2)` dynamic programming (Optimal Partitioning / PELT objective with BIC, AIC, or custom penalties) alongside cumulative sum (`CUSUM`) peak detection.

Free to useNo sign-upRuns in your browser
Enter your details

Enter the inputs, then select Detect Change Points.

Enter at least 4 ordered numeric observations (up to 500 points) to scan for piecewise mean shifts.

Minimum number of consecutive observations required inside each detected segment (2 or greater).

Penalty added for each additional change point to prevent overfitting noise.

1.0 = standard BIC/AIC penalty; lower values (< 1.0) detect smaller shifts, higher values (> 1.0) enforce fewer breakpoints.

Your result
Enter your details

Result will appear here

How Exact Dynamic Programming & CUSUM Change Point Detection Work

Instead of greedy binary splitting, this tool solves the exact global penalized least-squares objective across all valid segmentations.

Penalized Cost: min_{m, tau_1..tau_m} [ sum_{k=1}^{m+1} SSE(y_{tau_{k-1}+1 : tau_k}) + m * beta ], where SSE(y_{a:b}) = sum_{t=a}^b (y_t - mean(y_{a:b}))^2 and robust noise variance sigma^2 = median((Delta y_t)^2 / 2) / 0.454936; CUSUM Statistic: S_t = sum_{i=1}^t (y_i - mean(y)).

Solves exact O(N^2) dynamic programming (Optimal Partitioning / PELT objective) subject to segment length >= L_min. Robust diff-based variance estimation prevents large true mean shifts from inflating sigma^2.

Change Point Detector (PELT / Optimal Partitioning & CUSUM) workflow overview
Workflow overview for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Change Point Detection Criteria & Default Benchmark Table

Comparison of penalty criteria (`BIC`, `AIC`, `Manual`) and exact output on the default 12-point step-shift series (`10.05` -> `24.95` at Index `#7`).

Component / MetricMathematical DefinitionDefault 12-Point Series ResultPractical Guidance
**Detected Change Point (`tau_1`)**First index of the new regime (`y_{tau_1}`)**Index `#7`** (`value = 24.80`, after `#6 = 10.30`)Splits `N = 12` into `[#1..#6]` and `[#7..#12]`
**Regime Means & Step Shift**`mu_1 = mean(y_{1:6})`, `mu_2 = mean(y_{7:12})``mu_1 = 10.0500`, `mu_2 = 24.9500` (`Shift = +14.9000`)Exact piecewise constant step model
**Total vs. Residual Sum of Squares**`TSS = sum(y_i - y_bar)^2`, `RSS = sum(SSE_k)``TSS = 666.3800` -> `RSS = 0.3500` (`R^2 = 99.95%`)99.95% of total variance is explained by the 1 shift
**BIC Penalty (`beta_BIC`)**`2 * sigma_hat^2 * ln(N) * multiplier`Prevents false splits inside noisy plateausRecommended default for unknown breakpoint count `m`
**Peak CUSUM Index**`argmax_t |sum_{i=1}^t (y_i - y_bar)|`Peaks at boundary `#6 / #7` (`|CUSUM| = 44.7000`)Confirms primary shift location independently

How to use Change Point Detector (PELT / Optimal Partitioning & CUSUM) step by step

Enter the values for your scenario, verify the units, and run the calculation.

Enter the inputs

Start by entering the required fields in the Change Point Detector (PELT / Optimal Partitioning & CUSUM) form above.

Change Point Detector (PELT / Optimal Partitioning & CUSUM) step 1: Enter the inputs
Step 1 workflow overview for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Verify units and assumptions

Match each value to the unit or format shown next to the input box before running the calculation.

Change Point Detector (PELT / Optimal Partitioning & CUSUM) step 2: Verify units and assumptions
Step 2 workflow overview for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Run and export your result

Select Detect Change Points, inspect the primary metric and breakdown cards, then use Copy result or Download result.txt.

Change Point Detector (PELT / Optimal Partitioning & CUSUM) step 3: Run and export your result
Step 3 workflow overview for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Worked examples for Change Point Detector (PELT / Optimal Partitioning & CUSUM)

Compare baseline and alternative runs for Change Point Detector (PELT / Optimal Partitioning & CUSUM) before exporting the result.

Baseline example

Detect multiple change points and regime shifts in a numeric time series using exact O(N^2) dynamic programming (BIC, AIC, or custom penalty) and CUSUM statistics.

Change Point Detector (PELT / Optimal Partitioning & CUSUM) example 1: Baseline example
Worked example 1 for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Comparison scenario

Penalized Cost: min_{m, tau_1..tau_m} [ sum_{k=1}^{m+1} SSE(y_{tau_{k-1}+1 : tau_k}) + m * beta ], where SSE(y_{a:b}) = sum_{t=a}^b (y_t - mean(y_{a:b}))^2 and robust noise variance sigma^2 = median((Delta y_t)^2 / 2) / 0.454936; CUSUM Statistic: S_t = sum_{i=1}^t (y_i - mean(y)).

Change Point Detector (PELT / Optimal Partitioning & CUSUM) example 2: Comparison scenario
Worked example 2 for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Boundary check before exporting

Solves exact O(N^2) dynamic programming (Optimal Partitioning / PELT objective) subject to segment length >= L_min. Robust diff-based variance estimation prevents large true mean shifts from inflating sigma^2.

Change Point Detector (PELT / Optimal Partitioning & CUSUM) example 3: Boundary check before exporting
Worked example 3 for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

How to interpret the Change Point Detector (PELT / Optimal Partitioning & CUSUM) output

Review the calculated output alongside your entered parameters and unit conventions.

Solves exact O(N^2) dynamic programming (Optimal Partitioning / PELT objective) subject to segment length >= L_min. Robust diff-based variance estimation prevents large true mean shifts from inflating sigma^2.

How to interpret Change Point Detector (PELT / Optimal Partitioning & CUSUM) results
Result interpretation guide for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Change Point Analysis Verification Checklist

Check these three items before acting on a detected breakpoint.

Penalized Cost: min_{m, tau_1..tau_m} [ sum_{k=1}^{m+1} SSE(y_{tau_{k-1}+1 : tau_k}) + m * beta ], where SSE(y_{a:b}) = sum_{t=a}^b (y_t - mean(y_{a:b}))^2 and robust noise variance sigma^2 = median((Delta y_t)^2 / 2) / 0.454936; CUSUM Statistic: S_t = sum_{i=1}^t (y_i - mean(y)). Solves exact O(N^2) dynamic programming (Optimal Partitioning / PELT objective) subject to segment length >= L_min. Robust diff-based variance estimation prevents large true mean shifts from inflating sigma^2.

Scope limits and assumptions for Change Point Detector (PELT / Optimal Partitioning & CUSUM)
Assumptions and input boundaries for Change Point Detector (PELT / Optimal Partitioning & CUSUM).

Frequently Asked Questions About Change Point Detection

Answers about using Change Point Detector (PELT / Optimal Partitioning & CUSUM) and understanding its results.

How does Optimal Partitioning / PELT choose the exact number of change points?

Adding a breakpoint always reduces residual sum of squares (RSS), so an unpenalized fit would split the series into as many tiny segments as allowed. Optimal Partitioning minimizes Total Cost = sum(SSE_k) + m * beta, adding a breakpoint only when the reduction in SSE exceeds the penalty beta.

Why is noise variance sigma^2 estimated from first differences instead of global sample variance?

If a time series jumps from 10 to 25, the global sample variance is dominated by the +15 step jump rather than within-regime noise. Estimating sigma^2 from consecutive differences (using the robust median squared difference estimator divided by 2 * 0.454936, the chi-square median for df = 1) isolates true within-segment noise so BIC and AIC penalties scale accurately.

What is the difference between the DP multi-breakpoint segmentation and the CUSUM peak?

Cumulative Sum (CUSUM) computes S_t = sum_{i=1}^t (y_i - mean(y)) and finds the single index t* where |S_t| is maximized, which is ideal for spotting the primary single shift in quality control charts. The dynamic programming solver simultaneously finds 0, 1, or multiple change points (tau_1, tau_2, ...) across the entire series.

How should I set Minimum Segment Length (L_min)?

Set L_min to the shortest duration that represents a meaningful regime rather than a transient spike. Setting L_min >= 3 prevents a single isolated outlier from being flagged as its own two-breakpoint regime.

Try your own values

Choose another tool for your next calculation, conversion, or text task.

Detect Change Points