🙆♀️
因子分析と主成分分析(PCA)の数学的な違い
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