Poisson 迴歸

使用 RJAGS 的貝氏建模

Alicia Johnson

Associate Professor, Macalester College

常態概似結構

$Y$ = 當天的流量(使用者數)
$Y \sim N(m, s^2)$

更精確地說…

  • 常態模型假設 $Y$ 為連續且可為負。
  • 但 $Y$ 為離散計數且不可能為負。

使用 RJAGS 的貝氏建模

Poisson 模型

$Y$ = 當天的流量(使用者數)
$Y \sim \text{Pois}(l)$

  • $Y$ 是在固定區間內發生的獨立事件數(0、1、2、…)。

  • 「率參數」$l$ 代表每個時間區間的平均事件數
    ($l > 0$)。

使用 RJAGS 的貝氏建模

Poisson 模型

$Y$ = 當天的流量(使用者數)
$Y \sim \text{Pois}(l)$

  • $Y$ 是在固定區間內發生的獨立事件數(0、1、2、…)。

  • 「率參數」$l$ 代表每個時間區間的平均事件數
    ($l > 0$)。

使用 RJAGS 的貝氏建模

Poisson 模型

$Y$ = 當天的流量(使用者數)
$Y \sim \text{Pois}(l)$

  • $Y$ 是在固定區間內發生的獨立事件數(0、1、2、…)。

  • 「率參數」$l$ 代表每個時間區間的平均事件數
    ($l > 0$)。

使用 RJAGS 的貝氏建模

Poisson 模型

$Y$ = 當天的流量(使用者數)
$Y \sim \text{Pois}(l)$

  • $Y$ 是在固定區間內發生的獨立事件數(0、1、2、…)。

  • 「率參數」$l$ 代表每個時間區間的平均事件數
    ($l > 0$)。

使用 RJAGS 的貝氏建模

Poisson 迴歸

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

使用 RJAGS 的貝氏建模

Poisson 迴歸

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

$l_i = a + b X_i + c Z_i$

$\;$

使用 RJAGS 的貝氏建模

Poisson 迴歸

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

$l_i = a + b X_i + c Z_i$

$\;$

一個問題:
把 $l_i$ 直接連到線性模型,等於假設 $l_i$ 可能為負。

使用 RJAGS 的貝氏建模

Poisson 迴歸

$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 的貝氏建模

Poisson 迴歸

$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 的 Poisson 迴歸

$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 的 Poisson 迴歸

$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 的 Poisson 迴歸

$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 的 Poisson 迴歸

$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$ 的變異等於其平均。
  • 我們的資料顯示可能有「過度離散」——變異大於平均。
  • 雖然不完美,但這個模型可作為起點。
使用 RJAGS 的貝氏建模

一起來練習吧!

使用 RJAGS 的貝氏建模

Preparing Video For Download...