Diagnostika Markovova řetězce a reprodukovatelnost

Bayesovské modelování s RJAGS

Alicia Johnson

Associate Professor, Macalester College

Výstup Markovova řetězce

Bayesovské modelování s RJAGS

Otázky k zamyšlení

  • Jak vypadá „dobrý" Markovův řetězec?

  • Jak přesná je aproximace posterioru Markovovým řetězcem?

  • Kolik iterací má Markovův řetězec běžet?

Bayesovské modelování s RJAGS

Diagnostika: trasovací grafy

Bayesovské modelování s RJAGS

Diagnostika: trasovací grafy

Dobré: stabilita!

Špatné: nestabilita

Bayesovské modelování s RJAGS

Diagnostika: více řetězců

# COMPILE the model
sleep_jags <- jags.model(..., n.chains = 1)

Bayesovské modelování s RJAGS

Diagnostika: více řetězců

# COMPILE the model
sleep_jags <- jags.model(..., n.chains = 2)

Bayesovské modelování s RJAGS

Diagnostika: více řetězců

# COMPILE the model
sleep_jags <- jags.model(..., n.chains = 4)

Bayesovské modelování s RJAGS

Diagnostika: více řetězců

# COMPILE the model
sleep_jags <- jags.model(..., n.chains = 4)

Bayesovské modelování s RJAGS
summary(sleep_sim)
1. Empirical mean and standard deviation for each variable,
   plus standard error of the mean:

   Mean    SD Naive SE Time-series SE
m 29.10 8.968   0.2836         0.2820
s 40.07 7.887   0.2494         0.4227

2. Quantiles for each variable:

   2.5%   25%   50%   75% 97.5%
m 11.42 23.27 28.85 34.76 46.76
s 28.31 34.65 38.93 43.91 57.56
  • Odhad posteriorního průměru $m$ = 29,10 ms

  • (Naivní) standardní chyba odhadu = 0,2836 ms
    SD / $\sqrt{\text{počet iterací}}$

Bayesovské modelování s RJAGS

Diagnostika: standardní chyba

  • Odhadovaný průměr = 29,10 ms

  • (Naivní) standardní chyba = 0,2836 ms

  • $29{,}10 \pm 2*0{,}2836$
Bayesovské modelování s RJAGS

Pracovní postup s Markovým řetězcem

  • Definovat, zkompilovat a simulovat model

  • Zkontrolovat následující diagnostiky:

    • Trasovací grafy
    • Výstup více řetězců
    • Standardní chyby
  • Finalizovat simulaci

Bayesovské modelování s RJAGS

Finalizace Markovova řetězce: reprodukovatelnost

sleep_jags <- jags.model(textConnection(sleep_model), 
    data = list(Y = sleep_study$diff_3),
    inits = list(.RNG.name = "base::Wichmann-Hill",
                 .RNG.seed = 1989))
Bayesovské modelování s RJAGS

Let's practice!

Bayesovské modelování s RJAGS

Preparing Video For Download...