Modulo Python per l'analisi del punto di cambiamento


24

Sto cercando un modulo Python che esegua un'analisi del punto di cambio su una serie temporale. Esistono numerosi algoritmi diversi e mi piacerebbe esplorare l'efficacia di alcuni di essi senza dover eseguire manualmente il rollup di ciascuno degli algoritmi.

Idealmente, vorrei alcuni moduli come i pacchetti bcp (Bayesian Change Point) o strucchange in R. Mi aspettavo di trovarne alcuni in Scipy ma non sono riuscito a trovare nulla.

Sono sorpreso che non ci siano servizi in:

Esistono moduli con algoritmi di rilevamento del punto di cambio in Python?


Sto anche cercando l'analisi del punto di cambio in Python. Hai trovato qualcosa di utile (ad es. Usando RPy?).
Jack Kelly,

Usa il lazo fuso in SPAMS spams-devel.gforge.inria.fr (ha i collegamenti Python).
Vladislavs Dovgalecs,

qualcuno ha trovato una buona libreria di analisi del punto di cambio ormai (l'implementazione di vari algoritmi dice segmentazione binaria, vicinanza del segmento)?
Maha,

Per i dati delle serie temporali online, in che modo un'implementazione di rilevamento del punto di cambiamento, ad esempio il changefinder, può ridimensionare? Questo sembra essere un problema intrinseco per me.
HoofarLotusX

Risposte:


7

È possibile provare il changefinder biblioteca PyPI. La descrizione dice che si tratta di una libreria di rilevamento delle modifiche online basata sull'algoritmo ChangeFinder

Ci sono anche alcune implementazioni Python delle tecniche di rilevamento dei punti di cambiamento statistico di Michele Basseville disponibili in formato tutorial su questo repository Github.


3
Un'implementazione Python di Bayesian Change Point Detection può anche essere trovata in questo repository Github.
kushan's

1
sembra che il primo link nella risposta (amanahuja) sia incompleto? l'altra che hai pubblicato nel commento è utile!
okkhoy,

6

Ci sono ancora alcune lacune nella libreria Python per l'utilizzo di pacchetti statistici avanzati. Hai provato ad usare il modulo RPy? Quando si utilizza RPy è possibile caricare i moduli R.

breve tutorial su RPy: http://www.sciprogblog.com/2012/08/using-r-from-within-python.html strucchange


2
è ancora così? Devo ancora finire con l'uso del bridge R-Python?
Maha,

qualcuno ha trovato una buona libreria di analisi del punto di cambio ormai (l'implementazione di vari algoritmi dice segmentazione binaria, vicinanza del segmento)?
Maha,

4

Questa implementazione del pacchetto Python rpy2 ha funzionato per me:

import numpy as np
from rpy2.robjects.packages import importr
import rpy2.robjects as robjects

r = robjects.r #allows access to r object with r.

bcp = importr('bcp') #import bayesian change point package in python

values = bcp.bcp( r.c( r.rnorm(50) , r.rnorm(50,5,1), r.rnorm(50) ) ) #use bcp function on vector

posterior_means = np.array(values[5]).flatten()
posterior_probability = np.array(values[7]).flatten()

Quindi, è possibile tracciare la media posteriore e la probabilità posteriore rispetto al vettore originale. Vedere l'esempio della funzione bcp in R per informazioni più dettagliate su questo esempio.

Inoltre, i valori di indicizzazione forzata con un numero (ovvero valori [5]) non sono ideali, ma ho avuto difficoltà a utilizzare l'estrattore rx e rx2. Quindi, se qualcuno può illuminarmi su un metodo di estrazione meno confuso, mi piacerebbe saperlo!



0

Hai provato la libreria ChangeFinder, puoi installarlo su Linux:

pip install changefinder

anche Bayesian_changepoint_detection codice GitHub può essere trovato qui: Codice GitHub

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.