主成分分析(PCA)と因子分析(FA)は、できることがよく似ており、違いが分かり難いと思う方も多いのではないでしょうか。
他の記事では数式を使った解説がされていますが、本記事では数式を使わず、説明文だけで両者の違いを比較してみました。
基本の考え方
主成分分析 | 因子分析 |
---|---|
主成分分析は、観測変数の総分散を最大化する方向を見つける手法です。すべての主成分が観測変数の線形結合であり、相関行列や分散共分散行列を基に計算されます。ノイズも含む全ての分散を説明します。 | 因子分析は、観測変数が共通因子と固有因子の線形結合であると仮定し、共通因子を見つける手法です。観測変数間の共分散を説明する少数の因子を特定します。ノイズを除去し、共通の因子(共分散構造)を説明します。 |
共通点
1.次元削減:
- 両方とも多次元データを少数の次元に縮約する手法です。
- データの構造を簡潔に表現し、可視化や解釈を容易にします。
2.データの構造解析:
- 相関行列を使用してデータ内のパターンを見つける手法です。
- 潜在変数を特定し、データ間の関係性を明らかにします。
相違点
項目 | 主成分分析(PCA) | 因子分析(FA) |
---|---|---|
目的 | データ全体の分散を説明することが目的です。 | データ内の共通構造や因果関係をモデル化することが目的です。 |
成果 | 観測変数の総分散が最大となるような新しい座標軸(主成分)を見つけます。 | 観測変数の共分散を説明する少数の潜在因子(共通因子)を見つけます。 |
方法 | 分散が大きいほど、その特徴量は情報を持っていると仮定し、元の分散を維持しながら特徴量を統合していきます。 | 各特徴量は、共通部分+固有部分+誤差で成り立っていると仮定し、数学的に共通部分を求めます。 |
解釈 | データ全体の分散を説明します。ノイズも含まれます。 | 観測変数間の共分散を説明します。但し、固有因子(誤差)を含みません。 |
用途による違い
応用 | 主成分分析(PCA) | 因子分析(FA) | 備考 |
---|---|---|---|
次元削減 | ○ | ○ | 両方の手法ともに次元削減のために利用されます。PCAは分散を最大化する方向を見つけ、因子分析は共分散を説明します。 |
データの圧縮 | ○ | × | PCAは情報の損失を最小限に抑えてデータを圧縮しますが、因子分析は圧縮を目的としていません。 |
ノイズ除去 | ○ | ○ | 両方の手法ともにノイズ除去に利用されます。PCAは分散が小さい成分を無視することでノイズを取り除き、因子分析は固有因子を分離します。 |
データの可視化 | ○ | ○ | 両方の手法ともに2次元や3次元にデータをプロットするために利用されます。 |
データの前処理 | ○ | ○ | 次元削減によりデータの前処理が容易になります。 |
分散最大化 | ○ | × | PCAは分散を最大化する方向を見つけますが、因子分析は共分散を説明する共通因子を見つけます。 |
共通因子の抽出 | × | ○ | 因子分析は共通因子を抽出するために利用されますが、PCAはこれを目的としていません。 |
潜在変数の特定 | × | ○ | 因子分析は潜在変数を特定しますが、PCAは潜在変数を特定することを目的としていません。 |
機械学習の前処理 | ○ | × | PCAは次元削減により機械学習モデルの前処理として利用されますが、因子分析はあまり利用されません。 |
データの解釈・理解 | ○ | ○ | 両方の手法ともにデータの構造やパターンを理解するために利用されます。 |
固有値・固有ベクトルの利用 | ○ | × | PCAは固有値・固有ベクトルを利用しますが、因子分析は異なるアプローチを取ります。 |
異常検知 | ○ | △ | PCAは異常検知に利用されますが、因子分析は異常検知にも利用可能ですが、PCAほど一般的ではありません。 |
説明変数の選択 | ○ | △ | PCAは重要な説明変数を選択するために利用されますが、因子分析も利用できますが、PCAの方が一般的です。 |
まとめ
今回は、主成分分析(PCA)と因子分析(FA)についての違いを文章だけで比較してみました。両者は非常によく似ていますが、両者は目的が違います。
主成分分析(PCA)は、分散が最大となるような新しい座標軸(主成分)を見つけることが目的ですが、共通因子(FA)は観測変数を共通部分+固有部分+誤差間に分解し、共通部分(共分散)の関係性を見つけることが目的となります。
Pythonで主成分分析、因子分析を使いたい場合は、下記の記事が役に立つと思います。コピペで使えるサンプルソースが掲載されているので、すぐに試せるようになっています。
【Python実践】データ分析の影の立役者!主成分分析(PCA)の使い方ガイド
【Python実践】データに潜む共通点を見つける!因子分析(FA)の使い方ガイド