Баєсівська регресія з категоріальним предиктором

Баєсівське моделювання з RJAGS

Alicia Johnson

Associate Professor, Macalester College

Цілі розділу 4

  • Додайте категоріальні предиктори до баєсівських моделей
  • Створіть багатофакторні баєсівські регресійні моделі
  • Розширте методологію Normal-регресії до узагальнених лінійних моделей: регресія Пуассона
Баєсівське моделювання з RJAGS

Відвідуваність рейл-трейлу

Мета:
Дослідити добову відвідуваність рейл-трейлу в Массачусетсі.

1 Фото з commons.wikimedia.org
Баєсівське моделювання з RJAGS

Моделювання відвідуваності

$Y_i$ = обсяг відвідуваності (кількість користувачів) у день $i$ $ \; $
$ \;$

Модель
$Y_i \sim N(m_i, s^2)$

Баєсівське моделювання з RJAGS

Моделювання за буднями

$Y_i$ = обсяг відвідуваності (кількість користувачів) у день $i$
$X_i$ = 1 для буднів, 0 для вихідних

Модель
$Y_i \sim N(m_i, s^2)$

Баєсівське моделювання з RJAGS

Моделювання за буднями

$Y_i$ = обсяг відвідуваності (кількість користувачів) у день $i$
$X_i$ = 1 для буднів, 0 для вихідних

Модель
$Y_i \sim N(m_i, s^2)$

Баєсівське моделювання з RJAGS

Моделювання за буднями

$Y_i$ = обсяг відвідуваності (кількість користувачів) у день $i$
$X_i$ = 1 для буднів, 0 для вихідних

Модель
$Y_i \sim N(m_i, s^2)$
$m_i = a + bX_i$

Баєсівське моделювання з RJAGS

Моделювання за буднями

$Y_i$ = обсяг відвідуваності (кількість користувачів) у день $i$
$X_i$ = 1 для буднів, 0 для вихідних

Модель
$Y_i \sim N(m_i, s^2)$
$m_i = a + bX_i$

  • $a$ = типова відвідуваність у вихідні

Баєсівське моделювання з RJAGS

$Y_i$ = обсяг відвідуваності (кількість користувачів) у день $i$
$X_i$ = 1 для буднів, 0 для вихідних

Модель
$Y_i \sim N(m_i, s^2)$
$m_i = a + bX_i$

  • $a$ = типова відвідуваність у вихідні
  • $a + b$ = типова відвідуваність у будні

  • $b$ = контраст між типовою відвідуваністю в будні та вихідні
  • $s$ = залишкове стандартне відхилення
Баєсівське моделювання з RJAGS

Пріори для $a$ і $b$

Типова відвідуваність у вихідні найімовірніше близько 400 осіб на день, але може бути від 100 до 700.

Ми не впевнені, як будні порівнюються з вихідними: може бути більше або менше.

Баєсівське моделювання з RJAGS

Пріор для $s$

$\;$

Стандартне відхилення відвідуваності з дня в день (і в будні, і у вихідні) з однаковою ймовірністю може бути в діапазоні від 0 до 200 осіб.

Баєсівське моделювання з 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)$

Баєсівське моделювання з RJAGS

DEFINE баєсівську модель в 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




}"  
Баєсівське моделювання з RJAGS

DEFINE баєсівську модель в 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)


}"  
Баєсівське моделювання з RJAGS

DEFINE баєсівську модель в RJAGS

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

  • X[1] = вихідні, X[2] = будні
  • b має 2 рівні: b[1], b[2]
  • тренд для вихідних ($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)


}"  
Баєсівське моделювання з RJAGS

DEFINE баєсівську модель в RJAGS

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

  • X[1] = вихідні, X[2] = будні
  • b має 2 рівні: b[1], b[2]
  • тренд для вихідних ($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

}"  
Баєсівське моделювання з RJAGS

DEFINE баєсівську модель в RJAGS

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

  • X[1] = вихідні,X[2] = будні
  • b має 2 рівні: b[1], b[2]
  • тренд для вихідних ($m_i = a$)
    m[i] <- a + b[1]
    b[1] <- 0
  • будні ($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))

Баєсівське моделювання з RJAGS

Давайте потренуємось!

Баєсівське моделювання з RJAGS

Preparing Video For Download...