There are quite a few algorithms to detect changepoints, outliers, mean shifts, trend shifts etc. out there. Recently I've stumbled upon BreakoutDetection and while it's new and shiny I'd like to know if there are any problems with using the algorithm to detect, specifically, multiple mean shifts in non-normally distributed random processes (e.g. studies reviewing the method).

In particular I'm worried that there are apparently two versions of the code (R and C++) and results are "sensitive to scaling", apparently showing up differently for the same underlying dataset.


  1. Nicholas A. James, Arun Kejariwal, David S. Matteson. Leveraging Cloud Data to Mitigate User Experience from "Breaking Bad". Nov. 2014. arXiv PDF.
  2. https://github.com/twitter/BreakoutDetection

1 Answer 1


I know it's a little late, but just stumbled upon this...

I don't believe that there are two separate versions of the BreakoutDetection algorithm (R and C++); rather, the core implementation is done in C++ and the R package simply provides a wrapper around that code with a nice interface for working with your data within the comforts of R.

The algorithm should not be sensitive to scaling as it scales all the data to a 0-1 interval before doing any of the real statistics.

I've done some testing with the algorithm and have not had any problems in regard to scaling problems or non-normally distributed data. Two caveats I've come across:

  1. There are several parameter options which have non-trivial effects on your output, so you'll want to experiment and tune these to your specific use case.

  2. The algorithm may not catch breakout points near the edge of your timeseries (as you might expect).

I also recommend this excellent blog post by Ilya Kipnis: http://www.r-bloggers.com/an-introduction-to-change-points-packages-ecp-and-breakoutdetection/.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.