Ich suche ein Python-Modul, das eine Änderungspunktanalyse für eine Zeitreihe durchführt. Es gibt eine Reihe verschiedener Algorithmen, und ich möchte die Wirksamkeit einiger von ihnen untersuchen, ohne jeden der Algorithmen von Hand rollen zu müssen.
Im Idealfall hätte ich gerne Module wie den bcp (Bayesian Change Point) oder Strucchange- Pakete in R. Ich hatte erwartet, dass ich welche in Scipy finde, aber ich konnte nichts aufdrehen.
Ich bin überrascht, dass es keine Einrichtungen in:
- statsmodels.tsa : Werkzeuge zur statistischen Analyse von Zeitreihen
- scikits.timeseries : Tools zur Zeitreihenanalyse zur Erweiterung von scipy
- scipy.signal : Signalverarbeitungswerkzeuge in scipy
Gibt es Module mit Algorithmen zur Erkennung von Änderungspunkten in Python?
time-series
python
change-point
Erik Shilts
quelle
quelle
Antworten:
Sie können die Changefinder- Bibliothek auf PyPI ausprobieren. Die Beschreibung besagt, dass es sich um eine Online-Änderungserkennungsbibliothek handelt, die auf dem ChangeFinder-Algorithmus basiert
Es gibt auch einige Python-Implementierungen der Statistical Change Point Detection-Techniken von Michele Basseville, die in diesem Github-Repo im Tutorial-Format verfügbar sind .
quelle
In der Python-Bibliothek gibt es noch einige Lücken für die Verwendung erweiterter Statistikpakete. Haben Sie versucht, das RPy-Modul zu verwenden? Bei Verwendung von RPy können Sie R-Module laden.
Kurzes Tutorial zu RPy: http://www.sciprogblog.com/2012/08/using-r-from-within-python.html strucchange
quelle
Diese Implementierung des Python-Pakets rpy2 hat bei mir funktioniert:
Dann können Sie das hintere Mittel und die hintere Wahrscheinlichkeit gegen den ursprünglichen Vektor darstellen. Weitere Informationen zu diesem Beispiel finden Sie im Beispiel für die bcp-Funktion in R.
Auch das Indizieren von Werten mit einer Zahl (dh Werten [5]) ist nicht ideal, aber ich hatte Schwierigkeiten, den RX- und RX2-Extraktor zu verwenden. Wenn mich jemand über eine weniger hackige Methode der Extraktion aufklären kann, würde ich es gerne wissen!
quelle
Ich bin gerade auf eine Änderungspunkterkennungsbibliothek in Python mit dem Namen "ruptures" gestoßen: https://arxiv.org/abs/1801.00826
Vielleicht kann das von Nutzen sein.
quelle
Haben Sie die ChangeFinder-Bibliothek ausprobiert, können Sie sie unter Linux folgendermaßen installieren:
pip install changefinder
auch Bayesian_changepoint_detection GitHub Code finden Sie hier: GitHub Code
quelle