2026年 3月 13日 金曜日

Top 5 This Week

Related Posts

8.1 一般化加法モデル(GAM)


一般化加法モデル(GAM: Generalized Additive Model)は、目的変数と説明変数の間に厳密な「直線関係(線形性)」を仮定せず、データに合わせた滑らかな曲線で関係性を捉えることができる柔軟なモデリング手法です。1986年にTrevor HastieとRobert Tibshiraniによって提唱されて以来、統計モデリングと機械学習の「橋渡し」的な役割を担う重要な手法として、多くのデータサイエンティストに活用されています。

第7章で解説した一般化線形モデル(GLM)は非常に強力なツールですが、「説明変数が1単位増えれば、対数オッズ(または対数平均など)が常に一定量変化する」という線形性を前提としています。しかし、現実のビジネスデータや自然科学のデータにおいて、関係性が常に直線的であることは稀です。

例えば、「気温と電力需要」の関係を考えてみましょう。気温が低すぎれば暖房需要で電力は増加し、気温が適温(20度前後)になると需要は底を打ち、気温が高くなると今度は冷房需要で再び急激に増加します。このようなU字型、あるいはさらに複雑な非線形関係(例:年齢と収入、時間帯とウェブサイトのトラフィックなど)をGLMで捉えるには、分析者が手動で多項式($x^2, x^3$)を追加したり、対数変換を試行錯誤したりする必要がありました。GAMは、このような複雑な非線形データに対して、アルゴリズム自身が最適な曲線を学習するという強力なアプローチを提供します。

1. GLMからGAMへの数理的な拡張

GAMは、GLMの線形予測子の部分を、各説明変数に対する「滑らかな関数(平滑化関数:Smoothing function)」の足し合わせ(加法)に置き換えたモデルです。基本的な構造はGLMを踏襲しているため、正規分布、二項分布、ポアソン分布など、様々な確率分布に対応できる一般化の性質をそのまま持っています。

GLMの基本式(復習)

リンク関数を $g(\cdot)$、目的変数 $Y$ の期待値を $\mu = E(Y)$ とすると、GLMの線形予測子は以下のように表されます。

$$
g(\mu) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_p x_p
$$

GAMの基本式

GAMでは、各係数と変数の積 $\beta_j x_j$ の部分が、変数ごとの任意の非線形な平滑化関数 $f_j(x_j)$ に拡張されます。

$$
g(\mu) = \beta_0 + f_1(x_1) + f_2(x_2) + \dots + f_p(x_p)
$$

ここで重要なのは、モデルが依然として「加法的(Additive)」であるという点です。ディープラーニングやランダムフォレストなどの純粋な機械学習モデルは、変数間の複雑な絡み合い(高次の交互作用)を自動で学習する反面、特定の変数が予測値にどう影響したのかを解釈するのが困難な「ブラックボックス」になりがちです。一方GAMは、各変数 $x_j$ の影響 $f_j(x_j)$ を独立して足し合わせる構造を維持しているため、「他の変数を固定したとき、$x_1$ が変化すると $\mu$ がどう変動するか」を視覚的かつ定量的に解釈できるという、解釈性(Interpretability)の高さが最大のメリットです。

2. 平滑化関数(スプライン)の数学的背景

GAMの中核をなすのが、曲線を描くための $f(x)$ の推定です。代表的な手法として「スプライン関数(Spline functions)」が用いられます。スプラインとは、元々は製図などで滑らかな曲線を引くために使われた「しなやかな定規」のことです。

基底関数(Basis Functions)による表現

GAMでは、未知の関数 $f(x)$ を、あらかじめ定義された既知の関数(基底関数)$b_k(x)$ の線形結合として表現します。

$$
f(x) = \sum_{k=1}^{K} \beta_k b_k(x)
$$

ここで、$K$ は基底関数の数、$\beta_k$ はデータから推定されるパラメータ(重み)です。このように変換することで、元々は非線形な関数の推定問題を、多数のパラメータ $\beta_k$ を求める「線形モデルの推定問題」に帰着させることができます。

ノット(Knots)とスプラインの種類

スプラインは、データの定義域をいくつかの区間に分割し、それぞれの区間を多項式(主に3次多項式)で近似し、区間のつなぎ目でも滑らかに接続されるように制約を加えたものです。この区間の境界点を「ノット(Knot)」と呼びます。

  • Bスプライン(B-splines):局所的に定義された多項式を繋ぎ合わせる計算効率の良い手法。ノットの位置と数が重要になります。
  • 自然3次スプライン(Natural Cubic Splines):両端の境界の外側では関数が直線になるように制約を加えることで、データ端での予測の暴れ(分散の増大)を防ぎます。
  • 薄板回帰スプライン(Thin Plate Regression Splines):ノットの位置を分析者が明示的に指定しなくても、データ全体から最適な基底を自動的に構成する手法。現在、Rの mgcv パッケージなどでデフォルトとして広く使われています。

3. パラメータ推定と過学習の制御

スプラインの基底関数を増やせば増やすほど(ノットを多くするほど)、モデルはどんなに複雑なデータにも完全にフィットするようになります。しかし、それではデータに含まれるノイズ(偶然の誤差)まで拾ってしまい、未知のデータに対する予測精度が落ちる「過学習(オーバーフィッティング)」を起こしてしまいます。GAMの真髄は、この柔軟性と過学習のトレードオフを自動で制御するメカニズムにあります。

ペナルティ付き最尤法(Penalized Maximum Likelihood)

GAMの学習では、通常の尤度(データへの当てはまりの良さ)を最大化するだけでなく、「関数がどれくらいグネグネ曲がっているか(曲率)」に対してペナルティを科す目的関数を最適化します。

$$
\text{最小化する目的関数} = -\text{対数尤度} + \lambda \int [f”(x)]^2 dx
$$

ここで、$\int [f”(x)]^2 dx$ は関数の2階微分の二乗積分であり、曲線が急激に曲がるほど大きな値になります。$\lambda$ (ラムダ)は「平滑化パラメータ(Smoothing parameter)」と呼ばれ、データへの当てはまりと曲線の滑らかさのバランスを決定する超重要なしきい値です。

  • $\lambda \to \infty$ の場合:曲線は完全に真っ直ぐな直線(通常のGLM)になります。
  • $\lambda \to 0$ の場合:ペナルティがなくなり、各データ点を縫うように通るギザギザの過学習モデルになります。

最適な $\lambda$ の決定(GCVとREML)

この $\lambda$ を人間が手動で決めるのは困難なため、データから自動的に最適な値を見つけ出す手法が用いられます。

  • GCV(一般化交差検証:Generalized Cross Validation):データを分割してテストする交差検証(Cross Validation)を、数学的な近似によって高速に計算できるようにした指標。GCVスコアが最小になる $\lambda$ を選びます。
  • REML(制限付き最尤法:Restricted Maximum Likelihood):近年より推奨されている手法で、分散成分の推定におけるバイアスを補正し、GCVよりも過学習しにくい(より滑らかな曲線を好む)安定した結果をもたらします。

4. モデルの評価指標と解釈

GAMを構築した後は、そのモデルが適切かどうかを評価し、結果をビジネスや研究の現場で解釈する必要があります。GAM特有の指標を理解しましょう。

有効自由度(EDF: Effective Degrees of Freedom)

平滑化関数 $f(x)$ が「どれくらい非線形か(どれくらい曲がっているか)」を表す実数の指標です。通常の線形回帰では1つの変数につき自由度は1ですが、GAMではペナルティによって自由度が連続的に変化します。

  • $\text{EDF} \approx 1$:その変数は目的変数とほぼ直線の関係にあります(線形回帰と同じ)。
  • $\text{EDF} = 2 \sim 3$:緩やかなカーブ(2次関数や3次関数のような形状)を描いています。
  • $\text{EDF} > 5$:非常に複雑でグネグネとした強い非線形関係を持っています。

EDFを確認することで、「この変数はわざわざ複雑なGAMでモデリングする必要があったのか、それとも単純なGLMで十分だったのか」を客観的に判断できます。

偏依存プロット(Partial Dependence Plot / Term Plot)

GAMの解釈において最も強力な武器が視覚化です。各変数の平滑化関数 $f_j(x_j)$ をグラフ化することで、「他の変数の影響を取り除いた上で、その変数が単独で目的変数にどう影響しているか」を一目で理解できます。横軸に変数の値、縦軸に関数の効果(対数オッズ等の変化量)をとり、通常は95%信頼区間のバンドと共に描画されます。これにより、「広告費が100万円を超えると、それ以上の投資に対するコンバージョン率の伸びが急激に鈍化する」といった具体的なインサイト(限界効用逓減の法則など)を直感的に説明可能になります。

Concurvity(非線形な多重共線性)

線形モデル(重回帰など)における多重共線性のGAM版です。説明変数間に強い「非線形な相関」がある場合、どの変数が目的変数に寄与しているのかをモデルが区別できなくなり、曲線の形状や信頼区間が不安定になります。分析時にはConcurvityの指標をチェックし、問題がある場合は変数の取捨選択を行う必要があります。

5. 高度なモデリング:交互作用の導入

GAMは基本的に加法モデルですが、2つ以上の変数が組み合わさって初めて効果を発揮する「交互作用(Interaction)」を組み込むことも可能です。例えば「緯度」と「経度」から「空間的な気温の分布」を予測する場合、これらを独立して足し合わせるのではなく、2次元の曲面としてモデリングする必要があります。

まとめ

一般化加法モデル(GAM)は、データサイエンスのツールキットにおいて非常にバランスの取れた手法です。

  • 高い予測精度:スプライン関数とペナルティ付き最尤法により、複雑な非線形関係を自動で、かつ過学習を抑えながら学習します。
  • 圧倒的な解釈性:加法的な構造を保っているため、ブラックボックス化せず、偏依存プロットを用いて各変数の影響をステークホルダーに明瞭に説明できます。
  • 幅広い適用範囲:GLMの拡張であるため、正規分布だけでなく、二値データ(ロジスティックGAM)やカウントデータ(ポアソンGAM)など、あらゆるデータ形式に適用可能です。

「予測精度は上げたいが、なぜその予測になったのかという理由(Why)も厳密に説明しなければならない」という、実務で最もよく遭遇する課題に対して、GAMは最良の解決策の一つとなります。

Popular Articles