Diagnostics de chaînes de Markov et reproductibilité

Modélisation bayésienne avec RJAGS

Alicia Johnson

Associate Professor, Macalester College

Sortie de chaîne de Markov

Modélisation bayésienne avec RJAGS

Questions à se poser

  • À quoi ressemble une « bonne » chaîne de Markov ?

  • Quelle est la précision de l'approximation a posteriori par la chaîne ?

  • Combien d'itérations faut-il exécuter ?

Modélisation bayésienne avec RJAGS

Diagnostic : graphiques de trajectoire

Modélisation bayésienne avec RJAGS

Diagnostic : graphiques de trajectoire

Bon : stabilité !

Mauvais : instabilité

Modélisation bayésienne avec RJAGS

Diagnostic : chaînes multiples

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

Modélisation bayésienne avec RJAGS

Diagnostic : chaînes multiples

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

Modélisation bayésienne avec RJAGS

Diagnostic : chaînes multiples

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

Modélisation bayésienne avec RJAGS

Diagnostic : chaînes multiples

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

Modélisation bayésienne avec 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
  • Estimation de la moyenne a posteriori de $m$ = 29,10 ms

  • Erreur-type (naïve) de cette estimation = 0,2836 ms
    SD / $\sqrt{\text{number of iterations}}$

Modélisation bayésienne avec RJAGS

Diagnostic : erreur-type

  • Moyenne estimée = 29,10 ms

  • Erreur-type (naïve) = 0,2836 ms

  • $29{,}10 \pm 2*0{,}2836$
Modélisation bayésienne avec RJAGS

Flux de travail d'une chaîne de Markov

  • Définir, compiler, simuler le modèle

  • Examiner les diagnostics suivants :

    • Graphiques de trajectoire
    • Sortie de chaînes multiples
    • Erreurs-types
  • Finaliser la simulation

Modélisation bayésienne avec RJAGS

Finaliser la chaîne de Markov : reproductibilité

sleep_jags <- jags.model(textConnection(sleep_model), 
    data = list(Y = sleep_study$diff_3),
    inits = list(.RNG.name = "base::Wichmann-Hill",
                 .RNG.seed = 1989))
Modélisation bayésienne avec RJAGS

Passons à la pratique !

Modélisation bayésienne avec RJAGS

Preparing Video For Download...