Bayesiansk regression med en kategorisk prediktor

Bayesiansk modellering med RJAGS

Alicia Johnson

Associate Professor, Macalester College

Mål för kapitel 4

  • Inkludera kategoriska prediktorer i Bayesianska modeller
  • Bygg multivariata Bayesianska regressionsmodeller
  • Utvidga metoden för normalregressionsmodeller till generaliserade linjära modeller: Poissonregression
Bayesiansk modellering med RJAGS

Trafik på järnvägsleden

Mål:
Utforska daglig trafik på en järnvägsled i Massachusetts.

1 Foto: commons.wikimedia.org
Bayesiansk modellering med RJAGS

Modellera trafiken

$Y_i$ = trafik på leden (antal användare) dag $i$ $ \; $
$ \;$

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

Bayesiansk modellering med RJAGS

Modellera trafiken per veckodag

$Y_i$ = trafik på leden (antal användare) dag $i$
$X_i$ = 1 för vardagar, 0 för helger

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

Bayesiansk modellering med RJAGS

Modellera trafiken per veckodag

$Y_i$ = trafik på leden (antal användare) dag $i$
$X_i$ = 1 för vardagar, 0 för helger

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

Bayesiansk modellering med RJAGS

Modellera trafiken per veckodag

$Y_i$ = trafik på leden (antal användare) dag $i$
$X_i$ = 1 för vardagar, 0 för helger

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

Bayesiansk modellering med RJAGS

Modellera trafiken per veckodag

$Y_i$ = trafik på leden (antal användare) dag $i$
$X_i$ = 1 för vardagar, 0 för helger

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

  • $a$ = typisk helgtrafik

Bayesiansk modellering med RJAGS

$Y_i$ = trafik på leden (antal användare) dag $i$
$X_i$ = 1 för vardagar, 0 för helger

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

  • $a$ = typisk helgtrafik
  • $a + b$ = typisk vardagstrafik

  • $b$ = skillnad mellan typisk vardags- och helgtrafik
  • $s$ = residualstandardavvikelse
Bayesiansk modellering med RJAGS

Priorer för $a$ & $b$

Typisk helgtrafik är troligen omkring 400 användare per dag, men kan vara så låg som 100 eller så hög som 700.

Vi vet inte säkert hur vardagstrafiken förhåller sig till helgtrafiken. Den kan vara högre eller lägre.

Bayesiansk modellering med RJAGS

Prior för $s$

$\;$

Standardavvikelsen i trafik från dag till dag (oavsett vardag eller helg) är lika sannolik för alla värden mellan 0 och 200 användare.

Bayesiansk modellering med RJAGS

Bayesiansk modell för trafik per veckodagsstatus

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

Bayesiansk modellering med RJAGS

DEFINIERA den Bayesianska modellen i 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




}"  
Bayesiansk modellering med RJAGS

DEFINIERA den Bayesianska modellen i 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)


}"  
Bayesiansk modellering med RJAGS

DEFINIERA den Bayesianska modellen i RJAGS

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

  • X[1] = helg, X[2] = vardag
  • b har 2 nivåer: b[1], b[2]
  • helgtrend ($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)


}"  
Bayesiansk modellering med RJAGS

DEFINIERA den Bayesianska modellen i RJAGS

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

  • X[1] = helg, X[2] = vardag
  • b har 2 nivåer: b[1], b[2]
  • helgtrend ($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

}"  
Bayesiansk modellering med RJAGS

DEFINIERA den Bayesianska modellen i RJAGS

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

  • X[1] = helg,X[2] = vardag
  • b har 2 nivåer: b[1], b[2]
  • helgtrend ($m_i = a$)
    m[i] <- a + b[1]
    b[1] <- 0
  • vardag ($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))

Bayesiansk modellering med RJAGS

Nu kör vi en övning!

Bayesiansk modellering med RJAGS

Preparing Video For Download...