Regressione bayesiana con un predittore categorico

Modeling bayesiano con RJAGS

Alicia Johnson

Associate Professor, Macalester College

Obiettivi del Capitolo 4

  • Integrare predittori categorici nei modelli bayesiani
  • Progettare modelli di regressione bayesiana multivariata
  • Estendere la metodologia dalla regressione Normale ai modelli lineari generalizzati: regressione di Poisson
Modeling bayesiano con RJAGS

Volume sulla rail-trail

Obiettivo:
Esplorare il volume giornaliero su una rail-trail nel Massachusetts.

1 Foto per gentile concessione di commons.wikimedia.org
Modeling bayesiano con RJAGS

Modellare il volume

$Y_i$ = volume sul percorso (n. utenti) nel giorno $i$ $ \; $
$ \;$

Modello
$Y_i \sim N(m_i, s^2)$

Modeling bayesiano con RJAGS

Modellare il volume per giorno feriale

$Y_i$ = volume sul percorso (n. utenti) nel giorno $i$
$X_i$ = 1 nei giorni feriali, 0 nei weekend

Modello
$Y_i \sim N(m_i, s^2)$

Modeling bayesiano con RJAGS

Modellare il volume per giorno feriale

$Y_i$ = volume sul percorso (n. utenti) nel giorno $i$
$X_i$ = 1 nei giorni feriali, 0 nei weekend

Modello
$Y_i \sim N(m_i, s^2)$

Modeling bayesiano con RJAGS

Modellare il volume per giorno feriale

$Y_i$ = volume sul percorso (n. utenti) nel giorno $i$
$X_i$ = 1 nei giorni feriali, 0 nei weekend

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

Modeling bayesiano con RJAGS

Modellare il volume per giorno feriale

$Y_i$ = volume sul percorso (n. utenti) nel giorno $i$
$X_i$ = 1 nei giorni feriali, 0 nei weekend

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

  • $a$ = volume tipico del weekend

Modeling bayesiano con RJAGS

$Y_i$ = volume sul percorso (n. utenti) nel giorno $i$
$X_i$ = 1 nei giorni feriali, 0 nei weekend

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

  • $a$ = volume tipico del weekend
  • $a + b$ = volume tipico dei feriali

  • $b$ = contrasto tra volume tipico dei feriali e del weekend
  • $s$ = deviazione standard residua
Modeling bayesiano con RJAGS

Priori per $a$ e $b$

Il volume tipico del weekend è probabilmente intorno a 400 utenti/giorno, ma può essere anche 100 o 700.

Non sappiamo bene come il volume dei feriali si confronti col weekend: potrebbe essere maggiore o minore.

Modeling bayesiano con RJAGS

Priori per $s$

$\;$

La deviazione standard del volume di giorno in giorno (sia feriali sia weekend) è equi-probabile tra 0 e 200 utenti.

Modeling bayesiano con RJAGS

Modello bayesiano del volume per stato feriale

$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)$

Modeling bayesiano con RJAGS

DEFINIRE il modello bayesiano in 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




}"  
Modeling bayesiano con RJAGS

DEFINIRE il modello bayesiano in 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)


}"  
Modeling bayesiano con RJAGS

DEFINIRE il modello bayesiano in RJAGS

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

  • X[1] = weekend, X[2] = feriale
  • b ha 2 livelli: b[1], b[2]
  • trend weekend ($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)


}"  
Modeling bayesiano con RJAGS

DEFINIRE il modello bayesiano in RJAGS

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

  • X[1] = weekend, X[2] = feriale
  • b ha 2 livelli: b[1], b[2]
  • trend weekend ($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

}"  
Modeling bayesiano con RJAGS

DEFINIRE il modello bayesiano in RJAGS

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

  • X[1] = weekend,X[2] = feriale
  • b ha 2 livelli: b[1], b[2]
  • trend weekend ($m_i = a$)
    m[i] <- a + b[1]
    b[1] <- 0
  • feriale ($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))

Modeling bayesiano con RJAGS

Esercitiamoci!

Modeling bayesiano con RJAGS

Preparing Video For Download...