コンテンツにスキップ

第14回 統合・最終:目的関数の比較と手法選択

本日の到達目標

  • 重回帰・PCA・k-means・PLSを目的関数の観点から統一的に比較できる
  • 同一データに対して適切な手法を選択し結果を解釈できる
  • 再現可能な実行手順(DAG含む)を最終レポートとして記述できる

1. 前半・後半の統括

1.1 課題全体のナラティブ

本科目の設計思想を振り返る:

前半(第1〜5回): 基盤技術の整備
     ↓「なぜこの技術が必要か」を後半で体験
後半(第6〜13回): 基盤を使った多変量解析
     ↓ 本日(第14回): 統合と選択原理の把握

核心メッセージ:
大規模データ分析において、統計的手法の正しさだけでなく、
計算可能性(I/O設計・スケーラビリティ)と再現可能性(整合性・DAG) が同等に重要。


2. 目的関数による4手法の統一的理解

2.1 各手法の目的関数一覧

手法 目的関数 最小化/最大化 対象
重回帰(OLS) \(RSS = \|\mathbf{y} - \mathbf{X}\boldsymbol{\beta}\|^2\) 最小化 \(y\) と \(\mathbf{X}\boldsymbol{\beta}\) の差
PCA \(\text{Var}(\mathbf{X}\mathbf{w}) = \mathbf{w}^T\mathbf{S}\mathbf{w}\) 最大化 \(\mathbf{X}\) の射影後分散
k-means \(WCSS = \sum_j\sum_{i\in C_j}\|\mathbf{x}_i - \boldsymbol{\mu}_j\|^2\) 最小化 クラスタ内の距離
PLS \(\text{Cov}(\mathbf{X}\mathbf{w},\ \mathbf{y}\mathbf{q})\) 最大化 \(\mathbf{X}\) と \(\mathbf{y}\) の共変動

2.2 「何を最適化するか」から見た手法選択

目的:y を予測したい
  ├→ 説明変数が少なく共線性が低い → 重回帰(OLS)
  └→ 説明変数が多く共線性が高い  → PLS

目的:データの構造を探索したい
  ├→ 連続的な変動パターンを捉えたい → PCA(次元削減)
  └→ データをグループに分けたい    → k-means(クラスタリング)

2.3 数理的な関連性

PCA と k-means の関係: - k-means は「クラスタ重心を基底とした低次元表現」と解釈できる - 2クラスタの k-means は第1主成分方向の二分割に近い(Ding & He, 2004)

PLS と PCA の関係: - PCA:\(\mathbf{X}\) の固有ベクトルを求める - PLS:\(\mathbf{X}^T \mathbf{y} \mathbf{y}^T \mathbf{X}\) の固有ベクトルを求める(yで重み付けした共分散行列)

PLS と 重回帰の関係: - 成分数 \(A = p\)(全変数と同じ数)にすると PLS の解は OLS と一致する - 成分数 \(A < p\) にすることで正則化効果が生まれる


3. 同一データへの適用手順

3.1 第4回で設計した特徴量からのフルパイプライン

生データ
  ↓ 欠測処理(第1回:品質課題)
  ↓ 時間窓特徴量生成(第4回:ウィンドウ関数)
  ↓ スナップショット固定(第3回:整合性)
  ↓ 標準化
  ↓
┌──────────────────────────────────────────┐
│                                          │
│  A: 重回帰         → 偏回帰係数・VIF診断 │
│  B: PCA + 重回帰   → 主成分係数・寄与率  │
│  C: PCA + k-means  → クラスタ構造の把握  │
│  D: PLS            → 共分散成分・VIPスコア│
│                                          │
└──────────────────────────────────────────┘
  ↓ 各手法の予測/分類結果を比較
  ↓ RMSEP(交差検証)・シルエット係数
  ↓ 解釈:係数・ローディング・VIP・クラスタ重心

3.2 手法選択の判断フロー

Step 1: y(目的変数)があるか?
  Yes → Step 2
  No  → Step 3

Step 2: 共線性(VIF)は高いか?
  高い(VIF>10)→ PLS
  低い          → 重回帰

Step 3: グループに分けたいか?それとも連続的な変化を見たいか?
  グループ → k-means(次元削減にPCAを前段として使う)
  連続的変化 → PCA(可視化・特徴抽出)

4. 再現可能な実行手順の記述

4.1 再現性のための「3つの固定」

固定すべき要素 方法 関連回
データ スナップショットファイル(日付付き) 第3回
処理手順 DAGとして文書化 第4回
乱数シード 設定ファイルに記録 第11回

4.2 最終レポートのDAG記述例

DAG: 最終レポート用パイプライン

nodes:
  raw_data: "data/raw_sales_2024.parquet"
  snapshot: "data/snapshot_20240101.parquet"
  features: "data/features_window.parquet"

  impute: "欠測処理(第1回の方針に基づく)"
  window: "時間窓特徴量生成(MA7/14/30, ラグ1-3, 頻度7/30)"
  standardize: "標準化(相関行列ベース)"

  pca: "PCA(ランダム化SVD, k=10, random_seed=42)"
  kmeans: "k-means(k=3, init=k-means++, random_seed=42)"
  ols: "重回帰(AIC基準ステップワイズ)"
  pls: "PLS(A=CV最適, walk-forward CV, fold=5)"

edges:
  raw_data → impute → window → snapshot
  snapshot → standardize
  standardize → pca → kmeans
  standardize → ols → vif_diagnosis
  standardize → pls → vip_score

5. 近似と精密の使い分けの整理

本科目を通して出てきた「近似」と「精密」の対応:

場面 近似手法 精密手法 使い分け
変数スクリーニング HyperLogLog, Count-Min 厳密な集計 探索段階
カーディナリティ確認 HyperLogLog COUNT DISTINCT 前段チェック
SVD計算 ランダム化SVD 完全SVD 大規模・高次元
クラスタリング ミニバッチ k-means 標準 k-means \(n > 10^5\)
交差検証 粗いCV(fold=3) k=5〜10 fold CV 成分数探索の序盤

6. コンセプトマップ(本科目全体の構造)

                  ビッグデータ(5V)
                       ↓
              品質課題(欠測・外れ値・偏り)
                       ↓
           ┌───────────┼───────────┐
        列指向      整合性        近似
         (第2回)    (第3回)      (第5回)
            \          |          /
              ↘         ↓        ↙
                DAGパイプライン(第4回)
                  時間窓特徴量
                       ↓
     ┌─────────────────┼─────────────────┐
     ↓                 ↓                 ↓
  重回帰            PCA              PLS
  RSS最小化         分散最大化        共分散最大化
  (第6・7回)       (第8・9回)        (第12・13回)
     ↓               ↓
  VIF診断        k-means(第10・11回)
  変数選択        WCSS最小化
                 シルエット分析
                       ↓
              目的関数による統一理解(本日)

7. 最終レポートのガイドライン

7.1 レポートの構成(推奨)

  1. 分析課題の設定(第1回を参照):目的変数・説明変数・データの粒度
  2. 前処理・特徴量設計(第3・4回を参照):スナップショット日時、時間窓の定義
  3. 各手法の適用と結果(第6〜13回):
  4. 重回帰:偏回帰係数・VIF・残差プロット
  5. PCA:寄与率・バイプロット
  6. k-means:シルエット係数・クラスタ解釈
  7. PLS:VIPスコア・CV-RMSEP
  8. 手法選択の根拠:目的関数の観点から比較
  9. 再現可能な実行手順:DAGとして記述、乱数シード・データ版を明記
  10. コンセプトマップ:本科目の学習内容と自分の分析の関係を図示

7.2 評価基準(最終レポート 50%)

観点 内容 配点目安
正確性 各手法の目的関数と結果を正確に記述 30%
統合的理解 手法間の関係と使い分けの根拠 30%
再現可能性 DAGと固定情報の記述 20%
考察の深さ 結果の解釈・限界・改善点 20%

8. 本日のまとめ(=本科目のまとめ)

  1. 4つの多変量解析手法は目的関数(何を最小化/最大化するか) で統一的に理解できる
  2. 手法選択の原則:目的変数の有無・共線性の有無・探索か予測かで決まる
  3. どの手法も前半の基盤技術(列指向・整合性・DAG・近似)が計算可能性と再現性を支えている
  4. 最終レポートでは「なぜこの手法を選んだか」を目的関数の言葉で説明すること

最終レポート提出について

  • 提出期限:最終授業から2週間後(LMSで確認)
  • 形式:A4 5〜8枚(コンセプトマップ含む)
  • データ:授業中に設計した自分のデータセット、または公開データセット
  • コード・出力は付録として別添可(字数不算入)

参考文献(本科目全体)

前半(基盤技術)

  • Kleppmann, M. (2017). Designing Data-Intensive Applications. O'Reilly.(第3〜4章:ストレージ・インデックス)
  • Brewer, E.A. (2000). "Towards Robust Distributed Systems." PODC Keynote.(CAP定理)
  • Halko, N., Martinsson, P.G., & Tropp, J.A. (2011). "Finding Structure with Randomness." SIAM Review.(ランダム化SVD)

後半(多変量解析)

  • Johnson, R.A., & Wichern, D.W. (2007). Applied Multivariate Statistical Analysis. Pearson.
  • Abdi, H. (2010). "Partial Least Squares Regression." Encyclopedia of Research Design.
  • Jolliffe, I.T. (2002). Principal Component Analysis. Springer.
  • Arthur, D., & Vassilvitskii, S. (2007). "k-means++: The Advantages of Careful Seeding." SODA.