Regresi Bayesian dengan prediktor kategorikal

Pemodelan Bayesian dengan RJAGS

Alicia Johnson

Associate Professor, Macalester College

Tujuan Bab 4

  • Masukkan prediktor kategorikal ke dalam model Bayesian
  • Rekayasa model regresi Bayesian multivariat
  • Perluas metodologi regresi Normal ke generalized linear models: regresi Poisson
Pemodelan Bayesian dengan RJAGS

Volume rail-trail

Tujuan:
Jelajahi volume harian pada jalur kereta di Massachusetts.

1 Foto milik commons.wikimedia.org
Pemodelan Bayesian dengan RJAGS

Memodelkan volume

$Y_i$ = volume jalur (# pengguna) pada hari $i$ $ \; $
$ \;$

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

Pemodelan Bayesian dengan RJAGS

Memodelkan volume menurut hari kerja

$Y_i$ = volume jalur (# pengguna) pada hari $i$
$X_i$ = 1 untuk hari kerja, 0 untuk akhir pekan

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

Pemodelan Bayesian dengan RJAGS

Memodelkan volume menurut hari kerja

$Y_i$ = volume jalur (# pengguna) pada hari $i$
$X_i$ = 1 untuk hari kerja, 0 untuk akhir pekan

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

Pemodelan Bayesian dengan RJAGS

Memodelkan volume menurut hari kerja

$Y_i$ = volume jalur (# pengguna) pada hari $i$
$X_i$ = 1 untuk hari kerja, 0 untuk akhir pekan

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

Pemodelan Bayesian dengan RJAGS

Memodelkan volume menurut hari kerja

$Y_i$ = volume jalur (# pengguna) pada hari $i$
$X_i$ = 1 untuk hari kerja, 0 untuk akhir pekan

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

  • $a$ = volume akhir pekan tipikal

Pemodelan Bayesian dengan RJAGS

$Y_i$ = volume jalur (# pengguna) pada hari $i$
$X_i$ = 1 untuk hari kerja, 0 untuk akhir pekan

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

  • $a$ = volume akhir pekan tipikal
  • $a + b$ = volume hari kerja tipikal

  • $b$ = kontras antara volume hari kerja vs akhir pekan
  • $s$ = simpangan baku residual
Pemodelan Bayesian dengan RJAGS

Prior untuk $a$ & $b$

Volume akhir pekan tipikal kemungkinan sekitar 400 pengguna per hari, tetapi bisa serendah 100 atau setinggi 700 pengguna.

Kita belum pasti bagaimana volume hari kerja dibanding akhir pekan. Bisa lebih banyak, bisa lebih sedikit.

Pemodelan Bayesian dengan RJAGS

Prior untuk $s$

$\;$

Simpangan baku volume dari hari ke hari (baik hari kerja maupun akhir pekan) sama mungkinnya berada di mana saja antara 0 hingga 200 pengguna.

Pemodelan Bayesian dengan RJAGS

Model Bayesian volume menurut status hari kerja

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

Pemodelan Bayesian dengan RJAGS

DEFINE model Bayesian di 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




}"  
Pemodelan Bayesian dengan RJAGS

DEFINE model Bayesian di 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)


}"  
Pemodelan Bayesian dengan RJAGS

DEFINE model Bayesian di RJAGS

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

  • X[1] = akhir pekan, X[2] = hari kerja
  • b memiliki 2 level: b[1], b[2]
  • tren akhir pekan ($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)


}"  
Pemodelan Bayesian dengan RJAGS

DEFINE model Bayesian di RJAGS

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

  • X[1] = akhir pekan, X[2] = hari kerja
  • b memiliki 2 level: b[1], b[2]
  • tren akhir pekan ($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

}"  
Pemodelan Bayesian dengan RJAGS

DEFINE model Bayesian di RJAGS

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

  • X[1] = akhir pekan,X[2] = hari kerja
  • b memiliki 2 level: b[1], b[2]
  • tren akhir pekan ($m_i = a$)
    m[i] <- a + b[1]
    b[1] <- 0
  • hari kerja ($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))

Pemodelan Bayesian dengan RJAGS

Ayo berlatih!

Pemodelan Bayesian dengan RJAGS

Preparing Video For Download...