Megjegyzések
- Írtam egy könyvet Monte Carlo módszerek bemutatása R-vel , amelyeket ellenőrizni ilyen példákhoz.
Válasz
Probléma
Tegyük fel, hogy $ Y \ sim \ text {N} (\ text {jelentése} = \ mu, \ text {Var} = \ frac {1} {\ tau}) $.
Egy minta alapján szerezd meg a $ \ mu $ és $ \ tau $ utólagos eloszlását a Gibbs mintavevő segítségével.
Jelölés
$ \ mu $ = populáció átlag
$ \ tau $ = populáció pontosság (1 / variancia )
$ n $ = minta mérete
$ \ bar {y} $ = minta átlaga
$ s ^ 2 $ = minta szórása
Gibbs mintavevő
[ Casella, G. & George, EI (1992). A Gibbs Sampler ismertetése. Az amerikai statisztikus, 46, 167–174. ]
$ i $ ($ i = 1, \ dots, N $) iterációnál ):
- $ \ mu ^ {(i)} $ minta $ f-ből (\ mu \, | \, \ tau ^ {(i – 1)}, \ text {data} ) $ (lásd alább)
- $ \ tau ^ {(i)} $ minta $ f-ből (\ tau \, | \, \ mu ^ {(i)}, \ text {data}) $ (lásd alább)
Az elmélet biztosítja, hogy kellően sok iteráció, $ T $ után a $ \ {( \ mu ^ {(𝑖)}, \ tau ^ {(𝑖)}): i = T + 1, \ pöttyök, 𝑁 \} $ véletlenszerű mintának tekinthető a közös hátsó eloszlásból.
Priors
$ f (\ mu, \ tau) = f (\ mu) \ szorzat f (\ tau) $,
$ f (\ mu) \ propto 1 $
$ f (\ tau) \ propto \ tau ^ {- 1} $
Feltételes posterior az átlaghoz, a $$ (\ mu \, | \, \ tau, \ text {data}) \ sim \ text {N} \ Big (\ bar {y}, \ frac {1} {n \ tau} \ Big) $$
Feltételes hátsó pontosság , a $$ (\ tau \, | \, \ mu, \ text {data}) átlagot \ sim \ text {Gam} \ Big (\ frac {n} {2}, \ frac {2} {(n-1) s ^ 2 + n (\ mu – \ bar {y}) ^ 2} \ Nagy) $$
(gyors) R megvalósítás
# summary statistics of sample n <- 30 ybar <- 15 s2 <- 3 # sample from the joint posterior (mu, tau | data) mu <- rep(NA, 11000) tau <- rep(NA, 11000) T <- 1000 # burnin tau[1] <- 1 # initialisation for(i in 2:11000) { mu[i] <- rnorm(n = 1, mean = ybar, sd = sqrt(1 / (n * tau[i - 1]))) tau[i] <- rgamma(n = 1, shape = n / 2, scale = 2 / ((n - 1) * s2 + n * (mu[i] - ybar)^2)) } mu <- mu[-(1:T)] # remove burnin tau <- tau[-(1:T)] # remove burnin
$$ $$
hist(mu) hist(tau)
Megjegyzések
- +1 Így válaszolhatunk egy látszólag kódspecifikus kérdésre: adjuk meg az elméleti magyarázatot (ami itt témakörvé teszi), és akkor (az OP kielégítése érdekében) adja meg a kódot is. Örülök, hogy visszatértem!
- Köszönöm a magyarázatot. Megtanulhatom-e az összes statisztikai algoritmus kódolását. Diák vagyok, és szeretnék megtanulni néhány kódolást az R-re, hogy megoldhassam a problémámat.
- Tudna nekem segíteni ennek a kérdésnek a megtekintésében .com / questions / 498646 / … ? Köszönöm.