上次我們講完了線性迴歸跟羅吉斯迴歸的差異。

可是並不是每一種資料都是連續型的或是類別型的。

這次要來介紹 Poisson 迴歸,當你要預測的是計數型資料(count data)就可以用他。

Poisson distribution

在講 Poisson 迴歸之前要先來講講 Poisson 分佈,他的公式大概是長的像這樣:

$$
P(Y=y; \lambda) = \frac{e^{- \lambda} \lambda^y}{y!}
$$

圖形的話看起來是這樣。

圖片來自維基百科

要怎麼看懂這個分佈呢?

我們先想像一個情境好了,假設我們經營一家便利商店,在一天之中來光臨這家商店的人數不同時段不一樣。即使是同一個時段,你也很難準確預測會有多少人進到店裡來。這時候我們就會用機率的描述方式,在這邊 k 指的是當我們觀察每段時間區間內進入店裡的客人數量,那麼 $\lambda$ 就是平均來說,每個時間區間的來客人數。你可以看到在 $\lambda = 1$ 的分佈上,來客人數是 0 或是 1 的機率其實很高,但是大於 1 的情形並不是沒有,只是機率比較低罷了。

因此,我們可以用這樣的分佈來估算計數型的資料

Poisson 迴歸

計數型的資料難道不能用一般的線性迴歸嗎?

其實這兩者有非常大的差別:

  1. 計數型的資料不會有負值
  2. 計數型的資料不會有小數點

基於以上兩點資料性質上的差異,我們必須把不同資料分別看待。

但是也不是完全不能用線性迴歸,只是需要動點手腳,就是對資料取 log。

如果你對上面的 Poisson 分佈取 log 的話會發生什麼事呢?

$$
ln(P(Y=y; \lambda)) = - \lambda + y ln(\lambda) - \sum_{y}^{j=1} j
$$

看到了吧!$\lambda$ 跳出來了!而平均數 $\lambda$ 是連續型的數值,可以作為線性迴歸要預測的對象的。

注意:以上並非正式的證明,請勿用於正式推導

其實我們的 Poisson 迴歸是長成這樣的:

$$
ln(\mathbb{E}[y]) = ln(\mathbb{E}[P(Y=y; \lambda)]) = \mathbf{w}^T\mathbf{x} + b
$$

是不是跟我們前面提到的羅吉斯迴歸有 87% 像呢?

而且我們在上面有提到 $\lambda$ 是平均數,所以呢…

$$
ln(\mathbb{E}[y]) = ln(\lambda) = \mathbf{w}^T\mathbf{x} + b
$$

Poisson 迴歸在預測的根本是 $ln(\lambda)$ 嘛!