井出草平の研究ノート

ゼロ過剰ポアソンモデル

1. ゼロ過剰ポアソン概略

ゼロ過剰ポアソン(Zero-Inflated Poisson; ZIP)モデルは、カウントデータで観測値0が不自然に多い状況を、0が二種類混在しているとみなして説明するモデルである。ここでの二種類とは、そもそも事象が起こりえない、あるいは参加しない・発生しない状態に固定されているために必ず0になる「構造的ゼロ」と、事象が起こりうる状態にあるにもかかわらず観測期間内ではたまたま0になった「偶然ゼロ」である。ZIPはこの二つを混合した生成機構として扱うことで、通常のポアソン回帰が過小評価しがちな0の頻度を表現する。

2. モデル定義と確率質量関数

ZIPでは、各観測  i について「必ず0になる状態」に入る確率を  \pi_i とし、「通常のポアソン過程」に従う平均強度を  \lambda_i と置く。観測値  Y_i の分布は次のように定義される。

まず  y=0 の確率は、構造的ゼロとして0が生じる確率  \pi_i と、非構造的状態にあるがポアソンが0を出す確率  (1-\pi_i)\exp(-\lambda_i) の和になる。したがって

 P(Y_i=0)=\pi_i+(1-\pi_i)e^{-\lambda_i}

である。一方、 y\ge 1 のときは構造的ゼロではありえないためポアソン部分からのみ生じ、

\widehat{P}!\left(Y_{i}=0\right)=\left(\widehat{\pi}\right)_{i}+\left(1-\left(\widehat{\pi}\right)_{i}\right)\exp!\left(-\left(\widehat{\lambda}\right)_{i}\right)

となる。ZIPの要点は、0が「追加の質量」 \pi_i によって増える一方で、ポアソン部分からも  e^{-\lambda_i} によって0が出る、という二重性にある。

3. 回帰(リンク関数)としての書き方

ZIPを回帰モデルとして使う場合、 \lambda_i  \pi_i を説明変数でモデル化するのが標準である。カウントの平均強度  \lambda_i には対数リンクを用いて

 \log(\lambda_i)=\mathbf{x}_i^\top\boldsymbol{\beta}

と書く。ここで  \mathbf{x}_i はカウント強度に影響する共変量ベクトル、 \boldsymbol{\beta} はその係数である。ゼロ過剰の混合確率  \pi_i にはロジットリンクを用いて

 \mathrm{logit}(\pi_i)=\log\frac{\pi_i}{1-\pi_i}=\mathbf{z}_i^\top\boldsymbol{\gamma}

と置くのが一般的である。[tex: \mathbf{x}i ] と [tex: \mathbf{z}i ] は同一であってもよいが、理屈として「発生するならどれだけ起こるか」と「そもそも発生しない状態に入るか」は別の要因に支配されることが多いので、実務上は役割に応じて分けた方が解釈が安定しやすい。

4. いつZIPが効くのかという判断の骨格

ZIPが有効なのは、0が多いという現象に対して、単に分散が大きいからではなく、0が生成される仕組みが二層に分かれているという説明が妥当なときである。たとえば寄付回数であれば、寄付をしない層が制度的・心理的に固定化されている状況は構造的ゼロとして  \pi_i の大きさで表現されうるし、寄付する可能性はあるが観測期間ではたまたま0回だったというケースは  (1-\pi_i)e^{-\lambda_i} の側で表現される。こうした二層構造があるなら、ZIPはデータ生成過程に沿って0の過剰を表現できる。

ただし、0が多く見える理由が「平均に比べて分散が大きい(過分散)」ことに主として起因しているだけなら、ゼロ過剰ではなく負の二項回帰がより素直に当てはまる場合もある。ZIPを選ぶべきかは、 \pi_i による構造的ゼロという解釈がデータ生成過程として自然かどうかで判断するのが基本である。

5. ZIPと近縁モデルの違い

通常のポアソン回帰は

 Y_i\sim \mathrm{Poisson}(\lambda_i)

であり、確率質量関数は

 P(Y_i=y)=\frac{\left(\lambda_i\right)^{y}\exp\left(-\lambda_i\right)}{y!}\qquad (y=0,1,2,\ldots)

である。このとき  P(Y_i=0)=e^{-\lambda_i} なので、0が過剰な場合には当てはまりが崩れやすい。負の二項回帰は過分散に対応でき、結果として0の多さを吸収しうるが、そこでは  \pi_i のような構造的ゼロ機構を必ずしも仮定しない。

ハードル(Hurdle)モデルは、まず0か非0かを二値で分け、非0側は0を取りえない分布で表す。ゼロ切断ポアソンの場合、 y\ge 1 に対して

 P(Y_i=y\mid Y_i\ge 1)=\frac{\left(\lambda_i\right)^{y}\exp\left(-\lambda_i\right)/y!}{1-\exp\left(-\lambda_i\right)}\qquad (y=1,2,\ldots)

となる。ZIPではポアソン部分からも0が出るのに対し、ハードルでは非0側に入ったら0が出ない点が決定的に異なる。

6. 係数の解釈と全体平均への合成効果

ZIPは二つの方程式を持つため、係数の解釈も二系統になる。カウント部の係数  \boldsymbol{\beta}  \lambda_i に作用し、説明変数の係数  \beta_j の指数は発生率比として

 \mathrm{IRR}=\exp(\beta_j)

と解釈される。一方、インフレ部の係数  \boldsymbol{\gamma}  \pi_i に作用し、係数  \gamma_k の指数はオッズ比として

 \mathrm{OR}=\exp(\gamma_k)

と解釈される。

ここで重要なのは、観測されるカウントの全体平均が  \lambda_i だけで決まらず、 \pi_i と結合して決まる点である。ZIPの期待値は

E(Y_{i})=(1-\pi_{i})\lambda_{i}

であり、分散は

 \mathrm{Var}(Y_i)=(1-\pi_i)\lambda_i\left(1+\pi_i\lambda_i\right)

となる。したがって、ある説明変数が  \lambda_i を増やしても同時に  \pi_i も増やすなら、全体の期待値  E[Y_i ] が増えるとは限らない。ZIPで解釈が難しく見えるのは、このように  \pi_i  \lambda_i の両方が最終的な平均に合成されるからである。

7. 実務上の設計と当てはまり確認

実務では、インフレ部の\hat{\pi}_{i}に入れる説明変数は「そもそも発生しない状態」を説明できるもの、すなわち制度・アクセス・関心・参加資格・恒常的制約など、構造的ゼロの理屈と対応するものに寄せるのが筋である。カウント部の \hat{\lambda}_{i} には「発生するなら頻度がどれくらい増えるか」を説明する変数、たとえば曝露時間や機会量、行動傾向などを置くのが自然である。

当てはまりの確認では0の再現が鍵になる。推定された(\hat{\pi})_{i}(\hat{\lambda})_{i}から導かれる0の予測確率は

\widehat{P}(Y_{i}=0)=\hat{\pi}_{i}+(1-\hat{\pi}_{i})\exp(-\hat{\lambda}_{i})

であり、これが実データの0の比率や条件付きの0の出方をどれだけ再現しているかを確認するのが基本である。モデル比較ではポアソン、負の二項、ゼロ過剰負の二項(ZINB)、ハードルなども候補になり、AICBIC、対数尤度などで相対比較するのが一般的である。ただし統計量が良くても、 \pi_i による構造的ゼロという解釈が不自然ならZIPを採用する必然性は弱いので、最後はデータ生成過程としての説明可能性を優先すべきである。