Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

ポアソン回帰モデル

ポアソン回帰モデル(Poisson regression model)は、目的変数がカウントデータ(非負整数値)である場合のGLMである。事故件数、来店回数、死亡数など、「一定期間内の発生回数」をモデリングするのに用いられる。

GLMとしての定式化

変量成分

目的変数 YiY_i は平均 μi\mu_i のポアソン分布に従う:

Yi∼Poisson(μi),P(Yi=y)=μiy e−μiy!,y=0,1,2,…Y_i \sim \text{Poisson}(\mu_i), \quad P(Y_i = y) = \frac{\mu_i^y \, e^{-\mu_i}}{y!}, \quad y = 0, 1, 2, \dots

ポアソン分布は指数型分布族に属する。確率関数を

f(yi∣μi)=exp⁡(yilog⁡μi−μi−log⁡yi!)f(y_i \mid \mu_i) = \exp\left( y_i \log \mu_i - \mu_i - \log y_i! \right)

と書けば、自然パラメータが ηi=log⁡μi\eta_i = \log \mu_i であることがわかる。

ポアソン分布の重要な性質として、平均と分散が等しい:

E[Yi]=Var(Yi)=μiE[Y_i] = \text{Var}(Y_i) = \mu_i

リンク関数

自然パラメータに対応する正準リンクとして、対数リンク(log link)を用いる:

g(μi)=log⁡μig(\mu_i) = \log \mu_i

対数リンクにより、μi=exp⁡(ηi)>0\mu_i = \exp(\eta_i) > 0 が自動的に保証される。これはカウントデータの平均が非負であるという制約を自然に満たす。

系統的成分

線形予測子は

ηi=xi⊤β=β0+β1xi1+⋯+βpxip\eta_i = \mathbf{x}_i^\top \boldsymbol{\beta} = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip}

3つをまとめると

log⁡μi=xi⊤β\log \mu_i = \mathbf{x}_i^\top \boldsymbol{\beta}

逆リンク関数(指数関数)で μi\mu_i を表すと

μi=exp⁡(xi⊤β)\mu_i = \exp(\mathbf{x}_i^\top \boldsymbol{\beta})
Source
<Figure size 1200x400 with 2 Axes>

係数の解釈:発生率比(IRR)

ロジスティック回帰で係数がオッズ比として解釈できたのと同様に、ポアソン回帰の係数は発生率比(Incidence Rate Ratio: IRR)として解釈できる。

説明変数 xjx_j が1単位増加したときの期待カウントの変化率を考えると

μ(xj+1)μ(xj)=exp⁡(⋯+βj(xj+1)+⋯ )exp⁡(⋯+βjxj+⋯ )=exp⁡(βj)\frac{\mu(x_j + 1)}{\mu(x_j)} = \frac{\exp(\cdots + \beta_j(x_j + 1) + \cdots)}{\exp(\cdots + \beta_j x_j + \cdots)} = \exp(\beta_j)

すなわち exp⁡(βj)\exp(\beta_j) は、他の変数を一定に保ったとき xjx_j が1単位増加した場合の期待カウントの乗法的な変化倍率である。

  • βj>0⇔exp⁡(βj)>1\beta_j > 0 \Leftrightarrow \exp(\beta_j) > 1:xjx_j が増えると期待カウントが増加

  • βj=0⇔exp⁡(βj)=1\beta_j = 0 \Leftrightarrow \exp(\beta_j) = 1:xjx_j は期待カウントに影響しない

  • βj<0⇔exp⁡(βj)<1\beta_j < 0 \Leftrightarrow \exp(\beta_j) < 1:xjx_j が増えると期待カウントが減少

例えば βj=0.3\beta_j = 0.3 なら exp⁡(0.3)≈1.35\exp(0.3) \approx 1.35 なので、xjx_j が1単位増えると発生率が約35%増加すると解釈する。

最尤推定

対数尤度関数

nn 個の独立な観測 (yi,xi)(y_i, \mathbf{x}_i) に対する対数尤度は

ℓ(β)=∑i=1n[yilog⁡μi−μi−log⁡yi!]\ell(\boldsymbol{\beta}) = \sum_{i=1}^{n} \left[ y_i \log \mu_i - \mu_i - \log y_i! \right]

μi=exp⁡(xi⊤β)\mu_i = \exp(\mathbf{x}_i^\top \boldsymbol{\beta}) を代入すると

ℓ(β)=∑i=1n[yi xi⊤β−exp⁡(xi⊤β)−log⁡yi!]\ell(\boldsymbol{\beta}) = \sum_{i=1}^{n} \left[ y_i\, \mathbf{x}_i^\top \boldsymbol{\beta} - \exp(\mathbf{x}_i^\top \boldsymbol{\beta}) - \log y_i! \right]

スコア関数

∂ℓ∂β=∑i=1n(yi−μi) xi=X⊤(y−μ)\frac{\partial \ell}{\partial \boldsymbol{\beta}} = \sum_{i=1}^{n} (y_i - \mu_i)\, \mathbf{x}_i = \mathbf{X}^\top (\mathbf{y} - \boldsymbol{\mu})

ロジスティック回帰の場合と同じ形 X⊤(y−μ^)\mathbf{X}^\top(\mathbf{y} - \hat{\boldsymbol{\mu}}) となる。これは正準リンクを用いたGLM一般に成り立つ性質である。

Fisher情報行列

F(β)=−∂2ℓ∂β ∂β⊤=X⊤WX\mathbf{F}(\boldsymbol{\beta}) = -\frac{\partial^2 \ell}{\partial \boldsymbol{\beta}\, \partial \boldsymbol{\beta}^\top} = \mathbf{X}^\top \mathbf{W} \mathbf{X}

ここで W=diag(μ1,…,μn)\mathbf{W} = \text{diag}(\mu_1, \dots, \mu_n) である。ポアソン分布では分散が平均に等しいため、重み wi=μiw_i = \mu_i となる。

IRLS

ロジスティック回帰と同様に、IRLSで解く。更新式は

β(t+1)=(X⊤W(t)X)−1 X⊤W(t)z(t)\boldsymbol{\beta}^{(t+1)} = (\mathbf{X}^\top \mathbf{W}^{(t)} \mathbf{X})^{-1}\, \mathbf{X}^\top \mathbf{W}^{(t)} \mathbf{z}^{(t)}

作業従属変数は

zi(t)=ηi(t)+yi−μi(t)μi(t)z_i^{(t)} = \eta_i^{(t)} + \frac{y_i - \mu_i^{(t)}}{\mu_i^{(t)}}

リンク関数の微分 g′(μ)=1/μg'(\mu) = 1/\mu が反映されている。

逸脱度

IRLSのスクラッチ実装

シミュレーションデータでの検証

スクラッチ実装を statsmodels の結果と比較する。

サンプルサイズ: 500
真の係数: β₀=1.0, β₁=0.5, β₂=-0.3
yの平均: 3.226, 分散: 7.703
IRLS 反復回数: 5
対数尤度 (自前): -939.9157
対数尤度 (statsmodels): -939.9157
逸脱度 (自前): 557.5685
逸脱度 (statsmodels): 557.5685

/tmp/ipykernel_12239/3894540174.py:57: DeprecationWarning: `np.math` is a deprecated alias for the standard library `math` module (Deprecated Numpy 1.25). Replace usages of `np.math` with `math`
  log_lik = np.sum(y * np.log(mu + 1e-15) - mu - np.array([np.math.lgamma(yi + 1) for yi in y]))
Loading...

仮説検定とモデル評価

Wald検定

ロジスティック回帰と同様に、個々の係数について H0:βj=0H_0: \beta_j = 0 を検定する:

zj=β^jSE(β^j)z_j = \frac{\hat{\beta}_j}{\text{SE}(\hat{\beta}_j)}

逸脱度(deviance)

飽和モデル(観測ごとにパラメータを持つモデル)との比較で定義される:

D=2∑i=1n[yilog⁡yiμ^i−(yi−μ^i)]D = 2 \sum_{i=1}^{n} \left[ y_i \log\frac{y_i}{\hat{\mu}_i} - (y_i - \hat{\mu}_i) \right]

ただし yi=0y_i = 0 のときは yilog⁡(yi/μ^i)=0y_i \log(y_i / \hat{\mu}_i) = 0 とする。

モデルが正しければ DD は漸近的に自由度 n−pn - p の χ2\chi^2 分布に従う。D/(n−p)D / (n-p) が1より大きければ過分散の兆候である。

                 Generalized Linear Model Regression Results                  
==============================================================================
Dep. Variable:                      y   No. Observations:                  500
Model:                            GLM   Df Residuals:                      497
Model Family:                 Poisson   Df Model:                            2
Link Function:                    Log   Scale:                          1.0000
Method:                          IRLS   Log-Likelihood:                -939.92
Date:                Sat, 14 Feb 2026   Deviance:                       557.57
Time:                        23:22:33   Pearson chi2:                     500.
No. Iterations:                     5   Pseudo R-squ. (CS):             0.6738
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const          0.9919      0.029     34.151      0.000       0.935       1.049
x1             0.5215      0.025     20.504      0.000       0.472       0.571
x2            -0.2974      0.024    -12.223      0.000      -0.345      -0.250
==============================================================================
Loading...

オフセット項

ポアソン回帰では、観測ごとに曝露量(exposure)が異なる場合がある。例えば人口規模が異なる地域の犯罪件数や、観察期間が異なる場合のイベント発生数である。

曝露量 tit_i を考慮したモデルは

log⁡μi=log⁡ti+xi⊤β\log \mu_i = \log t_i + \mathbf{x}_i^\top \boldsymbol{\beta}

と書かれる。log⁡ti\log t_i は係数が1に固定された説明変数であり、これを オフセット(offset)と呼ぶ。

これはすなわち

μi=tiexp⁡(xi⊤β)\mu_i = t_i \exp(\mathbf{x}_i^\top \boldsymbol{\beta})

であり、exp⁡(xi⊤β)\exp(\mathbf{x}_i^\top \boldsymbol{\beta}) が単位曝露あたりの発生率(rate)を表す。

真の係数: β₀=0.5, β₁=0.8

--- オフセットあり(正しいモデル)---
  β₀=0.495, β₁=0.792
  AIC=1275.4

--- オフセットなし(誤ったモデル)---
  β₀=1.565, β₁=0.809
  AIC=1750.7

過分散(overdispersion)

ポアソン回帰の最も重要な前提は E[Yi]=Var(Yi)=μiE[Y_i] = \text{Var}(Y_i) = \mu_i(平均と分散が等しい)であるが、実データでは Var(Yi)>E[Yi]\text{Var}(Y_i) > E[Y_i](過分散)となることが非常に多い。

過分散の影響

過分散が存在するのにポアソン回帰をそのまま適用すると:

  • 係数の点推定 β^\hat{\boldsymbol{\beta}} 自体は一致性を持つ(偏りなく推定できる)

  • しかし標準誤差が過小推定される(分散を過小評価するため)

  • その結果、p値が小さくなりすぎ、偽陽性が増加する

過分散の診断

過分散の簡易的な指標として、ピアソン χ2\chi^2 統計量または逸脱度を残差自由度 n−pn - p で割った値を使う:

ϕ^=Dn−porϕ^=χP2n−p\hat{\phi} = \frac{D}{n - p} \quad \text{or} \quad \hat{\phi} = \frac{\chi^2_P}{n - p}

ϕ^≈1\hat{\phi} \approx 1 ならポアソンの分散仮定が成立しており、ϕ^≫1\hat{\phi} \gg 1 なら過分散の疑いがある。

yの平均: 3.03
yの分散: 11.16
分散/平均: 3.69 (ポアソンなら1になる)
逸脱度: 1228.48
残差自由度: 498
逸脱度/自由度: 2.47
Pearson χ²/自由度: 2.39

→ 過分散が強く疑われる(値が1から大きく乗離)

過分散への対処

1. 準ポアソン回帰(quasi-Poisson)

分散構造を Var(Yi)=ϕμi\text{Var}(Y_i) = \phi \mu_i と仮定し、分散パラメータ ϕ\phi をデータから推定する。係数の点推定はポアソン回帰と同じだが、標準誤差が ϕ^\sqrt{\hat{\phi}} 倍される。

2. 負の二項回帰(negative binomial regression)

ポアソン分布の代わりに負の二項分布を変量成分に用いる。負の二項分布はポアソン分布にガンマ分布の異質性を加えたもので、Var(Yi)=μi+αμi2\text{Var}(Y_i) = \mu_i + \alpha \mu_i^2 となる。

=== 標準誤差の比較 ===
推定された分散パラメータ φ = 2.39

Loading...

実データでの例

船のデータセットを用いて、船の種類・建造時期・運用期間から損傷インシデント数を予測するポアソン回帰を行う。このデータは運用期間(曝露量)が観測ごとに異なるため、オフセット項の使用が適切である。

サンプルサイズ: 34
目的変数 (incidents) の平均: 10.47

Loading...
                 Generalized Linear Model Regression Results                  
==============================================================================
Dep. Variable:              incidents   No. Observations:                   34
Model:                            GLM   Df Residuals:                       25
Model Family:                 Poisson   Df Model:                            8
Link Function:                    Log   Scale:                          1.0000
Method:                          IRLS   Log-Likelihood:                -68.281
Date:                Sat, 14 Feb 2026   Deviance:                       38.695
Time:                        23:22:57   Pearson chi2:                     42.3
No. Iterations:                     6   Pseudo R-squ. (CS):             0.9578
Covariance Type:            nonrobust                                         
===================================================================================
                      coef    std err          z      P>|z|      [0.025      0.975]
-----------------------------------------------------------------------------------
Intercept          -6.4059      0.217    -29.460      0.000      -6.832      -5.980
C(type)[T.B]       -0.5433      0.178     -3.060      0.002      -0.891      -0.195
C(type)[T.C]       -0.6874      0.329     -2.089      0.037      -1.332      -0.042
C(type)[T.D]       -0.0760      0.291     -0.261      0.794      -0.645       0.494
C(type)[T.E]        0.3256      0.236      1.380      0.168      -0.137       0.788
C(year)[T.65]       0.6971      0.150      4.659      0.000       0.404       0.990
C(year)[T.70]       0.8184      0.170      4.821      0.000       0.486       1.151
C(year)[T.75]       0.4534      0.233      1.945      0.052      -0.004       0.910
C(period)[T.75]     0.3845      0.118      3.251      0.001       0.153       0.616
===================================================================================
Loading...
逸脱度: 38.70
残差自由度: 25
逸脱度/自由度: 1.55
Pearson χ²/自由度: 1.69
<Figure size 1200x400 with 2 Axes>

参考文献

McCullagh, P., & Nelder, J. A. (1989). Generalized Linear Models (2nd ed.). Chapman & Hall.

GLMの原典。ポアソン回帰を含むGLM全般の理論

Cameron, A. C., & Trivedi, P. K. (2013). Regression Analysis of Count Data (2nd ed.). Cambridge University Press.

カウントデータの回帰分析に特化した教科書。ポアソン回帰・負の二項回帰・過分散の詳細な議論

Hilbe, J. M. (2011). Negative Binomial Regression (2nd ed.). Cambridge University Press.

負の二項回帰に特化した教科書。過分散への対処が詳しい