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 :
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?
źródło
Odpowiedzi:
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:
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ć.
źródło
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:
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.)M1 M2 K
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
źródło