# \[ANN\] Bayesian Online Changepoint Detection implementation (BOCD.jl)

**URL:** <https://discourse.julialang.org/t/ann-bayesian-online-changepoint-detection-implementation-bocd-jl/127515>\
**Category:** Package Announcements\
**Tags:** statistics, signal-processing, rxinfer\
**Created:** [March 30, 2025, 3:02pm UTC](https://discourse.julialang.org/t/ann-bayesian-online-changepoint-detection-implementation-bocd-jl/127515 "2025-03-30T15:02:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![PedroPizarro](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pedropizarro/32/216074_2.png) [@PedroPizarro](https://discourse.julialang.org/u/PedroPizarro)\
**Post date:** [March 30, 2025, 3:02pm UTC](https://discourse.julialang.org/t/ann-bayesian-online-changepoint-detection-implementation-bocd-jl/127515/1 "2025-03-30T15:02:55Z")

</div>

As part of my MSc studies, I developed the [BOCD.jl](https://github.com/PedroPizarro/BOCD.jl), a Julia implementation of the Bayesian Online Changepoint Detection (BOCD) algorithm, based on the Adams & MacKay’s 2007 paper, _“Bayesian Online Changepoint Detection”_.

This implementation is inspired by existing versions in Python. The package version v0.3.0 currently supports the following models:

- Hazard Functions:

- Conjugate Models:

The package README.md has instructions on how to use it.

Any constructive feedback are welcome! Such as considerations about the package architecture, implemented statistical features, and potential errors. Your insights would be greatly appreciated!

PS: In the future I will try to implement this algorithm using the RxInfer.jl package, as the message passing algorithm from RxInfer.jl could be used in place of the currently manual posterior hyperparameter calculation for each conjugate model — at least I think it might be feasible. This is currently on hold due to other research commitments.
