Deteksi switchpoint dengan pemrograman probabilistik (pymc)

9

Saat ini saya sedang membaca " Program" Probabilistic Programming dan Metode Bayesian untuk Peretas . Saya telah membaca beberapa bab dan saya berpikir pada Bab pertama di mana contoh pertama dengan pymc terdiri dari mendeteksi titik penyihir dalam pesan teks. Dalam contoh itu variabel acak untuk menunjukkan kapan switchpoint terjadi ditunjukkan dengan . Setelah langkah MCMC, distribusi posterior diberikan:τττmasukkan deskripsi gambar di sini

Pertama apa yang dapat dipelajari dari grafik ini adalah bahwa ada kemungkinan hampir 50% bahwa switchpoint terjadi pada hari ke-45. Namun bagaimana jika tidak ada switchpoint? Alih-alih mengasumsikan ada sebuah switchpoint dan kemudian mencoba menemukannya, saya ingin mendeteksi jika sebenarnya ada switchpoint.

Penulis menjawab pertanyaan "apakah terjadi pergantian titik" oleh "Seandainya tidak ada perubahan, atau seandainya perubahan itu terjadi secara bertahap, distribusi posterior akan lebih tersebar" Tetapi bagaimana Anda bisa menjawab ini dengan kemungkinan, misalnya ada 90% kemungkinan switchpoint terjadi, dan ada kemungkinan 50% terjadi pada hari ke-45.τ

Apakah model perlu diubah? Atau dapatkah ini dijawab dengan model saat ini?

Olivier_s_j
sumber
Menyebut penulis buku @ Cam.Davidson.Pilon, yang mungkin memiliki jawaban yang lebih baik daripada saya di bawah ini.
Sean Easter

Jawaban:

6

SeanEaster memiliki beberapa saran bagus. Faktor Bayes mungkin sulit untuk dihitung, tetapi ada beberapa posting blog yang bagus khususnya untuk faktor Bayes di PyMC2.

Pertanyaan yang terkait erat adalah good-of-fit of model. Metode yang adil untuk ini hanyalah inspeksi - para pengendara dapat memberikan kita bukti kebaikan. Seperti dikutip:

"Seandainya tidak ada perubahan, atau seandainya perubahan itu terjadi secara bertahap, distribusi posterior akan lebih tersebar"τ

Ini benar. Posterior cukup memuncak di dekat waktu 45. Seperti yang Anda katakan> 50% dari massa berada di 45, sedangkan jika tidak ada titik sakelar massa harus (secara teoritis) lebih dekat ke 1/80 = 1,125% pada waktu 45.

Apa yang ingin Anda lakukan adalah merekonstruksi set data yang diamati dengan setia, mengingat model Anda. Dalam Bab 2 , mereka adalah simulasi menghasilkan data palsu. Jika data yang Anda amati terlihat sangat berbeda dari data buatan Anda, maka kemungkinan model Anda tidak sesuai.

Saya minta maaf atas jawaban yang tidak keras, tetapi sebenarnya ini adalah kesulitan besar yang belum saya atasi secara efisien.

Cam.Davidson.Pilon
sumber
Mungkin tidak ada hubungannya dengan jawaban Anda, saya hanya berpikir keras. Apakah tidak mungkin untuk mencocokkan sigmoid dengan data dan berdasarkan parameter beta memutuskan apakah kemiringan menunjukkan perubahan atau tidak. Mungkin ambang yang menentukan apakah ada switchpoint dapat dipelajari dari contoh itu. Mungkin ini juga dimungkinkan dengan parameter . Jika 1 berbeda terlalu banyak dari 2 ada switchpoint yang lain tidak. Ini mungkin juga bisa dilakukan dengan ambang batas yang dipelajari dari contohλ λλλλ
Olivier_s_j
1
Misalnya, pas dengan model: , di mana ? Saya yakin itu akan berhasil, dan akan memungkinkan transisi yang mulus. Anda benar bahwa kesimpulan pada kemiringan dapat menentukan apakah ada titik sakelar. Saya sangat suka ini, Anda harus lebih mengeksplorasi. p = 1 / ( 1 + e x p ( - β t ) ) βλ1p+λ2(1p)p=1/(1+exp(βt))β
Cam.Davidson.Pilon
Pada pertanyaan tentang model fit, saya akan menambahkan bahwa nilai p predictive posterior adalah salah satu cara menilai fit. Lihat makalah ini .
Sean Easter
2

Itu lebih dari pertanyaan perbandingan model: Yang menarik adalah apakah model tanpa switchpoint lebih baik menjelaskan data daripada model dengan switchpoint. Salah satu pendekatan untuk menjawab pertanyaan itu adalah dengan menghitung faktor Bayes model dengan dan tanpa switchpoint. Singkatnya, faktor Bayes adalah rasio probabilitas data di bawah kedua model:

K=Pr(D|M1)Pr(D|M2)=Pr(θ1|M1)Pr(D|θ1,M1)dθ1Pr(θ2|M2)Pr(D|θ2,M2)dθ2

Jika adalah model yang menggunakan switchpoint, dan adalah model tanpa, maka nilai tinggi untuk dapat ditafsirkan sebagai sangat mendukung model switchpoint. (Artikel wikipedia yang ditautkan di atas memberikan pedoman untuk nilai K yang perlu diperhatikan.)M1M2K

Juga perhatikan bahwa dalam konteks MCMC integral di atas akan diganti dengan jumlah nilai parameter dari rantai MCMC. Perlakuan yang lebih menyeluruh dari faktor Bayes, dengan contoh-contoh, tersedia di sini .

Untuk pertanyaan tentang menghitung kemungkinan sebuah switchpoint, itu setara dengan penyelesaian untuk . Jika Anda menganggap prior yang sama di kedua model, maka peluang posterior model setara dengan faktor Bayes. (Lihat slide 5 di sini .) Maka itu hanya masalah penyelesaian untuk menggunakan faktor Bayes dan persyaratan bahwa untuk n model acara (eksklusif) yang dipertimbangkan.P(M1|D)P(M1|D)i=1nP(Mi|D)=1

Sean Easter
sumber