Je recherche un module Python qui effectue une analyse de point de changement sur une série chronologique. Il existe un certain nombre d'algorithmes différents et j'aimerais explorer l'efficacité de certains d'entre eux sans avoir à lancer manuellement chacun des algorithmes.
Idéalement, j'aimerais que certains modules comme les paquets bcp (Bayesian Change Point) ou strucchange dans R. Je m'attendais à en trouver dans Scipy mais je n'ai rien pu trouver.
Je suis surpris qu'il n'y ait pas d'installations dans:
- statsmodels.tsa : Outils d'analyse statistique des séries chronologiques
- scikits.timeseries : outils d'analyse de séries chronologiques pour étendre scipy
- scipy.signal : outils de traitement du signal dans scipy
Existe-t-il des modules avec des algorithmes de détection des points de changement en Python?
time-series
python
change-point
Erik Shilts
la source
la source
Réponses:
Vous pouvez essayer la bibliothèque changefinder sur PyPI. La description indique qu'il s'agit d'une bibliothèque de détection des modifications en ligne basée sur l'algorithme ChangeFinder
Il existe également des implémentations Python des techniques de détection des points de changement statistique de Michele Basseville disponibles en format tutoriel sur ce dépôt Github.
la source
Il y a encore quelques lacunes dans la bibliothèque Python pour l'utilisation de packages de statistiques avancées. Avez-vous essayé d'utiliser le module RPy? Lorsque vous utilisez RPy, vous pouvez charger des modules R.
bref tutoriel sur RPy: http://www.sciprogblog.com/2012/08/using-r-from-within-python.html strucchange
la source
Cette implémentation du package Python rpy2 a fonctionné pour moi:
Ensuite, vous pouvez tracer les moyennes postérieures et la probabilité postérieure par rapport au vecteur d'origine. Voir l'exemple de fonction bcp dans R pour des informations plus détaillées sur cet exemple.
De plus, les valeurs d'indexation en dur avec un nombre (c'est-à-dire les valeurs [5]) ne sont pas idéales, mais j'avais du mal à utiliser l'extracteur rx et rx2. Donc, si quelqu'un peut m'éclairer sur une méthode d'extraction moins hacky, j'aimerais savoir!
la source
Je viens de découvrir une bibliothèque de détection de points de changement en Python nommée "ruptures": https://arxiv.org/abs/1801.00826
Peut-être que cela peut être utile.
la source
Avez-vous essayé la bibliothèque ChangeFinder, vous pouvez l'installer sur linux en:
pip install changefinder
le code GitHub Bayesian_changepoint_detection peut également être trouvé ici: Code GitHub
la source