포아송 회귀

RJAGS로 배우는 Bayesian 모델링

Alicia Johnson

Associate Professor, Macalester College

정규 우도 구조

$Y$ = 하루 사용자 수
$Y \sim N(m, s^2)$

엄밀히 말하면...

  • 정규 모델은 $Y$가 연속 척도를 가지며 음수일 수 있다고 가정합니다.
  • 하지만 $Y$는 이산형 카운트이며 음수가 될 수 없습니다.

RJAGS로 배우는 Bayesian 모델링

포아송 모델

$Y$ = 하루 사용자 수
$Y \sim \text{Pois}(l)$

  • $Y$는 고정 구간에서 발생하는 독립 사건의 수 (0, 1, 2,...).

  • 비율 모수 $l$은 단위 시간당 평균 사건 수를 나타냄
    ($l > 0$).

RJAGS로 배우는 Bayesian 모델링

포아송 모델

$Y$ = 하루 사용자 수
$Y \sim \text{Pois}(l)$

  • $Y$는 고정 구간에서 발생하는 독립 사건의 수 (0, 1, 2,...).

  • 비율 모수 $l$은 단위 시간당 평균 사건 수를 나타냄
    ($l > 0$).

RJAGS로 배우는 Bayesian 모델링

포아송 모델

$Y$ = 하루 사용자 수
$Y \sim \text{Pois}(l)$

  • $Y$는 고정 구간에서 발생하는 독립 사건의 수 (0, 1, 2,...).

  • 비율 모수 $l$은 단위 시간당 평균 사건 수를 나타냄
    ($l > 0$).

RJAGS로 배우는 Bayesian 모델링

포아송 모델

$Y$ = 하루 사용자 수
$Y \sim \text{Pois}(l)$

  • $Y$는 고정 구간에서 발생하는 독립 사건의 수 (0, 1, 2,...).

  • 비율 모수 $l$은 단위 시간당 평균 사건 수를 나타냄
    ($l > 0$).

RJAGS로 배우는 Bayesian 모델링

포아송 회귀

$Y_i \sim \text{Pois}(l_i)$ where $l_i > 0$

RJAGS로 배우는 Bayesian 모델링

포아송 회귀

$Y_i \sim \text{Pois}(l_i)$ where $l_i > 0$

$l_i = a + b X_i + c Z_i$

$\;$

RJAGS로 배우는 Bayesian 모델링

포아송 회귀

$Y_i \sim \text{Pois}(l_i)$ where $l_i > 0$

$l_i = a + b X_i + c Z_i$

$\;$

문제점:
$l_i$를 선형 모델에 직접 연결하면 $l_i$가 음수가 될 수 있습니다.

RJAGS로 배우는 Bayesian 모델링

포아송 회귀

$Y_i \sim \text{Pois}(l_i)$ where $l_i > 0$

$log(l_i) = a + b X_i + c Z_i$

$\;$

해결책:
로그 연결 함수를 사용해 $l_i$를 선형 모델에 연결합니다. 이에 따라:

$$l_i = e^{a + b X_i + c Z_i}$$

RJAGS로 배우는 Bayesian 모델링

포아송 회귀

$Y_i \sim \text{Pois}(l_i)$ where $l_i > 0$

$log(l_i) = a + b X_i + c Z_i$

$\;$

해결책:
로그 연결 함수를 사용해 $l_i$를 선형 모델에 연결합니다. 이에 따라:

$$l_i = e^{a + b X_i + c Z_i}$$

RJAGS로 배우는 Bayesian 모델링

RJAGS에서의 포아송 회귀

$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$

poisson_model <- "model{
  # Likelihood model for Y[i]





  # Prior models for a, b, c




}"
RJAGS로 배우는 Bayesian 모델링

RJAGS에서의 포아송 회귀

$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$

poisson_model <- "model{
  # Likelihood model for Y[i]





  # Prior models for a, b, c
  a ~ dnorm(0, 200^(-2))
  b[1] <- 0
  b[2] ~ dnorm(0, 2^(-2))
  c ~ dnorm(0, 2^(-2))
}"
RJAGS로 배우는 Bayesian 모델링

RJAGS에서의 포아송 회귀

$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$

poisson_model <- "model{
  # Likelihood model for Y[i]
  for(i in 1:length(Y)) {
   Y[i] ~ dpois(l[i])

  }

  # Prior models for a, b, c
  a ~ dnorm(0, 200^(-2))
  b[1] <- 0
  b[2] ~ dnorm(0, 2^(-2))
  c ~ dnorm(0, 2^(-2))
}"
RJAGS로 배우는 Bayesian 모델링

RJAGS에서의 포아송 회귀

$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$

poisson_model <- "model{
  # Likelihood model for Y[i]
  for(i in 1:length(Y)) {
   Y[i] ~ dpois(l[i])
   log(l[i]) <- a + b[X[i]] + c*Z[i]
  }

  # Prior models for a, b, c
  a ~ dnorm(0, 200^(-2))
  b[1] <- 0
  b[2] ~ dnorm(0, 2^(-2))
  c ~ dnorm(0, 2^(-2))
}"
RJAGS로 배우는 Bayesian 모델링

주의 사항

$Y \sim \text{Pois}(l_i)$

  • 가정: 기온과 평일 여부가 유사한 날들 사이에서 $Y_i$의 분산은 $Y_i$의 평균과 같습니다.
  • 데이터에서 과산포(overdispersion)가 나타날 수 있습니다. 즉 분산이 평균보다 큽니다.
  • 완벽하지 않더라도, 이 모델은 출발점으로 적합합니다.
RJAGS로 배우는 Bayesian 모델링

연습해 봅시다!

RJAGS로 배우는 Bayesian 모델링

Preparing Video For Download...