IT用語集

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

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

UnsplashEmily Morterが撮影した写真  

主成分分析(PCA: Principal Component Analysis)は、多変量データを扱うときに「情報の要点を保ちながら、扱いやすい形に整理する」ための代表的な次元削減手法です。データ量が増えるほど分析は有利になる一方で、変数が多すぎると計算量や解釈の難しさが増し、モデルが学びにくくなることもあります。

本記事では、主成分分析が何をしているのかを定義から整理し、基本的な仕組みと手順、実務での使いどころ、導入時に見落としやすい注意点までを一通り解説します。読了後には「自分のデータでPCAを使うべきか」「使うなら何を確認してから適用するか」を判断できるようになります。

主成分分析とは

主成分分析は、多変量データに含まれる情報を、より少ない数の新しい軸(主成分)で表現し直す統計的手法です。元の変数をそのまま捨てるのではなく、複数の変数の線形結合として「情報をよく説明する方向」を作り、その方向にデータを写像(射影)することで、次元を減らします。

主成分分析の定義

主成分分析では、データのばらつき(分散)をできるだけ多く表現できる方向を順番に見つけていきます。一般的な説明は次の通りです。

  • 第一主成分:データの分散を最も大きく説明する方向
  • 第二主成分以降:それ以前の主成分と直交する(相関しない)方向の中で、残りの分散をできるだけ大きく説明する方向

このようにして得られる主成分を使うと、元の高次元データを、情報損失を抑えながら低次元に圧縮できます。なお、主成分分析は教師なし学習の一種であり、ラベル(正解)がないデータにも適用できます。

主成分分析の目的と特徴

主成分分析が実務で使われる目的は、次のように整理できます。

  1. 次元削減により、計算負荷や学習負荷を下げる(処理を現実的にする)
  2. 相関の強い変数群をまとめ、データ構造の把握・説明をしやすくする
  3. 2次元・3次元への圧縮により、可視化を通じて傾向や分布をつかむ

特徴として、PCAは線形変換であるため、非線形手法に比べると「何が起きているか」を説明しやすい一方、非線形な構造(曲がった分布や複雑な関係)をそのまま表現するのは得意ではありません。PCAは万能な圧縮手段ではなく、線形で近似できる範囲で強い手法だと捉えると判断しやすくなります。

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

「変数が多いほど、たくさんの情報がある」と考えたくなりますが、実務では変数の増加がそのまま分析のしやすさにつながるとは限りません。ここでは、次元削減が求められる代表的な背景を整理します。

次元の呪いとは

次元の呪いは、次元(変数)が増えることで生じる問題の総称です。よくある誤解として「次元が増えると必ず精度が落ちる」と言い切ってしまいがちですが、実態はもう少し複合的です。次元が増えると、例えば次のようなことが起こりやすくなります。

  • データ空間が広がり、同じ密度で分布を捉えるには必要なサンプル数が急増する
  • 距離や近さの概念が扱いにくくなり、近傍探索・クラスタリング・密度推定が不安定になりやすい
  • 特徴量が多いほどモデルが複雑になり、過学習のリスクが上がる
  • 計算量・メモリ使用量が増え、分析の反復(試行錯誤)が回りにくくなる

つまり、次元の呪いは「高次元だからダメ」ではなく、データ量・ノイズ・アルゴリズム特性・目的との兼ね合いで問題になりやすい、という捉え方が現実的です。

主成分分析が役立つ場面

PCAは次元の呪いを“完全に解決する”というより、次のような文脈で問題を緩和するのに役立つことがあります。

  • 相関の強い変数が多く、実質的には少数の要因で変動している可能性がある
  • 可視化や探索を優先し、まずはデータの全体像を掴みたい
  • 前処理として冗長な情報をまとめ、モデルの学習負担を下げたい

ただし、PCAで圧縮すれば必ず性能が上がるわけではありません。目的変数に関係する情報が「分散の大きさ」と一致しない場合、PCAで重要な信号を薄めてしまうこともあります。この点は後述の注意点で詳しく触れます。

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

主成分分析は、行列計算(固有値分解や特異値分解)を用いて「情報をよく表す軸」を求めます。ここでは、実務で押さえるべき流れを、意味が伝わるように整理します。

全体の流れ

ステップ内容目的
1前処理(欠損・外れ値・尺度の確認)PCAに入れる前提を整える
2標準化(必要に応じて)尺度の違いで主成分が偏るのを避ける
3共分散行列または相関行列を作る変数間のばらつき・関係性をまとめる
4固有値・固有ベクトル(またはSVD)を求める主成分(軸)と重要度を得る
5主成分数を決めて射影する圧縮表現(低次元データ)を作る

データの標準化

PCAは「分散が大きい方向」を重視するため、変数の単位やスケールが違うと、スケールが大きい変数が強く影響しがちです。そのため、多くのケースでは標準化(平均0、分散1)が検討されます。

標準化は次の式で表せます。

z = (x - μ) / σ

ただし、標準化が常に正解というわけではありません。例えば、全ての変数が同一単位で「スケール自体に意味がある」場合は、共分散ベースで標準化しない選択もあり得ます。標準化の有無は、変数の意味と目的に沿って決めるのが安全です。

分散共分散行列と相関行列

分散共分散行列は、変数の分散(対角成分)と、変数同士の共分散(非対角成分)をまとめたものです。共分散はスケールに依存するため、スケール差が大きいデータでは主成分が偏る原因になります。一方、相関行列はスケールの影響を取り除いた「相関(-1〜1)」で関係性を表します。

実務では、標準化を行った上で相関行列を用いる(または標準化済みデータの共分散行列を用いる)ことが多く、いずれも「尺度の違いで結果が歪む」リスクを下げる意図があります。

固有値と固有ベクトル

PCAでは、行列A(共分散行列または相関行列)に対して、固有値λと固有ベクトルvを求めます。

Av = λv

固有ベクトルが主成分の方向(軸)に対応し、固有値はその主成分が説明する分散の大きさ(重要度)に対応します。固有値が大きい主成分ほど、データのばらつきを多く表現していると解釈できます。

主成分の数の決め方

主成分数は「圧縮の度合い」と「情報損失」のバランスです。よく使われる判断材料には、次のようなものがあります。

  • 累積寄与率:全分散のうち、採用した主成分でどれだけ説明できるか(例:80%や90%を目安にするケースがある)
  • スクリープロット:固有値の落ち方を見て、折れ曲がり(肘)を目安にする
  • 下流タスクでの評価:分類・回帰・クラスタリング等、最終目的に対して性能・安定性・解釈性がどう変わるかで決める

特にビジネス利用では、数値的な基準だけでなく「説明できる/納得できる」ことも重要です。寄与率の良さだけで決めるのではなく、主成分の解釈可能性も合わせて確認すると、導入後の運用が安定します。

主成分分析の活用方法

PCAは「圧縮」そのものが目的になる場合もあれば、可視化・前処理・異常検知など、他の分析の土台として使われることもあります。ここでは使いどころを具体化します。

データの可視化と探索

高次元データは、そのままでは人間が全体像を把握しにくいものです。PCAで2次元・3次元に落として散布図にすると、クラスタの分かれ方、外れ値、全体の傾向が見えやすくなることがあります。

例えば顧客データであれば、購買頻度・単価・閲覧傾向など多数の変数を含むことがありますが、PCAで可視化することで「似た顧客が集まる領域」や「特異な振る舞い」を探索しやすくなります。ここで得た仮説を、セグメンテーションや施策設計の入口にする、という使い方が現実的です。

特徴量の整理(冗長性の圧縮)

PCAは相関の強い変数をまとめるのが得意です。例えば、似た指標が複数あり実 видно(実質)同じ情報を重ねて持っている場合、主成分にまとめることで冗長性が下がり、モデルが学びやすくなることがあります。

ただし「主成分の係数(負荷量)が大きい変数=重要」と短絡すると誤解が生まれます。負荷量は標準化の有無や採用した主成分によって見え方が変わるため、重要度を断定するより、どの変数群が同じ方向に動いているかを読む材料として使う方が安全です。

機械学習の前処理としての利用

学習に時間がかかる、過学習しやすい、特徴量が多すぎて扱いづらいといった状況で、PCAが前処理として選択肢になります。次元を減らすことで、学習時間やメモリ使用量が減り、反復が回しやすくなる場合があります。

一方で、教師あり学習(分類・回帰)では「分散が大きい方向」が「目的変数に効く方向」と一致しないこともあります。PCAを入れる場合は、導入前後で評価指標(精度・再現率・MAEなど)がどう変わるかを確認し、目的に合うかで判断することが重要です。

異常検知・外れ値検出(再構成誤差の活用)

PCAでは、低次元空間に写像した後、元の空間へ戻す(再構成する)ことができます。このとき、元データと再構成データの差(再構成誤差)が大きい点は、通常のパターンから外れている可能性があります。

センサーデータ、ログ、取引データなど大量データの監視では、まず正常データの構造をPCAで学び、再構成誤差が大きいものを「要確認」として扱う、という使い方が見られます。ただし、異常の定義は業務によって異なるため、閾値の設計や誤検知の取り扱いまで含めて運用設計が必要です。

主成分分析の注意点と留意事項

PCAは便利な一方、前提条件や解釈の落とし穴もあります。ここでは「やってから困る」ポイントを先に押さえます。

前処理が結果を左右する

PCAはデータのばらつきをそのまま拾うため、欠損値や外れ値、異常なスケールの変数があると結果が大きく歪むことがあります。最低限、次の確認が重要です。

  • 欠損値の扱い(除外・補完・別カテゴリ化など)を決めたか
  • 外れ値が「誤記」なのか「重要な現象」なのかを切り分けたか
  • 尺度が混在している場合、標準化するかどうかを目的に沿って決めたか

主成分は「意味が自明」ではない

主成分は線形結合であり、係数の符号や大きさだけを見ても、業務上の意味づけが難しいことがあります。特に、似た指標が多いデータでは主成分が「複数の要因の混合」になりやすく、説明の言葉が必要になります。

主成分に名前を付けて説明したい場合は、負荷量の上位変数を眺めるだけでなく、主成分得点と業務KPI(売上、解約、品質指標など)の関係も合わせて見て「どういう状態を表す軸なのか」を固めると、運用に耐える説明になります。

情報損失は避けられない

PCAは次元を減らす以上、何らかの情報は落ちます。累積寄与率が高くても「目的に必要な情報」が残っているとは限りません。例えば、異常や不正のように微小な差が重要なケースでは、圧縮によって信号が薄まる可能性があります。

次元数の選択は、寄与率だけで決めず、下流タスクの評価や運用のしやすさ(説明責任、再現性)を含めて総合判断するのが安全です。

線形手法であることの制約

PCAは線形変換です。データの構造が強く非線形(例:曲線状の分布、複雑な多峰性)である場合、少数の主成分では特徴を表現しきれないことがあります。その場合は、非線形次元削減(t-SNE、UMAP、オートエンコーダ等)が候補になりますが、解釈性や再現性、パラメータ依存性など別の注意点も増えます。

まずPCAで全体像を掴み、限界が見えたら次の手法を検討する、といった段階的な進め方が現場では扱いやすいでしょう。

まとめ

主成分分析は、多変量データを少数の軸で表現し直し、可視化や探索、前処理、異常検知などに活かせる代表的な次元削減手法です。次元が増えることで生じる課題(次元の呪い)は一枚岩ではありませんが、PCAは相関の強い情報をまとめ、扱いやすい形にすることで分析を前に進める助けになります。

一方で、PCAは「分散の大きさ」を基準に軸を作るため、目的変数に効く情報を必ず残せるとは限りません。前処理、標準化の判断、主成分数の決定、解釈の付け方までを含めて設計し、導入前後で目的に対して有効かを確認することが重要です。

FAQ

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

多変量データを少数の軸に圧縮し、可視化や解析の負荷低減、構造理解に役立てるための手法です。

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

教師なし学習です。

Q.次元の呪いとは何ですか?

次元が増えることで必要データ数や計算量が増え、距離や密度の推定が不安定になるなどの問題の総称です。

Q.主成分分析を使えば次元の呪いは解決しますか?

完全に解決する手段ではなく、相関の強い情報をまとめて問題を緩和するための手段です。

Q.主成分分析の前に標準化は必須ですか?

必須ではなく、尺度の違いが結果に影響する場合に行うのが基本です。

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

累積寄与率やスクリープロット、下流タスクの評価結果を踏まえて総合的に決めます。

Q.主成分はどのように解釈すればよいですか?

負荷量と業務指標との関係を合わせて確認し、軸が表す状態を説明できる形に整理します。

Q.主成分分析は情報を失いますか?

次元を減らす以上、情報損失は発生します。

Q.主成分分析は異常検知に使えますか?

再構成誤差や主成分空間での距離を用いて異常候補を抽出する用途で使えます。

Q.非線形のデータにも主成分分析は有効ですか?

線形構造の近似に強い手法のため、非線形が強い場合は表現しきれないことがあります。

記事を書いた人

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