Diagnostyka łańcucha Markowa i reprodukowalność

Modelowanie bayesowskie z RJAGS

Alicia Johnson

Associate Professor, Macalester College

Wyniki łańcucha Markowa

Modelowanie bayesowskie z RJAGS

Kwestie do rozważenia

  • Jak wygląda "dobry" łańcuch Markowa?

  • Jak dokładna jest aproksymacja posteriori przez łańcuch Markowa?

  • Na ile iteracji należy uruchomić łańcuch Markowa?

Modelowanie bayesowskie z RJAGS

Diagnostyka: wykresy śladu

Modelowanie bayesowskie z RJAGS

Diagnostyka: wykresy śladu

Dobrze: stabilność!

Źle: niestabilność

Modelowanie bayesowskie z RJAGS

Diagnostyka: wiele łańcuchów

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

Modelowanie bayesowskie z RJAGS

Diagnostyka: wiele łańcuchów

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

Modelowanie bayesowskie z RJAGS

Diagnostyka: wiele łańcuchów

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

Modelowanie bayesowskie z RJAGS

Diagnostyka: wiele łańcuchów

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

Modelowanie bayesowskie z 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
  • Estymata posteriori średniej $m$ = 29.10 ms

  • (Naiwny) błąd standardowy estymaty = 0.2836 ms
    SD / $\sqrt{\text{liczba iteracji}}$

Modelowanie bayesowskie z RJAGS

Diagnostyka: błąd standardowy

  • Estymowana średnia = 29.10 ms

  • (Naiwny) błąd standardowy = 0.2836 ms

  • $29.10 \pm 2*0.2836$
Modelowanie bayesowskie z RJAGS

Przepływ pracy łańcucha Markowa

  • Zdefiniowanie, skompilowanie i symulacja modelu

  • Analiza diagnostyk:

    • Wykresy śladu
    • Wyniki wielu łańcuchów
    • Błędy standardowe
  • Finalizacja symulacji

Modelowanie bayesowskie z RJAGS

Finalizacja łańcucha Markowa: reprodukowalność

sleep_jags <- jags.model(textConnection(sleep_model), 
    data = list(Y = sleep_study$diff_3),
    inits = list(.RNG.name = "base::Wichmann-Hill",
                 .RNG.seed = 1989))
Modelowanie bayesowskie z RJAGS

Ćwiczmy!

Modelowanie bayesowskie z RJAGS

Preparing Video For Download...