Szukam modułu Python, który wykonuje analizę zmiany punktu na szeregu czasowym. Istnieje wiele różnych algorytmów i chciałbym zbadać skuteczność niektórych z nich bez konieczności ręcznego rzucania każdym z algorytmów.
Idealnie chciałbym, aby niektóre moduły, takie jak bcp (Bayesian Change Point) lub pakiety strucchange w R. Spodziewałem się znaleźć kilka w Scipy, ale nie byłem w stanie niczego podkręcić.
Dziwi mnie, że nie ma żadnych udogodnień w:
- statsmodels.tsa : Narzędzia analizy statystycznej szeregów czasowych
- scikits.timeseries : Narzędzia analizy szeregów czasowych w celu rozszerzenia scipy
- scipy.signal : narzędzia do przetwarzania sygnałów w scipy
Czy są jakieś moduły z algorytmami wykrywania punktu zmiany w Pythonie?
time-series
python
change-point
Erik Shilts
źródło
źródło
Odpowiedzi:
Możesz wypróbować bibliotekę zmieniacza na PyPI. Opis mówi, że jest to internetowa biblioteka wykrywania zmian oparta na algorytmie ChangeFinder
Istnieją również niektóre implementacje w Pythonie technik statystycznego wykrywania punktu zmiany Michele Basseville dostępne w formie samouczka na tym repozytorium Github.
źródło
W bibliotece Pythona nadal występują luki w korzystaniu z zaawansowanych pakietów statystyk. Czy próbowałeś użyć modułu RPy? Korzystając z RPy, możesz załadować moduły R.
krótki samouczek na temat RPy: http://www.sciprogblog.com/2012/08/using-r-from-within-python.html struczmienić
źródło
Ta implementacja pakietu rpy2 Pythona działała dla mnie:
Następnie możesz wykreślić średnie tylne i prawdopodobieństwo tylne względem oryginalnego wektora. Zobacz przykład funkcji bcp w R, aby uzyskać bardziej szczegółowe informacje na temat tego przykładu.
Również twarde indeksowanie wartości liczbowych (tj. Wartości [5]) nie jest idealne, ale miałem trudności z użyciem ekstraktora rx i rx2. Więc jeśli ktoś może oświecić mnie mniej hackerską metodą ekstrakcji, chciałbym wiedzieć!
źródło
Właśnie natrafiłem na bibliotekę wykrywania punktu zmiany w Pythonie o nazwie „ruptures”: https://arxiv.org/abs/1801.00826
Może to się przyda.
źródło
Czy próbowałeś biblioteki ChangeFinder, możesz zainstalować ją na Linuksie przez:
pip install changefinder
także Bayesian_changepoint_detection Kod GitHub można znaleźć tutaj: Kod GitHub
źródło