Generalized Linear Model(一般化線形モデル)

GLM タブでは、一般化線形モデルによる回帰分析を実行できます。GLM は応答変数の分布(ファミリー)、線形予測子 η=Xβ+offset\eta = X\beta + \text{offset}、リンク関数 g(μ)=ηg(\mu) = \eta の3要素で定義され、OLS を指数型分布族に拡張した枠組みです。オフセット項が未指定の場合は η=Xβ\eta = X\beta です。数理的な背景はGLM の基礎を参照してください。

Linear Regression タブで実行する OLS 回帰は、GLM の特殊ケース(Gaussian ファミリー + Identity リンク)に相当します。OLS の詳細は線形回帰分析を参照してください。

MIDAS で選択可能な分布ファミリーとリンク関数を以下に示します。

分布ファミリーの選び方

ファミリーUI 表記分散関数 V(μ)V(\mu)用途
GaussianGaussian (Normal)11連続値の応答変数。通常の線形回帰と同等
BinomialBinomial (Logistic)μ(1μ)\mu(1 - \mu)二値データ(0/1)や割合データ。ロジスティック回帰
PoissonPoisson (Count)μ\muカウントデータ(イベントの発生回数など)。平均と分散が等しいと仮定
GammaGamma (Positive Continuous)μ2\mu^2正の連続値で右に裾が長い分布(待ち時間、費用など)
Negative BinomialNegative Binomial (Overdispersed Count)μ+μ2/θ\mu + \mu^2/\theta過分散のあるカウントデータ。Poisson の等分散仮定 Var(Y)=μ\operatorname{Var}(Y) = \mu が成り立たない場合に使用

ファミリーの選択は応答変数の性質で決まります。二値なら Binomial、非負整数なら Poisson(または過分散があれば Negative Binomial)、正の連続値で分散が平均に比例するなら Gamma が自然な選択です。

Binomial ファミリーでは、個体ごとの0/1データ(Binary)に加えて、成功数/試行数の集約データ(Grouped)にも対応しています。詳細は 用量反応データの Grouped Binomial GLM を参照してください。

リンク関数は線形予測子 η\eta と応答変数の期待値 μ\mu を結びつける単調関数 η=g(μ)\eta = g(\mu) です。Negative Binomial を除き、各ファミリーの正準リンク関数をデフォルトのリンク関数としています。Negative Binomial の正準リンクは log(μ/(μ+θ))\log(\mu/(\mu+\theta)) ですが、θ\theta を推定するとリンク関数自体が反復ごとに変わり推定が不安定になるため、実用上は Log リンクをデフォルトとしています。

ファミリーデフォルトリンク利用可能なリンク
GaussianIdentityIdentity, Log
BinomialLogitLogit, Probit
PoissonLogLog, Identity
GammaInverseInverse, Log, Identity
Negative BinomialLogLog
リンク関数数式説明
Identityη=μ\eta = \mu変換なし。Gaussian の正準リンク
Logitη=log ⁣(μ/(1μ))\eta = \log\!\bigl(\mu / (1 - \mu)\bigr)対数オッズ変換。Binomial の正準リンク
Logη=log(μ)\eta = \log(\mu)対数変換。Poisson の正準リンク。μ>0\mu > 0 を保証
Inverseη=1/μ\eta = 1/\mu逆数変換。Gamma の正準リンク
Probitη=Φ1(μ)\eta = \Phi^{-1}(\mu)標準正規分布の逆累積分布関数。潜在正規変数モデルに対応

正準リンクは最尤推定の安定性に優れています。非正準リンクは係数の解釈しやすさから選ばれることがありますが、収束が不安定になる場合があります。正準リンクの数理的な性質はGLM の基礎を参照してください。

基本的な使い方

以下の例では Auto MPG データセットを使用しています。

GLM を開く

メニューバーから Analysis > Generalized Linear Model (GLM)... を選択します。

変数の設定

Dataset で分析対象のデータセットを選択します。

Dependent Variable (Y) で目的変数を選択します。数値型(int64, float64)および boolean 型の列が選択できます。boolean 型は自動的に true=1, false=0 に変換されます。Binomial ファミリーの場合は0/1または boolean の列を使用します。

Independent Variables (X) で説明変数を選択します。チェックボックスで複数の変数を選択できます。カテゴリ尺度(名義・順序)や日付型の列は選択できません。カテゴリ変数を使用する場合は、事前に Dummy Coding タブで数値変換が必要です(注意事項を参照)。

Distribution Family で分布ファミリーを選択します。ファミリーを変更すると、リンク関数がそのファミリーのデフォルトに自動で切り替わります。

Link Function でリンク関数を選択します。選択可能なリンク関数はファミリーによって異なります。

Include intercept で切片項の有無を設定します。デフォルトでオンです。

GLM フォーム

Negative Binomial の追加設定

Negative Binomial ファミリーを選択した場合、形状パラメータ θ\theta の設定オプションが表示されます。Negative Binomial 分布の分散は Var(Y)=μ+μ2/θ\operatorname{Var}(Y) = \mu + \mu^2/\theta であり、θ\theta が過分散の程度を制御します。

  • 自動推定(デフォルト): プロファイル尤度法で θ\theta を推定します。外側ループで θ\theta を最適化し、内側ループで IRLS により β\beta を推定するネストされた最適化です
  • 手動指定: Manually specify θ チェックボックスをオンにして値を入力します(0.1〜100、デフォルト1.0)。感度分析やモデル比較に有用です

θ\theta の解釈:

  • θ\theta \to \infty: Poisson 分布に収束(Var(Y)μ\operatorname{Var}(Y) \to \mu
  • θ10100\theta \approx 10\text{--}100: 中程度の過分散
  • θ110\theta \approx 1\text{--}10: 強い過分散
  • θ<1\theta < 1: 極端な過分散

オフセット変数

Offset Variable で、線形予測子に固定係数 1 で加えるオフセット項を設定できます。オフセットは推定対象のパラメータではなく、各観測で既知の値です。

典型的な使用例はポアソン回帰でのレートモデリングです。イベントのカウント数を応答変数とし、観測期間の対数 log(exposure)\log(\text{exposure}) をオフセットに設定すると、線形予測子は

ηi=Xiβ+log(exposurei)\eta_i = X_i\beta + \log(\text{exposure}_i)

となり、カウントではなくレート μi/exposurei\mu_i / \text{exposure}_i をモデリングします。exp(β)\exp(\beta) はレート比として解釈できます。

オフセットを設定すると null deviance にも影響します。null model は切片 + オフセットのモデルになるため、オフセットなしの場合と null deviance の値が異なります。

オフセット付きモデルを保存して予測を実行する場合、予測データセットにも同じ名前のオフセット列が必要です。予測時の線形予測子は η^i=Xiβ^+offseti\hat\eta_i = X_i\hat\beta + \text{offset}_i として計算されます。

詳細オプション

  • Max Iterations: IRLS の最大反復回数(デフォルト: 100)
  • Convergence Tolerance: 係数の最大絶対変化量に基づく収束判定の閾値(デフォルト: 1e-6)

分析の実行

設定が完了したら、Run GLM ボタンをクリックします。

パラメータ推定には IRLS(Iteratively Reweighted Least Squares)を使用します(アルゴリズムの詳細)。進捗ダイアログに各反復の逸脱度が表示されるため、収束の様子を確認できます。Cancel ボタンで中止でき、収束履歴は Save as Dataset でデータセットとして保存できます。

結果の見方

GLM 結果

Model Summary

指標説明
ConvergenceIRLS が収束したかどうか(反復回数つき)
Deviance残差逸脱度 D=2[(y;y)(y;μ^)]D = 2\bigl[\ell(y;\,y) - \ell(y;\,\hat\mu)\bigr]。飽和モデルからの対数尤度の差に基づく適合度指標
AIC赤池情報量規準 AIC=2+2k\text{AIC} = -2\ell + 2kkk は推定パラメータの総数。同一ファミリー内でのモデル比較に使用します。ファミリーが異なるモデル間の比較は対数尤度の定数項の扱いが異なるため推奨しません。値が小さいほど良い
Shape Parameter (θ\theta)Negative Binomial の場合のみ表示。θ\theta は過分散の程度を制御し、小さいほど過分散が強く、θ\theta \to \infty で Poisson に収束します(Negative Binomial の追加設定を参照)。推定値か手動指定かも記載されます

AIC の kk は回帰係数(切片を含む)の数です。Negative Binomial で θ\theta を自動推定した場合は θ\thetakk に含めます(k=回帰係数の数+1k = \text{回帰係数の数} + 1)。手動指定した場合は推定パラメータではないため含めません。θ\theta 推定モデルと θ\theta 固定モデルの AIC を比較する際はこの差に注意してください。

Coefficients(係数テーブル)

説明
Variable変数名(切片は "(Intercept)")
Estimate回帰係数 β^\hat\beta の推定値(リンク関数のスケール)
Std. ErrorWald 標準誤差 ϕ^diag((XW^X)1)\sqrt{\hat\phi \cdot \operatorname{diag}\bigl((X'\hat WX)^{-1}\bigr)}ϕ^\hat\phi は分散パラメータで、Poisson、Binomial、Negative Binomial(θ\theta 推定時)では ϕ^=1\hat\phi = 1 です
z value / t value検定統計量 β^/SE(β^)\hat\beta / \operatorname{SE}(\hat\beta)。分散パラメータ ϕ\phi をデータから推定するファミリー(Gaussian, Gamma, Negative Binomial の θ\theta 固定時)では t(np)t(n-p) 分布、ϕ=1\phi = 1 のファミリー(Poisson, Binomial, Negative Binomial の θ\theta 推定時)では標準正規分布を参照分布として使う。列ヘッダはそれぞれ "t value", "z value" と表示される。Gaussian + Identity を除き、検定統計量が参照分布に従うのは有限標本では近似である
Pr(>|z|) / Pr(>|t|)両側 p 値。dispersion 推定ファミリーでは tt 分布、それ以外では標準正規分布に基づく
Lower N% / Upper N%信頼区間 β^±c×SE(β^)\hat\beta \pm c \times \operatorname{SE}(\hat\beta)。N は選択した信頼水準です。dispersion 推定ファミリーでは c=t1α/2,npc = t_{1-\alpha/2,\, n-p}、それ以外では c=z1α/2c = z_{1-\alpha/2}(95% の場合 z0.975=1.96z_{0.975} = 1.96

Gaussian + Identity の場合、誤差が正規分布に従えば、検定統計量は正確に t(np)t(n-p) に従います。それ以外の dispersion 推定ファミリー(Gaussian の非 identity リンク、Gamma、Negative Binomial の θ\theta 固定時)では、ϕ\phi の推定に伴う追加の不確実性を取り込むために tt 分布で近似します。ϕ=1\phi = 1 のファミリー(Poisson、Binomial、Negative Binomial の θ\theta 推定時)では Wald 検定は標準正規への漸近近似です。どちらの近似も有限標本では厳密ではなく、標本サイズが大きくなるほど精度が上がります。境界的な有意水準(p 値が0.05付近)の結果は慎重に解釈してください。

Negative Binomial の θ\theta 推定時に ϕ=1\phi = 1 とするのは、過分散が分散関数の μ2/θ\mu^2/\theta 項で既にモデル化されているためです。ϕ\phi でさらに過分散を吸収させる必要がないため、標準誤差は ϕ=1\phi = 1 で計算します。θ\theta 固定時は、指定した θ\theta がデータの過分散を十分に捉えていない可能性があるため ϕ^=Pearson χ2/(np)\hat\phi = \text{Pearson }\chi^2/(n-p) で推定します。R の MASS::glm.nb と同じ扱いです。

係数の解釈

係数はリンク関数のスケールで推定されるため、解釈にはリンク関数の逆変換を考慮する必要があります。

  • Identity リンク: β\betaYY の期待値の変化量そのもの(OLS と同じ解釈)
  • Logit リンク: β\beta は説明変数を1単位変化させたときの対数オッズの変化量。exp(β)\exp(\beta) がオッズ比
  • Log リンク: β\betalog(μ)\log(\mu) の変化量。exp(β)\exp(\beta)YY の期待値の乗法的変化(rate ratio)
  • Inverse / Probit リンク: 直接的な解釈が困難なため、予測値を通じた解釈が実用的

係数テーブルは Save as Dataset ボタンでデータセットとして保存し、CSV にエクスポートできます。保存には先にモデルを Save Model で保存しておく必要があります。係数データセットを具体的なモデルに紐付けることで、モデル削除時に係数データセットとレポート要素も一緒に削除され、再学習時にデータセットの内容が新しい fit の結果で更新されます。

保存されるデータセットでは、列名が画面の表記と異なります。z value / t valueTest StatisticPr(>|z|) / Pr(>|t|)P-value として保存されます。参照分布を示す Distribution 列(値は normal または t)と自由度を示す DF 列も追加されます。Distributionnormal の場合、DF は空になります。

モデルの保存と診断

モデルの保存

Model Name フィールドにモデル名を入力し、Save Model をクリックします。モデル名はデフォルトで「GLM: Y ~ X1 + X2 (Family, link)」の形式で自動生成されます。

同じ設定(データセット、目的変数、説明変数、ファミリー、リンク関数)の既存モデルが存在する場合、上書きの確認ダイアログが表示されます。

モデル保存時に生成されるデータ

モデルを保存すると、元のデータセットに診断統計量の列を追加した派生データセットが自動生成されます。

列名数式での記号内容
fitted_valuesμ^i=g1(xiβ^)\hat\mu_i = g^{-1}(x_i'\hat\beta)予測値(応答変数のスケール)
deviance_residualsdid_iDeviance 残差
pearson_residualsri=(yiμ^i)/V(μ^i)/wir_i = (y_i - \hat\mu_i) / \sqrt{V(\hat\mu_i) / w_i}Pearson 残差。wiw_i は prior weight で、Binary データでは wi=1w_i = 1
standardized_residualsri=di/ϕ(1hi)r_i^* = d_i / \sqrt{\phi(1 - h_i)}標準化残差(Deviance ベース)
leveragehih_iてこ比(Hat 行列の対角要素)
cooks_distanceDiD_iCook's Distance

標準化残差と Cook's Distance の計算に使う ϕ\phi はファミリーごとに異なります。Poisson、Binomial、Negative Binomial では ϕ=1\phi = 1 です。これらのファミリーでは分散関数 V(μ)V(\mu) が理論分散を規定しているため、診断統計量に過分散を吸収させません。Negative Binomial では θ\theta の推定・固定によらず ϕ=1\phi = 1 です。Gaussian では ϕ=Deviance/(np)\phi = \text{Deviance}/(n - p)、Gamma では ϕ=Pearson χ2/(np)\phi = \text{Pearson }\chi^2/(n-p) を使います。R の stats::glm および MASS::glm.nb と同じ扱いです。なお、Negative Binomial の θ\theta 固定時に係数テーブルの標準誤差で使う ϕ^=Pearson χ2/(np)\hat\phi = \text{Pearson }\chi^2/(n-p) とは異なります。

診断と詳細

モデル保存後、2つのボタンが表示されます。

  • View Model Details - モデルの詳細情報を表示する Model Detail タブを開きます
  • View Diagnostics - 残差診断プロットを表示する GLM Diagnostics タブを開きます

診断プロット

View Diagnostics をクリックすると、4つの診断プロットが表示されます。OLS と同様に、線形性・等分散性・外れ値の影響を確認します。

GLM 診断プロット

残差タイプの選択

診断プロットの残差タイプを Deviance(デフォルト)または Pearson から選択できます。切り替えると4つのプロット全てが即座に更新されます。

  • Deviance Residuals: di=sign(yiμ^i)×2[(yi;yi)(yi;μ^i)]d_i = \operatorname{sign}(y_i - \hat\mu_i) \times \sqrt{2\bigl[\ell(y_i;\,y_i) - \ell(y_i;\,\hat\mu_i)\bigr]}(yi;yi)\ell(y_i; y_i) は飽和モデル(μi=yi\mu_i = y_i)の対数尤度です。尤度に基づく残差で、MIDAS のデフォルト
  • Pearson Residuals: ri=(yiμ^i)/V(μ^i)/wir_i = (y_i - \hat\mu_i) / \sqrt{V(\hat\mu_i) / w_i}wiw_i は prior weight で、Binary データでは wi=1w_i = 1、Grouped Binomial では wiw_i は試行数です。観測値と期待値の差を分散関数で標準化した残差で、過分散の診断に有用です。Pearson χ2\chi^2 統計量 =ri2= \sum r_i^2 が分散パラメータ ϕ\phi の推定に使われます

Residuals vs Fitted(残差 vs 予測値)

横軸に予測値 μ^\hat\mu、縦軸に残差をプロットします。モデルが適切であれば、残差はゼロの周囲にランダムに散らばります。

  • 曲線的パターン: リンク関数の選択が不適切、または説明変数の非線形効果が欠落している可能性
  • 漏斗状パターン: 分散関数の選択が不適切な可能性(例: Poisson の Var=μ\operatorname{Var} = \mu が実データの分散と合わない)

Normal Q-Q Plot(正規 Q-Q プロット)

Gaussian ファミリーの場合のみ表示されます。 標準化残差の分位点を理論正規分位点に対してプロットし、正規性を確認します。

Gaussian 以外のファミリーでは、Deviance 残差が漸近的に正規分布に近づく保証はありません(特に Binomial の二値データでは成り立ちません)。そのため、非 Gaussian ファミリーではこのプロットの代わりに「This plot is only shown for Gaussian family GLMs.」と表示されます。

Scale-Location(尺度-位置プロット)

標準化残差を rir_i^* として、横軸に予測値、縦軸に ri\sqrt{|r_i^*|} をプロットします。分散が一定(等分散)であれば、点は水平方向に均等に散らばります。

右上がりの傾向がある場合、分散が予測値に依存していることを示唆します。GLM では分散関数 V(μ)V(\mu) によって平均と分散の関係を明示的にモデル化しているため、このプロットでパターンが見られる場合は、選択したファミリーの分散関数がデータに合っていない可能性があります。

Residuals vs Leverage(残差 vs てこ比)

横軸にてこ比 hi=diag(H)ih_i = \operatorname{diag}(H)_i(Hat 行列の対角要素)、縦軸に標準化残差をプロットします。Cook (1977) の Cook's Distance の等高線(D=0.5D = 0.5: オレンジ破線、D=1.0D = 1.0: 赤破線)が表示されます。

  • てこ比(Leverage): 説明変数空間で観測値が他からどれだけ離れているかを示す。hi>2p/nh_i > 2p/npp は変数の数、nn は観測数)が高レバレッジの目安
  • Cook's Distance: Di=ri2phi1hiD_i = \dfrac{r_i^{*2}}{p} \cdot \dfrac{h_i}{1 - h_i}Di>0.5D_i > 0.5 は穏健な基準で注意を要し、Di>1.0D_i > 1.0 は強い影響を示す

等高線の外側に位置する観測値は、その1点を除外するだけでモデルの推定結果が大きく変わる可能性があります。

ポイントの選択

各プロット上でデータポイントをクリックまたは矩形選択すると、該当する観測値の詳細(予測値、残差、てこ比、Cook's Distance 等)がプロット下部のテーブルに表示されます。選択状態は4つのプロット間で同期されます。

Deviance の適合度

Poisson および Binomial ファミリーでは、モデルが正しく指定されているとき、残差 Deviance は漸近的に χ2(np)\chi^2(n - p) 分布に従います。Deviance Goodness-of-Fit チャートは χ2\chi^2 密度曲線と観測された Deviance の位置を表示し、Deviance が分布の中心付近にあるか、裾にあるかを視覚的に判断できます。

Deviance が右裾に位置する場合、モデルがデータの変動を十分に捉えていない可能性があります。重要な説明変数が欠けていないか、分布の仮定が適切かを検討してください。Poisson データの場合、Negative Binomial ファミリーへの切り替えが有効な場合があります。理論的背景はGLM の基礎を参照してください。

Binomial モデルで Binary データ(試行数 = 1)を扱う場合、χ2\chi^2 近似の前提条件が満たされないため、この検定は信頼できません。その場合は他の診断プロットでモデルの適合度を評価してください。

予測

保存した GLM モデルを使って、新しいデータに対する予測を実行できます。

GLM 予測

予測の実行方法

  1. View Model Details で Model Detail タブを開く
  2. Make Predictions ボタンをクリックして GLM Prediction タブを開く
  3. 予測に使用するデータセットを選択する(説明変数の列名が一致するデータセットのみ選択可能)
  4. 出力設定を行う:
    • Output Dataset Name: 予測結果のデータセット名
    • Include original data: 元データの列を結果に含めるかどうか
    • Confidence Interval Levels: 信頼区間の水準(90%, 95%, 99%)
    • Prediction Interval Levels: 予測区間の水準(90%, 95%, 99%)
  5. Run Prediction で予測を実行する

予測結果

予測結果はデータセットとして保存され、以下を含みます:

  • 予測値 μ^=g1(Xβ^)\hat\mu = g^{-1}(X\hat\beta)(応答変数のスケール)
  • 平均応答 E[YX]E[Y \mid X] の信頼区間。与えられた説明変数の値における母平均の推定の不確かさを表します
  • 新規観測値 YnewY_\text{new} の予測区間。個々の観測値のばらつきも含みます

区間の参照分布

分散パラメータ ϕ\phi をデータから推定するファミリー(Gaussian の全リンク、Gamma、Negative Binomial の θ\theta 固定時)では、信頼区間と予測区間に自由度 npn - ptt 分布を使用します。nn は学習データの観測数、pp はインターセプトを含む推定パラメータの総数です。Gaussian + identity link では、誤差が正規分布に従うという仮定のもとで有限標本で正確な結果です。それ以外の dispersion 推定ファミリーでは、ϕ\phi の推定に伴う不確実性を tt 分布が反映します。

ϕ=1\phi = 1 のファミリー(Poisson、Binomial、Negative Binomial の θ\theta 推定時)では、標準正規分布(zz)を参照分布として使用します。これは漸近近似であり、標本サイズが大きくなるほど精度が向上します。

参照分布と自由度は Prediction タブに表示されます。

予測区間の計算方法

予測区間の計算方法はファミリーに依存します。Gaussian + identity link では推定不確実性を含む解析的公式を使用し、それ以外ではプラグイン法を使用します。プラグイン法はパラメータ推定の不確実性を含まないため、小標本や外挿点で被覆確率が低下することがあります。各ファミリーの公式はGLM の基礎を参照してください。

予測データセットに目的変数が含まれている場合、精度指標(R², RMSE, MAE)が自動的に計算・表示されます。

注意事項

カテゴリ変数の使用

GLM では数値型の変数のみ使用できます。カテゴリ尺度(名義・順序)や日付/日時型の変数を説明変数として使用するには、Dummy Coding タブで数値のダミー変数に変換してから分析を行います。

欠損値・無効値の自動除外

欠損値(null)、非数値、無限大を含む行は分析から自動的に除外されます。除外された行数は結果の Model Summary に表示されます。

収束の問題

IRLS が収束しない場合は以下を確認してください:

  • 反復回数: Max Iterations を増やす(例: 100 → 500)
  • 許容誤差: Convergence Tolerance を緩める(例: 1e-6 → 1e-4)
  • スケーリング: 説明変数の桁が大きく異なる場合、数値的不安定性の原因になります。標準化を検討してください
  • 完全分離: ロジスティック回帰で応答変数を完全に分離できる説明変数が存在する場合、最尤推定値が有限値に収束しません(Albert & Anderson, 1984)。該当する変数の除外やデータの確認が必要です
  • ゼロ過剰: カウントデータにゼロが極端に多い場合、Poisson や Negative Binomial では適合が困難な場合があります

参考文献