IT用語集

主成分分析とは? 10分でわかりやすく解説

水色の背景に六角形が2つあるイラスト 水色の背景に六角形が2つあるイラスト
アイキャッチ
目次

主成分分析(PCA: Principal Component Analysis)は、多変量データを少数の新しい軸にまとめ直す線形の次元削減手法です。相関の強い変数が多いデータの整理、可視化、前処理に向きます。一方で、圧縮すれば必ず精度が上がる手法ではなく、目的変数に効く微小な差を落としたくない場面や、元の変数名でそのまま説明したい場面には向きません。

判断の起点はシンプルです。変数が多く、似た情報が重なっているなら候補です。逆に、どの元変数が業務上の判断根拠なのかをそのまま示したいなら慎重に使うべきです。

主成分分析とは

主成分分析は、元の変数をそのまま捨てるのではなく、複数の変数の線形結合によって新しい軸を作り、その軸へデータを射影して次元を減らします。新しい軸は「主成分」と呼ばれます。

主成分分析の定義

第一主成分は、元データの分散を最も大きく表す方向です。第二主成分以降は、それ以前の主成分と直交する条件のもとで、残りの分散をできるだけ大きく表す方向として順に定まります。こうして得た主成分を使うと、高次元のデータを、情報の損失を抑えながら低次元で扱いやすくできます。

主成分分析はラベルを使わずにデータ構造を整理するため、教師なし学習の文脈で使われます。

何のために使うのか

  • 相関の強い変数をまとめて、冗長な情報を圧縮する
  • 2次元や3次元に落として、分布や群の分かれ方を見やすくする
  • 前処理として特徴量を整理し、学習や分析の負荷を下げる

主成分分析は線形変換なので、何をしているかを比較的説明しやすい手法です。その一方で、曲線状の分布や複雑な非線形構造をそのまま表すのは得意ではありません。

主成分分析が向く場面と向かない場面

観点向く場面向かない場面
変数構成似た指標が多く、情報が重複している各変数が別々の意味を持ち、統合すると説明しにくくなる
目的可視化、探索、前処理、圧縮元変数をそのまま根拠として提示したい
モデル運用特徴量が多く、学習負荷や計算量を抑えたい圧縮で落ちる情報が小さくない可能性がある
データ構造線形の近似で十分に捉えられる非線形の構造が強い
説明責任主成分の意味づけを補助的に行えば足りる「どの元変数が効いたか」を明示し続ける必要がある

主成分分析の採否は、「圧縮したいか」だけで決めると失敗しやすくなります。圧縮後の軸で業務判断や説明が回るかまで含めて見る必要があります。

なぜ次元削減が必要になるのか

変数が増えると情報量も増えますが、分析しやすくなるとは限りません。次元が高くなるほど、必要なサンプル数、計算量、解釈の難しさが増えやすくなります。

次元の呪いとは

次元の呪いは、変数が増えることで分析や学習が難しくなる現象の総称です。典型的には、次のような問題が起こります。

  • 同じ密度でデータ空間を埋めるために、より多くのサンプルが必要になる
  • 距離や近さが効きにくくなり、近傍探索やクラスタリングが不安定になりやすい
  • 特徴量が多いぶんモデルが複雑になり、過学習のリスクが上がる
  • 試行錯誤に必要な計算時間やメモリ使用量が増える

高次元だから必ず悪いのではありません。問題になるのは、データ量、ノイズ、目的、使うアルゴリズムとの組み合わせです。

主成分分析が役立つ理由

主成分分析は、相関の強い変数群を少数の軸にまとめることで、高次元データの扱いにくさを和らげます。特に、可視化や探索、前処理の段階では効果を実感しやすい手法です。

ただし、主成分分析は「分散が大きい方向」を優先します。目的変数に効く情報が必ずしも大きな分散を持つとは限らないため、分類や回帰の前処理として入れるときは、導入前後で評価指標を比較する必要があります。

主成分分析の仕組みと手順

主成分分析は、データを中心化したうえで、共分散行列または相関行列に基づいて主成分を求めます。実装では特異値分解(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は万能ではありません。圧縮後の軸で説明や運用ができるか、目的に必要な情報を落としていないかを確認せずに使うと、かえって判断を誤ります。採用前には、標準化の要否、主成分数、下流タスクの評価、解釈のしやすさを必ず確認してください。

FAQ

Q.主成分分析は何のために使う手法ですか?

A.相関の強い変数を少数の軸にまとめ、可視化、探索、前処理、圧縮に使う手法です。

Q.主成分分析は教師あり学習ですか?

A.いいえ。ラベルを使わずにデータ構造を整理するため、教師なし学習として扱われます。

Q.主成分分析を使うと何が改善しますか?

A.相関の強い特徴量を圧縮できるため、可視化しやすくなり、前処理や学習の負荷を下げられることがあります。

Q.主成分分析を使えば精度は必ず上がりますか?

A.いいえ。分散の大きい方向が目的変数に効くとは限らないため、導入前後で評価指標を比較する必要があります。

Q.標準化は必須ですか?

A.必須ではありませんが、変数の単位や尺度が大きく異なる場合は、結果の偏りを抑えるために検討するのが基本です。

Q.主成分の数はどう決めますか?

A.累積寄与率、スクリープロット、下流タスクでの性能や説明のしやすさを合わせて決めます。

Q.主成分は元の変数と同じ意味を持ちますか?

A.いいえ。主成分は複数の変数を組み合わせた新しい軸なので、元の変数名だけでは意味を言い切れません。

Q.主成分分析では情報が失われますか?

A.はい。次元を減らす以上、情報の一部は落ちるため、目的に必要な情報が残るかを確認する必要があります。

Q.主成分分析は異常候補の抽出にも使えますか?

A.はい。再構成誤差などを使って、通常パターンから外れるデータを抽出する用途があります。

Q.非線形のデータにもそのまま向いていますか?

A.PCAは線形手法なので、非線形構造が強いデータでは特徴を十分に表せないことがあります。

記事を書いた人

ソリトンシステムズ・マーケティングチーム