Wykrywanie punktu przełączania z programowaniem probabilistycznym (pymc)


9

Obecnie czytam „książkę” z zakresu programowania probabilistycznego i metod bayesowskich dla hakerów . Przeczytałem kilka rozdziałów i zastanawiałem się nad pierwszym rozdziałem, w którym pierwszy przykład z pymc polega na wykryciu czarownicy w wiadomościach tekstowych. W tym przykładzie zmienna losowa wskazująca, kiedy ma miejsce punkt przełączania, jest oznaczona . Po kroku MCMC podaje się rozkład tylny :ττwprowadź opis zdjęcia tutaj

Po pierwsze, można dowiedzieć się z tego wykresu, że istnieje prawie 50% prawdopodobieństwa, że ​​punkt przełączenia wydarzy się w dniu 45. A co, jeśli nie byłoby punktu przełączania? Zamiast zakładać, że istnieje punkt przełączania, a następnie próbować go znaleźć, chcę wykryć, czy rzeczywiście istnieje punkt przełączania.

Autor odpowiada na pytanie „czy nastąpił punkt przełączenia” na „Gdyby nie nastąpiła żadna zmiana, lub gdyby zmiana była stopniowa w czasie, rozkład byłby bardziej rozłożony”. Ale jak można odpowiedzieć na to pytanie, na przykład, istnieje 90% szansy na punkt przełączenia i 50% szansy na to, że nastąpi to w dniu 45.τ

Czy należy zmienić model? Czy można na to odpowiedzieć w obecnym modelu?


Wspominając autora książki @ Cam.Davidson.Pilon, który może mieć lepszą odpowiedź niż moja poniżej.
Sean Easter

Odpowiedzi:


6

SeanEaster ma kilka dobrych rad. Czynnik Bayesa może być trudny do obliczenia, ale istnieją pewne dobre posty na blogu dotyczące czynnika Bayesa w PyMC2.

Kwestią ściśle związaną z tym jest dobroć modelu. Uczciwą metodą jest po prostu kontrola - osoby postronne mogą dać nam dowód dopasowania. Jak cytowano:

„Gdyby nie nastąpiła żadna zmiana lub gdyby zmiana była stopniowa w miarę upływu czasu, dalszy rozkład byłby bardziej rozłożony”τ

To prawda. Tylna jest dość szczytowa w pobliżu czasu 45. Jak mówisz,> 50% masy ma 45, natomiast jeśli nie było punktu przełączenia, masa powinna (teoretycznie) być bliższa 1/80 = 1,125% w czasie 45.

Twoim celem jest wierna rekonstrukcja obserwowanego zestawu danych, biorąc pod uwagę Twój model. W rozdziale 2 są to symulacje generowania fałszywych danych. Jeśli obserwowane dane wyglądają bardzo różnie od sztucznych danych, prawdopodobnie model nie jest odpowiednio dopasowany.

Przepraszam za niehigieniczną odpowiedź, ale tak naprawdę to główna trudność, której nie udało mi się skutecznie pokonać.


Może nie ma to związku z twoją odpowiedzią, po prostu myślę na głos. Czy nie byłoby możliwe dopasowanie sigmoidu do danych i na podstawie parametru beta zdecyduj, czy nachylenie wskazuje zmianę, czy nie. Być może z przykładów można się nauczyć progu określającego, czy istnieje punkt przełączania. Być może jest to również możliwe przy parametrach . Jeśli 1 różni się zbytnio od 2, istnieje punkt przełączania, inaczej nie. Można to również zrobić za pomocą progu wyuczonego z przykładówλλλ
Olivier_s_j

1
Na przykład dopasuj model: , gdzie ? To działałoby, jak sądzę, i pozwalało na płynne przejścia. Masz rację, że wnioskowanie na zboczu może ustalić, czy istnieje punkt przełączenia. Naprawdę to lubię, powinieneś to odkrywać bardziej. λ1p+λ2(1p)p=1/(1+exp(βt))β
Cam.Davidson.Pilon

W kwestii dopasowania modelu dodam, że prognostyczne wartości p z tyłu są jednym ze sposobów oceny dopasowania. Zobacz ten artykuł .
Sean Easter

2

To raczej pytanie porównawcze modelu: interesuje nas to, czy model bez punktu przełączania lepiej wyjaśnia dane niż model z punktem przełączania. Jednym z podejść do odpowiedzi na to pytanie jest obliczenie współczynnika Bayesa modeli z punktem przełączania i bez niego. Krótko mówiąc, współczynnik Bayesa to stosunek prawdopodobieństwa danych w obu modelach:

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

Jeśli jest modelem używającym punktu przełączania, a jest modelem bez, wówczas wysoką wartość można interpretować jako silnie faworyzującą model punktu przełączania. (Artykuł w Wikipedii, do którego prowadzi link powyżej, zawiera wytyczne dotyczące tego, jakie wartości K są godne uwagi.)M1M2K

Należy również zauważyć, że w kontekście MCMC powyższe całki zostałyby zastąpione sumami wartości parametrów z łańcuchów MCMC. Dokładniejsze podejście do czynników Bayesa wraz z przykładami jest dostępne tutaj .

Pytanie o obliczenie prawdopodobieństwa punktu przełączania jest równoznaczne z rozwiązaniem dla . Jeśli założymy równe priory w obu modelach, wówczas szanse na późniejsze modele są równoważne współczynnikowi Bayesa. (Zobacz slajd 5 tutaj .) Zatem to tylko kwestia rozwiązania dla przy użyciu współczynnika Bayesa i wymogu, że dla n (wyłączne) rozważane zdarzenia modelowe.P(M1|D)P(M1|D)i=1nP(Mi|D)=1

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.