← Lab
covddof
confirmedupstream bugPython · rupturesSystems & data structuresJuly 25, 2026
the question
Does ruptures CostNormal use the same covariance estimator in its multivariate and univariate branches?
what came out
ruptures CostNormal.error computes the multivariate segment covariance with np.cov (default ddof=1, unbiased) while the univariate branch uses ddof=0 (MLE) as documented. The extra length-dependent term shifts detected change points on 11 of 200 two-dimensional signals, e.g. [2,22,24] versus the documented [16,22,24].
method & receipts
- Result: confirmed
- Reproducible — one script re-runs the whole thing from scratch.
- Tested — a correctness/benchmark suite ships alongside the code.
→ read the code and re-run it
github.com/v-code01/covddof