Modul Python untuk analisis titik perubahan

24

Saya mencari modul Python yang melakukan analisis titik-perubahan pada rangkaian waktu. Ada sejumlah algoritma yang berbeda dan saya ingin menjelajahi kemanjuran beberapa dari mereka tanpa harus memutar setiap algoritma.

Idealnya saya ingin beberapa modul seperti bcp (Bayesian Change Point) atau paket strucchange di R. Saya berharap menemukan beberapa di Scipy tetapi saya belum dapat mengubah apa pun.

Saya terkejut bahwa tidak ada fasilitas di:

Apakah ada modul dengan algoritma pendeteksian perubahan titik di Python?

Erik Shilts
sumber
Saya juga mencari analisis perubahan-titik dengan Python. Apakah Anda menemukan sesuatu yang berguna (misalnya menggunakan RPy?).
Jack Kelly
Gunakan laso yang tergabung dalam SPAMS spams-devel.gforge.inria.fr (memiliki ikatan Python).
Vladislavs Dovgalecs
ada yang menemukan perpustakaan analisis changepoint yang baik sekarang (menerapkan berbagai algoritma mengatakan segmentasi biner, lingkungan segmen)?
Maha
Untuk data deret waktu online, bagaimana implementasi Deteksi Titik-Perubahan, katakanlah penemu dapat mengubah skala? Ini tampaknya menjadi masalah yang melekat pada saya.
HoofarLotusX

Jawaban:

7

Anda dapat mencoba pustaka changefinder di PyPI. Deskripsi mengatakan bahwa ini adalah Change Detection Library online berdasarkan algoritma ChangeFinder

Ada juga beberapa implementasi Python dari teknik Deteksi Titik Perubahan Statistik Michele Basseville yang tersedia dalam format tutorial pada repo Github ini .

kushan_s
sumber
3
Implementasi Python dari Bayesian Change Point Detection juga dapat ditemukan di repo Github ini .
kushan_s
1
sepertinya tautan pertama dalam jawaban (amanahuja) tidak lengkap? yang lain yang Anda poskan di komentar bermanfaat!
okkhoy
6

Masih ada beberapa celah di perpustakaan Python untuk menggunakan paket statistik lanjutan. Sudahkah Anda mencoba menggunakan modul RPy? Saat menggunakan RPy, Anda dapat memuat modul R.

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

sk8asd123
sumber
2
apakah ini masih terjadi? Apakah saya masih harus menggunakan jembatan R-Python?
Maha
ada yang menemukan perpustakaan analisis changepoint yang baik sekarang (menerapkan berbagai algoritma mengatakan segmentasi biner, lingkungan segmen)?
Maha
4

Implementasi dari paket Python rpy2 ini bekerja untuk saya:

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()

Kemudian, Anda dapat memplot sarana posterior dan probabilitas posterior terhadap vektor asli. Lihat contoh fungsi bcp di R untuk informasi lebih detail tentang contoh ini.

Juga, nilai pengindeksan keras dengan angka (yaitu nilai [5]) tidak ideal, tetapi saya mengalami kesulitan menggunakan rx dan rx2 extractor. Jadi, kalau ada yang bisa mencerahkan saya pada metode ekstraksi yang kurang rapi, saya ingin tahu!

scottlittle
sumber
3

Saya baru saja menemukan perpustakaan deteksi titik perubahan di Python bernama "rupture": https://arxiv.org/abs/1801.00826

Mungkin ini bisa bermanfaat.

Basileios
sumber
0

Sudahkah Anda mencoba perpustakaan ChangeFinder, Anda dapat menginstalnya di linux dengan:

pip install changefinder

juga kode GitHub Bayesian_changepoint_detection dapat ditemukan di sini: Kode GitHub

pengguna185876
sumber