エクセル分析ツール

ポアソン回帰とは|欠陥件数を要因で説明する

記事内に広告が含まれています。

この記事でわかること

  • 件数データに通常の回帰分析を使ってはいけない理由
  • Excelのソルバーでポアソン回帰の係数を推定する手順
  • 発生率比(exp係数)の読み方と報告のしかた
  • 過分散を確認して手法を切り替える判断

📌 前提知識:二項分布・ポアソン分布の求め方と使い分けを読んでいると理解しやすくなります

はんだ付け工程で、基板1枚あたりの欠陥数がライン速度によって変わる気がしていました。速度を8水準に振って基板を流し、欠陥数を数えたデータが手元にあります。

散布図を描いて近似直線を引くと、それらしい右肩上がりの線が出ました。ところが式に低い速度を入れてみると、予測される欠陥数がマイナスに振れます。欠陥が「マイナス1.4個」という報告書は出せません。

件数を扱うときは、回帰の形そのものを変える必要があります。この記事ではポアソン回帰の考え方と、Excelのソルバーで係数を求める手順を実データで追います。

ポアソン回帰を使う場面

ポアソン回帰が向くのは、目的変数が「数えた件数」であるときです。次の3つがあてはまります。

  • 基板1枚あたりの欠陥数を、条件で説明したいとき。速度・温度・作業者などの影響を分けて見られます
  • 単位時間あたりの故障回数や停止回数を扱うとき。設備ごとの差を係数で比較できます
  • 観測の大きさが行ごとに違うとき。検査した面積や枚数をオフセットで補正できます

逆に、良品か不良かの2値を予測したい場合はロジスティック回帰の出番です。また、件数が十分に大きく(おおむね平均20以上)ばらつきも安定しているなら、通常の重回帰でも実害が出にくくなります。NG例(△)として、不良「率」をそのまま目的変数にするのは避けてください。分母が行ごとに違うので、率にした時点で情報が落ちます。件数を目的変数にして、分母はオフセットで渡すのが正しい形です。

なぜ通常の回帰では合わないか

件数データには、直線の回帰と相性の悪い性質が2つあります。

件数データの性質 通常の回帰が置く仮定
0以上の整数しか取らない どんな値でも取りうる
平均が大きいほどばらつきも大きい ばらつきは一定(等分散)

1つ目は予測がマイナスに突き抜ける形で表面化します。2つ目は、件数の多い条件で残差が大きく広がる形で出ます。等分散を前提にした検定や区間はそのままでは使えません。残差の見方は回帰分析の残差分析で扱っています。

ポアソン回帰はこの2つを同時に解きます。予測値を指数関数の形にして負の値を締め出し、ばらつきは平均に比例すると置きます。

\[ \ln(\mu) = \beta_0 + \beta_1 x \quad \Leftrightarrow \quad \mu = e^{\beta_0 + \beta_1 x} \]

左の形を対数リンクと呼びます。ExcelではEXP関数で書き下せます。

=EXP($G$1 + $G$2*A2)

例題|ライン速度と基板の欠陥数

ライン速度を8水準に振り、それぞれ基板1枚を流して欠陥数を数えました。

ライン速度 x(m/min) 欠陥数 y(個) ライン速度 x 欠陥数 y
0.8 1 1.2 4
0.9 5 1.3 11
1.0 2 1.4 9
1.1 7 1.5 17

先に通常の回帰分析を当ててみます。最小二乗法の直線は次のとおりです。

\[ y = -14.3571 + 18.5714\,x \]

=SLOPE(B2:B9,A2:A9)      → 18.5714
=INTERCEPT(B2:B9,A2:A9)  → -14.3571

この式に0.5 m/minを入れると −5.07個、0.7 m/minでも −1.36個 です。欠陥数が負という結果は物理的にありえません。データの範囲内では見えなくても、少し外挿しただけで破綻します。

Excelのソルバーで係数を求める

ポアソン回帰の係数は最尤法で求めます。観測されたデータがもっとも出やすくなるような \( \beta_0, \beta_1 \) を探す方法です。ポアソン分布の対数尤度は次の形で、最後の項は係数に依存しないので最大化の計算からは外せます。

\[ \ln L = \sum_{i} \left( y_i \ln \mu_i – \mu_i – \ln y_i! \right) \]

Excelでは3列を用意します。A列に速度、B列に欠陥数、G1とG2に係数の初期値(0で構いません)を置きます。

C2: =EXP($G$1+$G$2*A2)          ← 予測値 μ
D2: =B2*LN(C2)-C2               ← 対数尤度の核
D10: =SUM(D2:D9)                ← 最大化する目的セル

あとはソルバーを開き、目的セルD10を最大値、変数セルを$G$1:$G$2、解決方法をGRG非線形にして実行します。制約条件は不要です。

収束すると次の値が得られます。

\[ \hat{\beta_0} = -1.5797, \quad \hat{\beta_1} = 2.8838 \]

D10の最大値  → 63.7480

目的セルの値が63.7480になっていれば、同じ最適解にたどり着いています。予測値を並べると、元のデータをよく追えているのがわかります。

速度 x 実測 y 予測 μ
0.8 1 2.07
1.0 2 3.68
1.2 4 6.56
1.5 17 15.58

低い速度でも予測値は2.07個で、負にはなりません。指数の形にしたので、どこまで外挿しても0を下回らない構造です。

⭐ 係数は「率が何倍になるか」で読む

ポアソン回帰の係数をそのまま「速度が1上がると欠陥が2.88個増える」と読むのは誤りです。係数は対数の世界の値なので、指数に戻してから解釈します。

\[ \frac{\mu(x+\Delta)}{\mu(x)} = e^{\beta_1 \Delta} \]

現場で動かせる幅に合わせて \( \Delta \) を決めるのがコツです。今回は0.1 m/min刻みで考えます。

=EXP(2.8838*0.1)  → 1.3343

速度を0.1 m/min上げるごとに、欠陥の発生率が1.33倍になるという読み方です。増加分ではなく倍率で効くところが、直線の回帰との決定的な違いです。0.3 m/min上げれば1.33の3乗で約2.4倍まで膨らみます。

この倍率を発生率比と呼びます。報告するときは区間もつけてください。係数の標準誤差は0.6613なので、95%区間は次のとおりです。

=EXP((2.8838-1.96*0.6613)*0.1)  → 1.172
=EXP((2.8838+1.96*0.6613)*0.1)  → 1.519

「0.1 m/minあたり1.17〜1.52倍」と幅で示せば、意思決定を誤りません。信頼区間の考え方は通常の回帰と同じです。

⭐ここが実務でいちばん効く点です。直線で考えていると「速度を少し上げても欠陥は少ししか増えない」と誤解します。実際には倍率で効くので、速度を上げるほど1刻みあたりの悪化幅が大きくなります。生産量と品質のどちらを取るかを議論する場では、この非線形性を数字で示せるかどうかで結論が変わります。

過分散の確認とオフセット

ポアソン回帰は「分散=平均」を前提にしています。現実のデータはこれより散らばることが多く、そのままだと区間が狭く出て有意になりやすくなります。確認にはピアソンのカイ二乗統計量を自由度で割った値を使います。

\[ \hat{\phi} = \frac{1}{n-p} \sum_i \frac{(y_i – \mu_i)^2}{\mu_i} \]

E2: =(B2-C2)^2/C2
E10: =SUM(E2:E9)/(8-2)   → 1.057

目安は1前後です。今回は1.057なので前提は妥当と判断できます。2を超えるようなら過分散を疑い、負の二項回帰へ切り替えるか、標準誤差を \( \sqrt{\hat{\phi}} \) 倍して補正します。逆に0.5を大きく下回る場合は、データが滑らかすぎないか(丸めや転記ミス)を先に確認してください。

もうひとつ実務で欠かせないのがオフセットです。基板の枚数や検査面積が行ごとに違う場合、件数をそのまま比べられません。観測の大きさ \( t_i \) の対数を、係数を推定しない項として式に足します。

\[ \ln(\mu_i) = \ln(t_i) + \beta_0 + \beta_1 x_i \]

C2: =EXP(LN(F2)+$G$1+$G$2*A2)   ← F列に検査枚数

この形にすると、係数は「1枚あたりの発生率」に対する効果として解釈できます。u管理図が枚数の違う群を扱えるのと同じ考え方です。管理図側の扱いはc管理図・u管理図、件数を率に直す換算は不良率の計算方法|%・ppm・DPMOの違いと換算にまとめています。

よくある質問

Q. 欠陥数が0の行があっても計算できますか?

A. できます。対数尤度の核は y×LN(μ)−μ なので、yが0なら第1項が消えて−μだけが残ります。μ自体は常に正なのでLN(μ)も問題ありません。ただしゼロが極端に多いデータ(全体の半分以上など)では、ゼロ過剰モデルという別の枠組みを検討してください。工程が十分に良くてほとんど0という状況では、回帰よりも管理図で監視するほうが実用的です。

Q. ソルバーが収束しない場合はどうしますか?

A. 初期値を見直してください。G1に実測値の平均の対数(=LN(AVERAGE(B2:B9)))、G2に0を入れると安定します。それでも動かない場合は、説明変数の桁が大きすぎることが原因のことが多いです。温度を摂氏のまま入れると指数の中が極端な値になるので、平均を引いて中心化してから投入してください。

Q. 重回帰のように説明変数を増やせますか?

A. 増やせます。G3、G4と係数のセルを追加し、予測値の式を =EXP($G$1+$G$2*A2+$G$3*B2) のように伸ばすだけです。変数セルの範囲も広げてソルバーを回します。ただし変数が増えるほど収束が不安定になるので、事前に相関を確認して似た変数を減らしておくと確実です。変数選択の考え方は重回帰分析と同じです。

まとめ

  • 件数データに直線の回帰を当てると予測が負に突き抜ける。今回の例では0.5 m/minで−5.07個
  • ポアソン回帰は対数リンクで予測を正に保ち、ばらつきが平均に比例する性質も織り込む
  • Excelではソルバーで Σ(y·LN(μ)−μ) を最大化すれば係数が求まる
  • 係数は指数に戻して発生率比で読む。今回は0.1 m/minあたり1.33倍
  • ピアソンのカイ二乗を自由度で割った値が1前後なら前提は妥当。2超なら負の二項回帰を検討する

まとめると、目的変数が件数ならポアソン回帰、2値ならロジスティック回帰、連続量なら通常の回帰、という使い分けです。そして係数を報告するときは必ず指数に戻してください。対数のままの数字は現場で解釈できません。

この記事の前提となる分布の性質は二項分布・ポアソン分布の求め方と使い分け、通常の回帰分析の手順はエクセル分析ツールを使った回帰分析で解説しています。あわせてご確認ください。

タイトルとURLをコピーしました