コンテンツにスキップ

第13回 PLS②:変数重要度と交差検証

本日の到達目標

  • VIPスコアの定義と変数重要度としての解釈ができる
  • k分割交差検証のアルゴリズムと使い方を説明できる
  • 解釈可能性(VIPスコア)と汎化性能(CV-RMSEP)のバランスの取り方を説明できる
  • 発展:VIP の二乗和が \(p\) になることを導き、「VIP > 1」が平均との比較にすぎないことを説明できる

1. VIPスコア(Variable Importance in Projection)

1.1 定義

PLS において各説明変数 \(x_j\) が目的変数 \(y\) の予測にどれだけ貢献しているかを測る指標。

数式:

\[VIP_j = \sqrt{p \cdot \frac{\sum_{a=1}^{A} \text{SS}_a \cdot w_{aj}^2}{\sum_{a=1}^{A} \text{SS}_a}}\]
  • \(p\):説明変数の数
  • \(A\):PLSの成分数
  • \(\text{SS}_a\):第 \(a\) 成分が \(y\) の分散の何%を説明するか(= \(\mathbf{q}_a^T \mathbf{q}_a \cdot \mathbf{t}_a^T \mathbf{t}_a\))
  • \(w_{aj}\):第 \(a\) 成分における変数 \(x_j\) の重み(X-ウェイト)

直観: - \(w_{aj}\) が大きい = 変数 \(x_j\) が第 \(a\) 成分に強く貢献 - \(\text{SS}_a\) が大きい = 第 \(a\) 成分が \(y\) の予測に重要 - 両方大きい変数 = VIPスコアが高い

1.2 VIPスコアの解釈

VIP値 解釈
> 1 予測に重要な変数(保持推奨)
0.8〜1 適度に貢献(判断が必要)
< 0.8 貢献が小さい(除外候補)

注意:全変数のVIPスコアの二乗和 = \(p\)(変数数)になるよう正規化されているため、平均VIP = 1。

導出①:なぜ二乗和が \(p\) になるのか、そして「VIP > 1」の本当の意味

定義式を \(j\) について足し合わせるだけで確かめられます。

\[\sum_{j=1}^p VIP_j^2 = \sum_{j=1}^p p \cdot \frac{\sum_a \text{SS}_a w_{aj}^2}{\sum_a \text{SS}_a} = \frac{p}{\sum_a \text{SS}_a}\sum_{a=1}^A \text{SS}_a \left(\sum_{j=1}^p w_{aj}^2\right)\]

和の順序を入れ替えました。ここで各成分の X-ウェイトベクトルは単位長に正規化されています(第12回の導出①で \(\mathbf{w} = \mathbf{X}^T\mathbf{y}/\|\mathbf{X}^T\mathbf{y}\|\) としたとおり)。つまり

\[\sum_{j=1}^p w_{aj}^2 = \|\mathbf{w}_a\|^2 = 1\]

これを代入すると

\[\sum_{j=1}^p VIP_j^2 = \frac{p}{\sum_a \text{SS}_a}\sum_a \text{SS}_a = p\]

定義の頭に付いている \(p\) は、この和がちょうど \(p\) になるように置かれた係数でした。したがって \(VIP_j^2\) の平均は 1 です。

数値で確かめる:\(p = 5\)、\(A = 3\)、\(\text{SS} = (5, 3, 1)\) とし、各成分の重みベクトルを単位長にして計算すると

\[VIP = (0.3485,\ 1.1911,\ 1.2950,\ 0.5518,\ 1.2159)\]

二乗和は \(5.000000\)、すなわち \(p\) に一致しました。

ここから「VIP > 1」の意味が分かります。 これは「重要である」という絶対的な水準ではなく、平均より上か下かという相対的な位置にすぎません。二乗和が \(p\) に固定されている以上、どんなデータでも必ず 1 を超える変数と下回る変数の両方が出ます(全変数が完全に同等でない限り)。

だから次の2つはどちらも起こりえます。

  • 全変数が予測に効いていても、半分は VIP < 1 になる
  • どの変数もほとんど効いていなくても、相対的に上位の変数は VIP > 1 になる

VIP は変数を順位付ける道具であって、効果の有無を判定する道具ではありません。本文の「> 1 で保持推奨」は実務上の目安として使いますが、その根拠は平均との比較だけです。

使った数学:和の順序交換、単位ベクトルの成分の二乗和が1であること。

1.3 VIPスコアの可視化

変数 ↑
     | ━━━━━━━━━━━━━━━━━ (VIP > 1 の基準線)
MA7日 |███████████████████  2.1
MA30日|██████████████████   1.9
ラグ1 |████████████████     1.7
頻度30|████████             1.3
気温  |████                 0.8  ← 基準以下
降雨  |███                  0.6
      └──────────────────→ VIP スコア

時間窓特徴量での解釈:移動平均系がVIPが高ければ「売上水準の自己相関が強い」ことを示す。


2. 交差検証(Cross-Validation)

2.1 なぜ交差検証が必要か

問題:訓練データへの当てはまり(\(R^2\))はパラメータ(成分数 \(A\))を増やすほど改善する
→ 過適合のリスク:新しいデータへの予測は悪化する可能性

解決策:未使用データでの予測性能を推定する 交差検証(CV)

導出②:訓練誤差は成分数について必ず下がる。CV 誤差は下がらない

「訓練データへの当てはまりは \(A\) を増やすほど改善する」は経験則ではありません。第6回の導出③とまったく同じ論法で示せます。

成分数を \(A\) から \(A+1\) に増やしたモデルを考えます。新しい成分の係数を 0 とおけば、\(A\) 成分のモデルとまったく同じ予測ができます。つまり\(A\) 成分での残差二乗和は \(A+1\) 成分でも達成可能な値です。\(A+1\) 成分での最小値はそれ以下なので、

\[RSS_{A+1} \leq RSS_A\]

訓練誤差は単調非増加です。追加した成分が雑音しか拾っていなくても、値は下がります。

CV 誤差ではこの論法が効きません。 検証フォールドのデータは当てはめに使われていないので、「係数を0にすれば同じ値を出せる」という議論の対象外です。増えた自由度が訓練フォールドの雑音を拾っただけなら、検証フォールドでは予測が外れ、誤差は増えます。

本文の表がその形をしています。

\[A=1: 0.52 \ \to\ A=2: 0.38 \ \to\ A=3: 0.31 \ \to\ A=4: 0.32 \ \to\ A=5: 0.35\]

\(A = 4\) 以降で増加に転じています。訓練誤差なら決して起きない挙動で、これが過適合が始まった目印です。

この「選べる範囲が広がれば最小値は下がらない」という論法は、第6回の \(R^2\)(変数追加)、第11回の WCSS(クラスタ数)と同じものです。手元のデータでの当てはまりを最大化する基準は、パラメータ数を選ぶ基準になりえない、という一般則がここにあります。

使った数学:最小値の定義(達成可能な値の集合が広がれば最小値は下がらない)。

2.2 k分割交差検証(k-fold Cross-Validation)

手順:

全データ(N件)を k 個のフォールドに分割:
│ Fold 1 │ Fold 2 │ Fold 3 │ Fold 4 │ Fold 5 │

反復1: [検証:1][訓練:2,3,4,5] → 予測誤差₁
反復2: [訓練:1][検証:2][訓練:3,4,5] → 予測誤差₂
反復3: [訓練:1,2][検証:3][訓練:4,5] → 予測誤差₃
反復4: [訓練:1,2,3][検証:4][訓練:5] → 予測誤差₄
反復5: [訓練:1,2,3,4][検証:5] → 予測誤差₅

CV誤差 = 平均(予測誤差₁, ..., 予測誤差₅)

2.3 PLS での CV-RMSEP

RMSEP(Root Mean Squared Error of Prediction):

\[RMSEP = \sqrt{\frac{\sum_{i=1}^{n} (y_i - \hat{y}_i^{(-i)})^2}{n}}\]
  • \(\hat{y}_i^{(-i)}\):観測 \(i\) を含まないモデルでの \(y_i\) の予測値

成分数 \(A\) の選択:

A=1: RMSEP = 0.52
A=2: RMSEP = 0.38
A=3: RMSEP = 0.31  ← 最小
A=4: RMSEP = 0.32
A=5: RMSEP = 0.35  ← 増加 → 過適合
        ↓
     A = 3 を採用

2.4 時系列データでの注意点

通常のk分割CVは時系列で使えない(第3回のリーケージ問題):

NG: ランダム分割
  検証データに訓練データより前の時点が含まれる可能性

OK: 時系列分割(Walk-forward validation)
  常に「過去で訓練、未来で検証」を維持する

|──訓練──|検証|
|────訓練────|検証|
|──────訓練──────|検証|

3. 解釈可能性と汎化性能のバランス

3.1 成分数 \(A\) のトレードオフ

成分数 \(A\) 解釈可能性 汎化性能
少ない(1〜2) 高い(主要な関係を捉える) 低い可能性(underfitting)
多い 低い(解釈が複雑) 訓練では高いが過適合リスク
CV最適 中程度 最良の汎化性能

実務での判断: - 予測精度が最優先 → CV最適 \(A\) を採用 - 解釈が必要 → CV最適 \(A\) を上限として「解釈できる範囲で少ない \(A\)」を選ぶ - 「1標準誤差ルール」:RMSEP が最小 + 1SD の範囲内で最も簡潔なモデルを選ぶ

導出③:1標準誤差ルールの根拠と、その注意点

CV 誤差の値そのものも推定値です。\(k\) 個のフォールドそれぞれで予測誤差 \(E_1, \ldots, E_k\) が出て、報告されるのはその平均です。

\[\bar{E} = \frac{1}{k}\sum_{m=1}^k E_m\]

平均には標準誤差があります。統計学Ⅰ第7回で導いた \(\sigma/\sqrt{n}\) と同じ形で、

\[SE(\bar{E}) = \frac{s_E}{\sqrt{k}}, \qquad s_E = \text{フォールド間の標準偏差}\]

たとえば \(A=3\) で \(\bar{E} = 0.31\)、\(A=2\) で \(0.38\) だったとしても、\(SE\) が \(0.05\) 程度あれば、この差はフォールドの引き方によるばらつきの範囲に収まります。測定の精度で区別できない差を根拠に複雑なモデルを選ぶ理由はありません。

そこで「最小値 \(+1\,SE\) 以内に入るもののうち、最も簡潔なモデルを選ぶ」という決め方をします。これが1標準誤差ルールです。区別できないなら簡潔な方、という判断を明文化したものです。

この式には注意が要ります。 \(\sigma/\sqrt{k}\) という形は、\(k\) 個の値が互いに独立であることを前提にしています(統計学Ⅱ第6回)。ところが CV のフォールドは訓練データを共有しており、独立ではありません。フォールド1の訓練データとフォールド2の訓練データは大部分が同じデータです。

したがってここで計算される \(SE\) は真のばらつきを過小評価する傾向があり、厳密な信頼区間としては使えません。1標準誤差ルールは、理論的に保証された手続きではなく、「この程度の差なら区別しない」という線引きを一貫した基準で行うための実務上の約束です。そう理解して使う限りは有用です。

使った数学:平均の標準誤差(統計学Ⅰ第7回)。独立性の仮定については統計学Ⅱ第6回。

3.2 変数削減のサイクル

全変数で PLS(成分数 A=CV最適)
     ↓
VIPスコアで変数をランク付け
     ↓
VIP < 0.8 の変数を除外
     ↓
残った変数で PLS を再実行
     ↓
RMSEP が改善するか確認
     ↓
改善すれば採用、悪化すれば除外基準を緩める

4. PLSの結果の可視化と解釈

4.1 スコアプロット(観測点の分布)

PCAのバイプロット(第9回)と同様: - \(\mathbf{t}_1\)(第1成分スコア)vs \(\mathbf{t}_2\)(第2成分スコア)で散布図 - 外れ値・クラスタ構造が見えることがある - PCAとの違い:成分が \(y\) との共分散を最大化しているため、\(y\) が高い/低いグループが分離しやすい

4.2 予測値 vs 実測値プロット

y実測 ↑          ×× ×
      |      × ×  ×
      |    ×  ×
      |  × ×
      | ×
      ├───────────→ y予測(ŷ)
         (理想は対角線上に集まる)
  • 対角線上に集まるほど予測精度が高い
  • 系統的な曲がりがあれば非線形性の示唆

5. 重回帰・PCA・k-means・PLSの整理(次回へ)

手法 目的関数 教師あり/なし 主な用途
重回帰 RSS最小化 あり 予測・係数解釈
PCA 分散最大化 なし 次元削減・可視化
k-means WCSS最小化 なし クラスタリング
PLS 共分散最大化 あり 共線性下での予測

6. 基盤リンクの整理

基盤概念 本回での役割 具体的な使い方
列指向 VIP計算に必要な列アクセスを効率化 各成分の重み計算で必要な列だけ読む
整合性 CV分割を固定し比較可能に 全成分数実験で同じCV分割を使う
DAG CV・評価・可視化を一連の処理として管理 A=1〜10 の実験をDAGで並列実行
近似 探索段階では近似評価で候補を絞る 粗いCV(fold数を減らす)で大まかに絞る

7. 本日のまとめ

  1. VIPスコア:\(x_j\) が予測に貢献する度合い。VIP > 1 が重要変数の目安
  2. 交差検証:未使用データで RMSEP を推定し、最適成分数 \(A\) を決定
  3. 時系列データでは Walk-forward validation を使いリーケージを防ぐ
  4. 解釈可能性と汎化性能のバランスは「1標準誤差ルール」で判断できる

次回予告(最終回)

第14回では 統合・最終:重回帰・PCA・k-means・PLSの数理的関係を整理し、
同一データへの手法選択・結果解釈・再現可能な実行手順を最終レポートとしてまとめる。


事後課題(最終レポートの準備)

以下の問いに答えること(A4 1枚程度):

  1. VIPスコアが高い変数が必ずしも「因果的に重要な変数」ではない理由を説明してください。
  2. PLS の RMSEP と重回帰の RMSE(訓練データ内)を直接比較することが公平でない理由を説明し、公平な比較のためには何が必要かを述べてください。
  3. 第4回で設計した自分のデータセットの時間窓特徴量について、VIPスコアが高くなりそうな変数を予想し、その理由を述べてください。