Aktualizacja bayesowska o nowe dane

17

Jak przejść do obliczania tylnej z wcześniejszym N ~ (a, b) po zaobserwowaniu n punktów danych? Zakładam, że musimy obliczyć średnią próbki i wariancję punktów danych i wykonać jakieś obliczenia, które łączą tylną z wcześniejszą, ale nie jestem pewien, jak wygląda wzór kombinacji.

statstudent
źródło

Odpowiedzi:

23

Podstawową ideą aktualizacji bayesowskiej jest to, że biorąc pod uwagę niektóre dane X i wcześniejsze parametry niż parametr θ , gdzie relacja między danymi a parametrem jest opisana za pomocą funkcji prawdopodobieństwa , używasz twierdzenia Bayesa, aby uzyskać później

p(θX)p(Xθ)p(θ)

Można to zrobić sekwencyjnie, gdy po zobaczeniu pierwszego punktu danych przed aktualizacją θ zostanie zaktualizowany do tylnej θ , następnie możesz wziąć drugi punkt danych x 2 i użyćx1 θ θx2 tylnej uzyskanej przed jako swojego wcześniejszego , aby zaktualizować go ponownie itp.θ

Dam ci przykład. Wyobraź sobie, że chcesz oszacować średnią rozkładu normalnego, a σ 2 jest ci znane. W takim przypadku możemy zastosować model normalny-normalny. Zakładamy normalną wcześniej dla μ z hiperparametrami μ 0 , σ 2μσ2μμ0,σ02:

XμNormal(μ, σ2)μNormal(μ0, σ02)

Od rozkładu normalnego jest koniugat przed dla rozkładu normalnego, mamy zamknięty w postaci roztworu w celu zaktualizowania przedμ

E(μx)=σ2μ+σ02xσ2+σ02Var(μx)=σ2σ02σ2+σ02

Niestety, takie proste rozwiązania w formie zamkniętej nie są dostępne dla bardziej wyrafinowanych problemów i musisz polegać na algorytmach optymalizacyjnych (dla szacunków punktowych przy użyciu podejścia maksymalnie a posteriori ) lub symulacji MCMC.

Poniżej możesz zobaczyć przykład danych:

n <- 1000
set.seed(123)
x     <- rnorm(n, 1.4, 2.7)
mu    <- numeric(n)
sigma <- numeric(n)

mu[1]    <- (10000*x[i] + (2.7^2)*0)/(10000+2.7^2)
sigma[1] <- (10000*2.7^2)/(10000+2.7^2)
for (i in 2:n) {
  mu[i]    <- ( sigma[i-1]*x[i] + (2.7^2)*mu[i-1] )/(sigma[i-1]+2.7^2)
  sigma[i] <- ( sigma[i-1]*2.7^2                  )/(sigma[i-1]+2.7^2)
}

Jeśli spiszesz wyniki, zobaczysz, jak to zrobić posterunek podchodzi do oszacowanej wartości (jej prawdziwa wartość jest oznaczona czerwoną linią) w miarę gromadzenia nowych danych.

Aktualizacja wcześniej w kolejnych krokach w modelu normalnym-normalnym

Aby dowiedzieć się więcej, sprawdź te slajdy i analizę sprzężoną bayesowską Gaussowskiego dokumentu dystrybucyjnego autorstwa Kevina P. Murphy'ego. Sprawdź także Czy priory bayesowskie stają się nieistotne przy dużej liczebności próby? Możesz także sprawdzić te notatki i ten wpis na blogu na aby uzyskać dostęp do krok po kroku wstępnego wnioskowania bayesowskiego.

Tim
źródło
Dziękuję, to jest bardzo pomocne. Jak moglibyśmy rozwiązać ten prosty przykład (nieznana wariancja, w przeciwieństwie do twojego przykładu)? Załóżmy, że mamy wcześniejszy rozkład N ~ (5, 4), a następnie obserwujemy 5 punktów danych (8, 9, 10, 8, 7). Co będzie późniejsze po tych obserwacjach? Z góry dziękuję. Bardzo mile widziane.
statstudent
@ Kelly można znaleźć przykłady przypadków, w których jedna z wariancji jest nieznana i oznacza znaną wartość, lub obie są nieznane we wpisie w Wikipedii na temat koniugatów priors i linkach podanych na końcu mojej odpowiedzi. Jeśli zarówno średnia, jak i wariancja są nieznane, staje się to nieco bardziej skomplikowane.
Tim
μσ2
4

P(θ)P(xθ)

P(θx)=θP(xθ)P(θ)P(x)

P(x)

P(θx)θP(xθ)P(θ)

Przypadek sprzężonych priorów (gdzie często dostajesz ładne formuły zamknięte)

θP(θ)P(xθ)P(θ) P(θx) należą do tej samej rodziny (np. Oba gaussowskie).

Tabela rozkładów sprzężonych może pomóc w zbudowaniu intuicji (a także dać kilka pouczających przykładów, jak przepracować siebie).

Matthew Gunn
źródło
1

Jest to główny problem obliczeniowy dla analizy danych bayesowskich. To naprawdę zależy od danych i zaangażowanych dystrybucji. W prostych przypadkach, w których wszystko można wyrazić w formie zamkniętej (np. Z sprzężonymi priory), można bezpośrednio zastosować twierdzenie Bayesa. Najpopularniejszą rodziną technik dla bardziej skomplikowanych przypadków jest sieć Markov Monte Carlo. Szczegółowe informacje można znaleźć w dowolnym podręczniku na temat analizy danych bayesowskich.

Kodiolog
źródło
Dziękuję bardzo! Przepraszam, jeśli to naprawdę głupie pytanie uzupełniające, ale w prostych przypadkach, o których wspomniałeś, jak dokładnie użylibyśmy bezpośrednio twierdzenia Bayesa? Czy rozkład utworzony przez średnią próbki i wariancję punktów danych stałby się funkcją prawdopodobieństwa? Dziękuję Ci bardzo.
statstudent
@ Kelly Znowu zależy to od dystrybucji. Zobacz np . En.wikipedia.org/wiki/Conjugate_prior#Example . (Jeśli odpowiedziałem na twoje pytanie, nie zapomnij zaakceptować mojej odpowiedzi, klikając znacznik wyboru pod strzałkami do głosowania.)
Kodiologist