Байесовская регрессия с категориальным предиктором

Байесовское моделирование с RJAGS

Alicia Johnson

Associate Professor, Macalester College

Цели главы 4

  • Включение категориальных предикторов в байесовские модели
  • Построение многомерных байесовских регрессионных моделей
  • Расширение методологии нормальной регрессии до обобщённых линейных моделей: регрессия Пуассона
Байесовское моделирование с 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

ОПРЕДЕЛЕНИЕ байесовской модели в 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

ОПРЕДЕЛЕНИЕ байесовской модели в 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

ОПРЕДЕЛЕНИЕ байесовской модели в 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

ОПРЕДЕЛЕНИЕ байесовской модели в 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

ОПРЕДЕЛЕНИЕ байесовской модели в 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...