I am using the bcp package in R to determine change points in a time series. The output that this package gives is a distribution of posterior probabilities.

As far as I can understand, the peak points in this distribution must be change points, but this way I am getting a lot of false positives as in the original data, not all of the peak points are coming out to be change points.

There must be a threshold value that I can consider to declare a peak as a change point. How can I determine that? Is there any other way to find the change points?


This is essentially the difference between the output from a frequentist and Bayesian procedure. To get frequentist type output i.e. point estimates one typically uses the Bayesian Maximum a posteriori (MAP) estimation. This essentially chooses a threshold and returns the modes above that threshold. You are then back to the frequentist world of "what threshold is appropriate?" which is the same as asking "how long is a piece of string?".

Typically people use thresholds based on the Bayes Factor, for example:


shows how this choice can be made and:


provides a histogram of number of changes against posterior probability too indicating that the mode of that histogram should be chosen.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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