Rilevazione di punti di commutazione con programmazione probabilistica (pymc)


9

Attualmente sto leggendo il libro " Programmazione probabilistica e metodi bayesiani per hacker ". Ho letto alcuni capitoli e stavo pensando al primo capitolo in cui il primo esempio con pymc consiste nel rilevare un punto stregato nei messaggi di testo. In quell'esempio la variabile casuale per indicare quando sta accadendo il punto di commutazione è indicata con τ . Dopo la fase MCMC viene data la distribuzione posteriore di τ :inserisci qui la descrizione dell'immagine

In primo luogo, ciò che può essere appreso da questo grafico è che esiste una propensione di quasi il 50% che il punto di commutazione avverrà nel giorno 45. E se non ci fosse un punto di passaggio? Invece di supporre che ci sia un punto di commutazione e quindi provare a trovarlo, voglio rilevare se esiste effettivamente un punto di commutazione.

L'autore risponde alla domanda "è successo un punto di commutazione" di "Se non si fosse verificato alcun cambiamento o se il cambiamento fosse stato graduale nel tempo, la distribuzione posteriore di τ sarebbe stata più diffusa". Ma come puoi rispondere con una propensione, ad esempio c'è una probabilità del 90% che un punto di commutazione avvenga, e c'è una probabilità del 50% che accada nel giorno 45.

Il modello deve essere modificato? Oppure si può rispondere a questo con il modello attuale?


Menzionando l'autore del libro @ Cam.Davidson.Pilon, che potrebbe avere una risposta migliore della mia di seguito.
Sean Easter,

Risposte:


6

SeanEaster ha dei buoni consigli. Il fattore Bayes può essere difficile da calcolare, ma ci sono alcuni post sul blog specifici per il fattore Bayes in PyMC2.

Una domanda strettamente correlata è la bontà di adattamento di un modello. Un metodo equo per questo è solo l'ispezione: i posteriori possono darci prova della bontà di adattamento. Come citato:

"Se non si fosse verificato alcun cambiamento o il cambiamento fosse stato graduale nel tempo, la distribuzione posteriore di sarebbe stata più diffusa"τ

Questo è vero. Il posteriore ha un picco abbastanza vicino al tempo 45. Come dici tu> il 50% della massa è a 45, mentre se non ci fosse un punto di commutazione la massa dovrebbe (teoricamente) essere più vicina all'1 / 80 = 1,125% al ​​tempo 45.

Quello che stai mirando a fare è ricostruire fedelmente il set di dati osservato, dato il tuo modello. Nel capitolo 2 , sono simulazioni di generazione di dati falsi. Se i tuoi dati osservati sembrano molto diversi dai tuoi dati artificiali, allora probabilmente il tuo modello non è adatto.

Mi scuso per la risposta non rigorosa, ma in realtà è una grande difficoltà che non ho superato efficacemente.


λλλ

1
λ1p+λ2(1p)p=1/(1+exp(βt))β

Sulla questione dell'adattamento del modello, aggiungerei che i valori p predittivi posteriori sono un modo per valutare l'adattamento. Vedi questo documento .
Sean Easter

2

È più una domanda di confronto tra modelli: l'interesse è se un modello senza switchpoint spieghi meglio i dati rispetto a un modello con switchpoint. Un approccio per rispondere a questa domanda è calcolare il fattore Bayes dei modelli con e senza un punto di commutazione. In breve, il fattore Bayes è il rapporto delle probabilità dei dati in entrambi i modelli:

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

Se è il modello che utilizza un punto di commutazione e è il modello senza, un valore elevato per può essere interpretato come favorendo fortemente il modello del punto di commutazione. (L'articolo di Wikipedia collegato sopra fornisce linee guida per quali valori K sono degni di nota.)M1M2K

Si noti inoltre che in un contesto MCMC gli integrali di cui sopra verrebbero sostituiti con somme di valori dei parametri dalle catene MCMC. Un trattamento più approfondito dei fattori di Bayes, con esempi, è disponibile qui .

Alla domanda di calcolare la probabilità di un punto di commutazione, equivale a risolvere per . Se si assumono priori uguali tra i due modelli, le probabilità posteriori dei modelli sono equivalenti al fattore Bayes. (Vedi la diapositiva 5 qui .) Quindi è solo una questione di risoluzione per usando il fattore Bayes e il requisito che per n eventi modello (esclusivi) in esame.P ( M 1 | D ) n i = 1 P ( M i | D ) = 1P(M1|D)P(M1|D)i=1nP(Mi|D)=1

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.