Régression bayésienne avec un prédicteur catégoriel

Modélisation bayésienne avec RJAGS

Alicia Johnson

Associate Professor, Macalester College

Objectifs du chapitre 4

  • Intégrer des prédicteurs catégoriels dans des modèles bayésiens
  • Concevoir des modèles de régression bayésienne multivariée
  • Étendre la méthodologie des modèles de régression Normale aux modèles linéaires généralisés : régression de Poisson
Modélisation bayésienne avec RJAGS

Volume sur la piste ferroviaire

But :
Explorer le volume quotidien sur une piste ferroviaire au Massachusetts.

1 Photo offerte par commons.wikimedia.org
Modélisation bayésienne avec RJAGS

Modéliser le volume

$Y_i$ = volume sur la piste (nb d'utilisateurs) le jour $i$ $ \; $
$ \;$

Modèle
$Y_i \sim N(m_i, s^2)$

Modélisation bayésienne avec RJAGS

Modéliser le volume selon le jour de semaine

$Y_i$ = volume sur la piste (nb d'utilisateurs) le jour $i$
$X_i$ = 1 pour les jours de semaine, 0 pour les fins de semaine

Modèle
$Y_i \sim N(m_i, s^2)$

Modélisation bayésienne avec RJAGS

Modéliser le volume selon le jour de semaine

$Y_i$ = volume sur la piste (nb d'utilisateurs) le jour $i$
$X_i$ = 1 pour les jours de semaine, 0 pour les fins de semaine

Modèle
$Y_i \sim N(m_i, s^2)$

Modélisation bayésienne avec RJAGS

Modéliser le volume selon le jour de semaine

$Y_i$ = volume sur la piste (nb d'utilisateurs) le jour $i$
$X_i$ = 1 pour les jours de semaine, 0 pour les fins de semaine

Modèle
$Y_i \sim N(m_i, s^2)$
$m_i = a + bX_i$

Modélisation bayésienne avec RJAGS

Modéliser le volume selon le jour de semaine

$Y_i$ = volume sur la piste (nb d'utilisateurs) le jour $i$
$X_i$ = 1 pour les jours de semaine, 0 pour les fins de semaine

Modèle
$Y_i \sim N(m_i, s^2)$
$m_i = a + bX_i$

  • $a$ = volume type en fin de semaine

Modélisation bayésienne avec RJAGS

$Y_i$ = volume sur la piste (nb d'utilisateurs) le jour $i$
$X_i$ = 1 pour les jours de semaine, 0 pour les fins de semaine

Modèle
$Y_i \sim N(m_i, s^2)$
$m_i = a + bX_i$

  • $a$ = volume type en fin de semaine
  • $a + b$ = volume type en jour de semaine

  • $b$ = contraste entre les volumes type des jours de semaine et des fins de semaine
  • $s$ = écart-type résiduel
Modélisation bayésienne avec RJAGS

A priori pour $a$ et $b$

Le volume type en fin de semaine est vraisemblablement autour de 400 utilisateurs par jour, mais pourrait être aussi bas que 100 ou aussi élevé que 700.

Incertitude quant à la comparaison des jours de semaine aux fins de semaine : ça pourrait être plus ou moins.

Modélisation bayésienne avec RJAGS

A priori pour $s$

$\;$

L'écart-type du volume d'un jour à l'autre (semaine ou fin de semaine) est également probable entre 0 et 200 utilisateurs.

Modélisation bayésienne avec RJAGS

Modèle bayésien du volume selon le statut « jour de semaine »

$Y_i \sim N(m_i, s^2)$
$m_i = a + b X_i$
$a \sim N(400, 100^2)$
$b \sim N(0, 200^2)$
$s \sim \text{Unif}(0, 200)$

Modélisation bayésienne avec RJAGS

DÉFINIR le modèle bayésien dans RJAGS

$Y_i \sim N(m_i, s^2)$
$m_i = a + b X_i$
$a \sim N(400, 100^2)$
$b \sim N(0, 200^2)$
$s \sim \text{Unif}(0, 200)$

rail_model_1 <- "model{
    # Likelihood model for Y[i]





    # Prior models for a, b, s




}"  
Modélisation bayésienne avec RJAGS

DÉFINIR le modèle bayésien dans RJAGS

$Y_i \sim N(m_i, s^2)$
$m_i = a + b X_i$
$a \sim N(400, 100^2)$
$b \sim N(0, 200^2)$
$s \sim \text{Unif}(0, 200)$

rail_model_1 <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {
        Y[i] ~ dnorm(m[i], s^(-2))

    }

    # Prior models for a, b, s
    a ~ dnorm(400, 100^(-2))
    s ~ dunif(0, 200)


}"  
Modélisation bayésienne avec RJAGS

DÉFINIR le modèle bayésien dans RJAGS

m[i] <- a + b[X[i]]

  • X[1] = fin de semaine, X[2] = jour de semaine
  • b a 2 niveaux : b[1], b[2]
  • tendance en fin de semaine ($m_i = a$)
    m[i] <- a + b[1]
rail_model_1 <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {
        Y[i] ~ dnorm(m[i], s^(-2))
        m[i] <- a + b[X[i]]
    }

    # Prior models for a, b, s
    a ~ dnorm(400, 100^(-2))
    s ~ dunif(0, 200)


}"  
Modélisation bayésienne avec RJAGS

DÉFINIR le modèle bayésien dans RJAGS

m[i] <- a + b[X[i]]

  • X[1] = fin de semaine, X[2] = jour de semaine
  • b a 2 niveaux : b[1], b[2]
  • tendance en fin de semaine ($m_i = a$)
    m[i] <- a + b[1]
    b[1] <- 0
rail_model_1 <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {
        Y[i] ~ dnorm(m[i], s^(-2))
        m[i] <- a + b[X[i]]
    }

    # Prior models for a, b, s
    a ~ dnorm(400, 100^(-2))
    s ~ dunif(0, 200)
    b[1] <- 0

}"  
Modélisation bayésienne avec RJAGS

DÉFINIR le modèle bayésien dans RJAGS

m[i] <- a + b[X[i]]

  • X[1] = fin de semaine,X[2] = jour de semaine
  • b a 2 niveaux : b[1], b[2]
  • tendance en fin de semaine ($m_i = a$)
    m[i] <- a + b[1]
    b[1] <- 0
  • jour de semaine ($m_i = a + b$)
    m[i] <- a + b[2]
rail_model_1 <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {
        Y[i] ~ dnorm(m[i], s^(-2))
        m[i] <- a + b[X[i]]
    }

    # Prior models for a, b, s
    a ~ dnorm(400, 100^(-2))
    s ~ dunif(0, 200)
    b[1] <- 0
    b[2] ~ dnorm(0, 200^(-2))
}"  

b[2] ~ dnorm(0, 200^(-2))

Modélisation bayésienne avec RJAGS

Passons à la pratique !

Modélisation bayésienne avec RJAGS

Preparing Video For Download...