Estoy buscando un módulo de Python que realice un análisis de punto de cambio en una serie de tiempo. Hay varios algoritmos diferentes y me gustaría explorar la eficacia de algunos de ellos sin tener que manipular manualmente cada uno de los algoritmos.
Idealmente, me gustaría tener algunos módulos como el bcp (punto de cambio bayesiano) o los paquetes strucchange en R. Esperaba encontrar algunos en Scipy pero no he podido encontrar nada.
Me sorprende que no haya instalaciones en:
- statsmodels.tsa : herramientas de análisis estadístico de series temporales
- scikits.timeseries : herramientas de análisis de series temporales para extender scipy
- scipy.signal : herramientas de procesamiento de señal en scipy
¿Hay algún módulo con algoritmos de detección de punto de cambio en Python?
time-series
python
change-point
Erik Shilts
fuente
fuente
Respuestas:
Puede probar la biblioteca changefinder en PyPI. La descripción dice que es una biblioteca de detección de cambios en línea basada en el algoritmo ChangeFinder
También hay algunas implementaciones de Python de las técnicas de detección de punto de cambio estadístico de Michele Basseville disponibles en formato tutorial en este repositorio de Github.
fuente
Todavía hay algunos vacíos en la biblioteca de Python para usar paquetes de estadísticas avanzadas. ¿Has intentado usar el módulo RPy? Cuando use RPy puede cargar módulos R.
breve tutorial sobre RPy: http://www.sciprogblog.com/2012/08/using-r-from-within-python.html strucchange
fuente
Esta implementación del paquete Python rpy2 funcionó para mí:
Luego, puede trazar las medias posteriores y la probabilidad posterior contra el vector original. Consulte el ejemplo de la función bcp en R para obtener información más detallada sobre este ejemplo.
Además, los valores de indexación difíciles con un número (es decir, valores [5]) no son ideales, pero estaba teniendo dificultades para usar el extractor rx y rx2. Entonces, si alguien puede iluminarme con un método de extracción menos hacky, ¡me encantaría saberlo!
fuente
Acabo de encontrar una biblioteca de detección de puntos de cambio en Python llamada "rupturas": https://arxiv.org/abs/1801.00826
Quizás esto pueda ser de utilidad.
fuente
¿Has probado la biblioteca ChangeFinder? Puedes instalarla en Linux de la siguiente manera:
pip install changefinder
también se puede encontrar el código Bayesian_changepoint_detection GitHub aquí: Código GitHub
fuente