主成分分析(PCA: Principal Component Analysis)は、多変量データを少数の新しい軸にまとめ直す線形の次元削減手法です。相関の強い変数が多いデータの整理、可視化、前処理に向きます。一方で、圧縮すれば必ず精度が上がる手法ではなく、目的変数に効く微小な差を落としたくない場面や、元の変数名でそのまま説明したい場面には向きません。
判断の起点はシンプルです。変数が多く、似た情報が重なっているなら候補です。逆に、どの元変数が業務上の判断根拠なのかをそのまま示したいなら慎重に使うべきです。
主成分分析は、元の変数をそのまま捨てるのではなく、複数の変数の線形結合によって新しい軸を作り、その軸へデータを射影して次元を減らします。新しい軸は「主成分」と呼ばれます。
第一主成分は、元データの分散を最も大きく表す方向です。第二主成分以降は、それ以前の主成分と直交する条件のもとで、残りの分散をできるだけ大きく表す方向として順に定まります。こうして得た主成分を使うと、高次元のデータを、情報の損失を抑えながら低次元で扱いやすくできます。
主成分分析はラベルを使わずにデータ構造を整理するため、教師なし学習の文脈で使われます。
主成分分析は線形変換なので、何をしているかを比較的説明しやすい手法です。その一方で、曲線状の分布や複雑な非線形構造をそのまま表すのは得意ではありません。
| 観点 | 向く場面 | 向かない場面 |
|---|---|---|
| 変数構成 | 似た指標が多く、情報が重複している | 各変数が別々の意味を持ち、統合すると説明しにくくなる |
| 目的 | 可視化、探索、前処理、圧縮 | 元変数をそのまま根拠として提示したい |
| モデル運用 | 特徴量が多く、学習負荷や計算量を抑えたい | 圧縮で落ちる情報が小さくない可能性がある |
| データ構造 | 線形の近似で十分に捉えられる | 非線形の構造が強い |
| 説明責任 | 主成分の意味づけを補助的に行えば足りる | 「どの元変数が効いたか」を明示し続ける必要がある |
主成分分析の採否は、「圧縮したいか」だけで決めると失敗しやすくなります。圧縮後の軸で業務判断や説明が回るかまで含めて見る必要があります。
変数が増えると情報量も増えますが、分析しやすくなるとは限りません。次元が高くなるほど、必要なサンプル数、計算量、解釈の難しさが増えやすくなります。
次元の呪いは、変数が増えることで分析や学習が難しくなる現象の総称です。典型的には、次のような問題が起こります。
高次元だから必ず悪いのではありません。問題になるのは、データ量、ノイズ、目的、使うアルゴリズムとの組み合わせです。
主成分分析は、相関の強い変数群を少数の軸にまとめることで、高次元データの扱いにくさを和らげます。特に、可視化や探索、前処理の段階では効果を実感しやすい手法です。
ただし、主成分分析は「分散が大きい方向」を優先します。目的変数に効く情報が必ずしも大きな分散を持つとは限らないため、分類や回帰の前処理として入れるときは、導入前後で評価指標を比較する必要があります。
主成分分析は、データを中心化したうえで、共分散行列または相関行列に基づいて主成分を求めます。実装では特異値分解(SVD)が使われることが多く、理論の説明では固有値分解で整理されることが一般的です。
| ステップ | 内容 | 確認したい点 |
|---|---|---|
| 1 | 欠損値・外れ値・尺度を確認する | PCAに入れる前提が崩れていないか |
| 2 | 必要に応じて標準化する | 単位の違いで特定の変数だけが支配的にならないか |
| 3 | 共分散行列または相関行列を作る | どの尺度で変数間の関係を見るか |
| 4 | 固有値・固有ベクトル、またはSVDを求める | どの軸がどれだけ分散を説明するか |
| 5 | 主成分数を決めて射影する | 情報損失と圧縮効果のバランス |
主成分分析は分散が大きい方向を重視するため、変数の単位やスケールが異なると、大きな尺度の変数が主成分を支配しやすくなります。そのため、尺度がそろっていないデータでは標準化を検討するのが基本です。
標準化は次の式で表せます。
z = (x - μ) / σ
ただし、標準化を常に行うべきとは限りません。すべての変数が同じ単位で、分散の大きさ自体に意味がある場合は、共分散ベースでそのまま扱う選択もあります。変数の意味を残したいのか、尺度差の影響を抑えたいのかで判断してください。
共分散行列は、変数の分散と共分散をまとめたものです。相関行列は、それを尺度の違いが出にくい形に正規化したものです。元データの尺度が大きく異なるときは、相関行列ベースのほうが結果を解釈しやすいことがあります。
主成分分析では、行列Aに対して次の関係を満たす固有値λと固有ベクトルvを求めます。
Av = λv
固有ベクトルは主成分の方向、固有値はその主成分が説明する分散の大きさに対応します。固有値が大きい主成分ほど、元データのばらつきを多く表しています。
主成分数は、情報をどこまで残すかの判断です。実務では、次の三つを合わせて見ます。
80%や90%といった目安だけで決めると、目的に必要な情報を落とすことがあります。最終的には、寄与率だけでなく、目的への効き方と説明のしやすさで決めるべきです。
高次元データを2次元や3次元に圧縮すると、群の分かれ方や外れ値の位置を把握しやすくなります。顧客データ、センサーデータ、品質データなどで、まず全体像を掴みたいときに有効です。
似た指標が多いデータでは、元変数をそのまま入れると冗長になりやすくなります。主成分にまとめると、情報の重複を減らし、前処理を簡潔にできます。
ただし、主成分分析は変数選択ではありません。元の変数の一部だけを残す手法ではなく、新しい軸へ変換する手法です。元変数の意味をそのまま残したい場合は、別の方法も検討してください。
特徴量が多く、学習時間やメモリ負荷が大きいときは、PCAを前処理に使う選択肢があります。相関の強い変数が多い場合は、圧縮後の特徴量のほうが扱いやすくなることがあります。
一方で、分散の大きい方向が目的変数に効く方向と一致するとは限りません。導入するときは、精度、再現率、MAEなど、下流タスクの指標を比較してから採用してください。
PCAでは、低次元空間に写したあとに元の空間へ近似的に戻し、その差を見ることができます。再構成誤差が大きいデータは、通常のパターンから外れている可能性があります。
センサーログや取引データでは、正常時の構造を主成分で捉え、そこから大きく外れるデータを抽出する使い方があります。ただし、どこからを異常とみなすかは業務要件に依存するため、閾値設計と誤検知への対応まで決める必要があります。
欠損値、外れ値、尺度の混在を放置したままPCAをかけると、主成分の向きや寄与率が簡単に変わります。特に外れ値は結果に強く効きやすいため、誤記なのか、業務上重要な異常なのかを先に切り分ける必要があります。
主成分は複数の変数の線形結合なので、名前を付ければすぐ理解できるとは限りません。負荷量の大きい変数を見るだけでなく、主成分得点と業務KPIの関係も確認し、何を表す軸なのかを後から固める作業が必要です。
次元を減らす以上、情報は一部失われます。累積寄与率が高くても、目的に必要な情報が残っているとは限りません。異常検知や不正検知のように、小さな差が重要な場面では特に注意が必要です。
PCAは線形手法です。非線形の構造が強いデータでは、少数の主成分に圧縮しても特徴を十分に表せないことがあります。まずPCAで線形の近似がどこまで通用するかを見て、足りなければ別の次元削減手法を検討するのが実務では扱いやすい進め方です。
主成分分析は、多変量データを少数の軸にまとめ直す代表的な次元削減手法です。相関の強い変数が多いデータの可視化、探索、前処理には有効です。
一方で、PCAは万能ではありません。圧縮後の軸で説明や運用ができるか、目的に必要な情報を落としていないかを確認せずに使うと、かえって判断を誤ります。採用前には、標準化の要否、主成分数、下流タスクの評価、解釈のしやすさを必ず確認してください。
A.相関の強い変数を少数の軸にまとめ、可視化、探索、前処理、圧縮に使う手法です。
A.いいえ。ラベルを使わずにデータ構造を整理するため、教師なし学習として扱われます。
A.相関の強い特徴量を圧縮できるため、可視化しやすくなり、前処理や学習の負荷を下げられることがあります。
A.いいえ。分散の大きい方向が目的変数に効くとは限らないため、導入前後で評価指標を比較する必要があります。
A.必須ではありませんが、変数の単位や尺度が大きく異なる場合は、結果の偏りを抑えるために検討するのが基本です。
A.累積寄与率、スクリープロット、下流タスクでの性能や説明のしやすさを合わせて決めます。
A.いいえ。主成分は複数の変数を組み合わせた新しい軸なので、元の変数名だけでは意味を言い切れません。
A.はい。次元を減らす以上、情報の一部は落ちるため、目的に必要な情報が残るかを確認する必要があります。
A.はい。再構成誤差などを使って、通常パターンから外れるデータを抽出する用途があります。
A.PCAは線形手法なので、非線形構造が強いデータでは特徴を十分に表せないことがあります。