deepcharles / ruptures

ruptures: change point detection in Python
BSD 2-Clause "Simplified" License
1.54k stars 160 forks source link

Significance Value for Change Point #290

Closed ErikWitt closed 1 year ago

ErikWitt commented 1 year ago

Hi there, I love the package!

I was wondering if there is any way to compute a significance for the the predicted change points. Certainly some change points are more obvious than others for the algorithm.

I would be great to know the certainty for each change point.

oboulant commented 1 year ago

Hi @ErikWitt ,

Thx for your interest in ruptures !

You can have a look at this page of the docs. Might not be exactly what you are looking for, but it gives some intuition on a possible approach if you want quantify the relative importance of change points.

Hope it helps !

deepcharles commented 1 year ago

Hi @ErikWitt, Unfortunately, computing a significance level requires some assumption on the data, and even in this situation, it remains complex. Within ruptures, what you can do is do change-point detection with a penalty (with Pelt or KernelCPD). The penalty will threshold out all change-points with a low amplitude shift. However, setting a relevant penalty level can only be done manually. Outside of ruptures, they are several articles that you can look at:

Hope this helps