ポアソン回帰

RJAGS によるベイズモデリング

Alicia Johnson

Associate Professor, Macalester College

正規尤度の構造

$Y$ = ある日のボリューム(ユーザー数)
$Y \sim N(m, s^2)$

技術的な問題点:

  • 正規モデルは $Y$ が連続スケールで負の値もとり得ると仮定する。
  • しかし $Y$ は離散カウントであり、負の値はとれない。

RJAGS によるベイズモデリング

ポアソンモデル

$Y$ = ある日のボリューム(ユーザー数)
$Y \sim \text{Pois}(l)$

  • $Y$ は固定区間内に発生する独立事象の数(0, 1, 2,...)。

  • レートパラメータ $l$ は単位時間あたりの典型的な事象数を表す
    ($l > 0$)。

RJAGS によるベイズモデリング

ポアソンモデル

$Y$ = ある日のボリューム(ユーザー数)
$Y \sim \text{Pois}(l)$

  • $Y$ は固定区間内に発生する独立事象の数(0, 1, 2,...)。

  • レートパラメータ $l$ は単位時間あたりの典型的な事象数を表す
    ($l > 0$)。

RJAGS によるベイズモデリング

ポアソンモデル

$Y$ = ある日のボリューム(ユーザー数)
$Y \sim \text{Pois}(l)$

  • $Y$ は固定区間内に発生する独立事象の数(0, 1, 2,...)。

  • レートパラメータ $l$ は単位時間あたりの典型的な事象数を表す
    ($l > 0$)。

RJAGS によるベイズモデリング

ポアソンモデル

$Y$ = ある日のボリューム(ユーザー数)
$Y \sim \text{Pois}(l)$

  • $Y$ は固定区間内に発生する独立事象の数(0, 1, 2,...)。

  • レートパラメータ $l$ は単位時間あたりの典型的な事象数を表す
    ($l > 0$)。

RJAGS によるベイズモデリング

ポアソン回帰

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

RJAGS によるベイズモデリング

ポアソン回帰

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

$l_i = a + b X_i + c Z_i$

$\;$

RJAGS によるベイズモデリング

ポアソン回帰

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

$l_i = a + b X_i + c Z_i$

$\;$

問題点:
$l_i$ を線形モデルに直接リンクすると、$l_i$ が負になり得る。

RJAGS によるベイズモデリング

ポアソン回帰

$Y_i \sim \text{Pois}(l_i)$ ($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 によるベイズモデリング

ポアソン回帰

$Y_i \sim \text{Pois}(l_i)$ ($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 によるベイズモデリング

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 によるベイズモデリング

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 によるベイズモデリング

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 によるベイズモデリング

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 によるベイズモデリング

注意事項

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

  • 前提:気温と曜日が類似した日において、$Y_i$ の分散は $Y_i$ の平均と等しい。
  • データには過分散(分散が平均より大きい)の可能性がある。
  • 完全ではないが、このモデルは出発点として許容できる。
RJAGS によるベイズモデリング

練習しましょう!

RJAGS によるベイズモデリング

Preparing Video For Download...