🙆‍♀️

因子分析と主成分分析(PCA)の数学的な違い

2025/02/28に公開

1. はじめに

因子分析(Factor Analysis, FA)と主成分分析(Principal Component Analysis, PCA)は、データの次元を削減したり、隠れた構造を抽出したりするための手法ですが、数学的な目的や仮定が異なります。本記事では、それぞれの手法の違いを数式で詳しく解説します。


2. 数学的モデル

2.1 主成分分析(PCA)

PCAは、データの分散を最大化するような直交成分(主成分)を求める手法です。

基本式

与えられたデータ行列 ( X )(( n \times p ) のデータ行列)を考えます。

[
X = Z W^T
]

  • ( X ) : ( n \times p ) の標準化済みデータ行列
  • ( Z ) : ( n \times m ) の主成分スコア行列(低次元表現)
  • ( W ) : ( p \times m ) の主成分負荷行列(固有ベクトル)

PCAは、以下の固有値分解(EVD)を行うことで主成分を求めます。

[
S = W \Lambda W^T
]

  • ( S ) : ( p \times p ) の共分散行列
  • ( W ) : ( p \times m ) の固有ベクトル行列(主成分)
  • ( \Lambda ) : ( m \times m ) の固有値行列

主成分 ( W ) はデータの分散を最大化するように求められます。

PCAの特徴

  • 次元削減の目的で使用
  • 全データの分散を説明する主成分を抽出
  • 観測変数の線形結合で主成分を作成
  • 因子モデルを仮定しない

2.2 因子分析(Factor Analysis, FA)

因子分析は、観測変数の共分散を説明する潜在因子(共通因子) を推定する手法です。

基本式

[
X = \Lambda F + \epsilon
]

  • ( X ) : ( n \times p ) の観測データ行列
  • ( \Lambda ) : ( p \times m ) の因子負荷行列
  • ( F ) : ( n \times m ) の共通因子スコア行列
  • ( \epsilon ) : ( n \times p ) の誤差(ユニーク因子)

共分散行列を分解すると、

[
S = \Lambda \Phi \Lambda^T + \Psi
]

  • ( \Phi ) : 因子の共分散行列(通常は単位行列)
  • ( \Psi ) : 誤差項の分散を表す対角行列

ここで、因子分析は**共通因子(潜在変数)**を推定し、誤差(ユニーク因子)の影響を分離します。

因子分析の特徴

  • データの共通因子を特定
  • 誤差(ユニーク因子)を考慮
  • 主成分分析とは異なり、因子モデルを仮定

3. PCAと因子分析の違い(数式比較)

比較項目 主成分分析(PCA) 因子分析(FA)
目的 データの次元削減 潜在因子の抽出
基本式 ( X = Z W^T ) ( X = \Lambda F + \epsilon )
共分散分解 ( S = W \Lambda W^T ) ( S = \Lambda \Phi \Lambda^T + \Psi )
誤差の考慮 なし あり (( \Psi ) が誤差分散)
主成分/因子の解釈 線形変換で作成された成分 データの背後にある共通因子

ポイント

  • PCAは「データの分散を最大化」する成分を求める
  • 因子分析は「データの共通因子を推定し、誤差を分離」する
  • PCAは誤差を考慮しないが、因子分析は誤差を明示的に扱う

4. どちらを使うべきか?

目的 推奨手法
次元削減(データの要約) PCA
背後にある潜在因子の特定 因子分析
観測変数の全体構造の分析 PCA
共通因子と誤差の分離 因子分析

5. まとめ

PCAと因子分析は数学的には似た手法ですが、

  • PCAはデータの分散を最大化する成分を求める手法
  • 因子分析は観測データの背後にある共通因子を推定する手法
  • PCAは誤差を考慮しないが、因子分析は誤差を明示的にモデル化する

どちらを選ぶかは、分析の目的次第です。データの次元削減ならPCA、潜在因子の特定なら因子分析を使いましょう!

Discussion