Schaltpunkterkennung mit probabilistischer Programmierung (pymc)


9

Ich lese gerade das "Buch" Probabilistic Programming and Bayesian Methods for Hackers . Ich habe ein paar Kapitel gelesen und über das erste Kapitel nachgedacht, in dem das erste Beispiel mit pymc darin besteht, einen Hexenpunkt in Textnachrichten zu erkennen. In diesem Beispiel wird die Zufallsvariable, die angibt, wann der Schaltpunkt auftritt, mit τ . Nach dem MCMC-Schritt ist die posteriore Verteilung von τ gegeben:Geben Sie hier die Bildbeschreibung ein

Erstens kann aus dieser Grafik gelernt werden, dass es eine Wahrscheinlichkeit von fast 50% gibt, dass der Schaltpunkt an Tag 45 passiert ist. Was wäre, wenn es keinen Schaltpunkt gäbe? Anstatt anzunehmen, dass es einen Schaltpunkt gibt, und dann zu versuchen, ihn zu finden, möchte ich feststellen, ob es tatsächlich einen Schaltpunkt gibt.

Der Autor beantwortet die Frage "Ist ein Schaltpunkt aufgetreten?" Mit "Wäre keine Änderung eingetreten oder wäre die Änderung im Laufe der Zeit allmählich erfolgt, wäre die posteriore Verteilung von τ stärker verteilt gewesen". Aber wie können Sie dies mit einer Wahrscheinlichkeit beantworten? Beispielsweise besteht eine Wahrscheinlichkeit von 90%, dass ein Schaltpunkt passiert ist, und eine Wahrscheinlichkeit von 50%, dass er an Tag 45 passiert ist.

Muss das Modell geändert werden? Oder kann dies mit dem aktuellen Modell beantwortet werden?


Erwähnung des Buchautors @ Cam.Davidson.Pilon, der möglicherweise eine bessere Antwort als meine unten hat.
Sean Easter

Antworten:


6

SeanEaster hat einige gute Ratschläge. Der Bayes-Faktor kann schwierig zu berechnen sein, aber es gibt einige gute Blog-Beiträge speziell für den Bayes-Faktor in PyMC2.

Eine eng verwandte Frage ist die Anpassungsgüte eines Modells. Eine faire Methode hierfür ist nur die Inspektion - Posterioren können uns den Nachweis der Passgenauigkeit erbringen. Wie zitiert:

τ

Das ist wahr. Der hintere Teil ist nahe der Zeit 45 ziemlich spitz. Wie Sie sagen,> 50% der Masse liegt bei 45, während die Masse (theoretisch) zum Zeitpunkt 45 näher an 1/80 = 1,125% liegen sollte, wenn es keinen Schaltpunkt gab.

Was Sie tun möchten, ist die genaue Rekonstruktion des beobachteten Datensatzes anhand Ihres Modells. In Kapitel 2 gibt es Simulationen zur Erzeugung gefälschter Daten. Wenn Ihre beobachteten Daten stark von Ihren künstlichen Daten abweichen, stimmt Ihr Modell wahrscheinlich nicht richtig.

Ich entschuldige mich für die nicht rigorose Antwort, aber es ist wirklich eine große Schwierigkeit, die ich nicht effizient überwunden habe.


λλλ

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

Zur Frage der Modellanpassung möchte ich hinzufügen, dass posteriore prädiktive p-Werte eine Möglichkeit zur Beurteilung der Anpassung sind. Siehe dieses Papier .
Sean Easter

2

Das ist eher eine Modellvergleichsfrage: Es geht darum, ob ein Modell ohne Schaltpunkt die Daten besser erklärt als ein Modell mit Schaltpunkt. Ein Ansatz zur Beantwortung dieser Frage besteht darin, den Bayes-Faktor von Modellen mit und ohne Schaltpunkt zu berechnen . Kurz gesagt, der Bayes-Faktor ist das Verhältnis der Wahrscheinlichkeiten der Daten unter beiden Modellen:

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

Wenn das Modell ist, das einen Schaltpunkt verwendet, und das Modell ohne ist, kann ein hoher Wert für so interpretiert werden, dass er das Schaltpunktmodell stark bevorzugt. (Der oben verlinkte Wikipedia-Artikel enthält Richtlinien für die bemerkenswerten K-Werte.)M1M2K

Beachten Sie auch, dass in einem MCMC-Kontext die obigen Integrale durch Summen von Parameterwerten aus den MCMC-Ketten ersetzt würden. Eine gründlichere Behandlung der Bayes-Faktoren anhand von Beispielen finden Sie hier .

Für die Frage der Berechnung der Wahrscheinlichkeit eines Schaltpunkts entspricht dies der Lösung nach . Wenn Sie für beide Modelle gleiche Prioritäten annehmen, entsprechen die hinteren Quoten der Modelle dem Bayes-Faktor. (Siehe Folie 5 hier .) Dann geht es nur noch darum, nach Verwendung des Bayes-Faktors und der Anforderung zu lösen, dass für n ist (exklusive) betrachtete Modellereignisse.P(M1|D)P(M1|D)i=1nP(Mi|D)=1

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.