主成分分析|固有値分解で軸を作る次元圧縮

主成分分析

主成分分析は、多数の変数を持つ観測データから、情報の重複とノイズを圧縮し、少数の直交した合成変数(主成分)へ写像する多変量解析手法である。分散が最大となる方向を第一主成分として定め、以降は直交条件の下で第二、第三と続ける。可視化、次元削減、特徴抽出、前処理に広く用いられ、製造・品質管理や計測、マーケティング、画像・音声、バイオなど応用領域は広い。線形変換であり、距離や相関の構造を保ちつつ解釈可能性を確保するのが特徴である。実装は行列計算に依拠するため高速で安定し、探索的データ解析の出発点として有効である。

基本概念

主成分分析は、中心化したデータ行列の共分散構造を固有値分解し、最大の固有値に対応する固有ベクトルを第一主成分の方向として採る。各観測の座標を主成分空間へ写した値がスコアであり、各変数が主成分へ寄与する係数が負荷量である。主成分間は直交するため、多重共線性の影響を受けにくい。寄与率は各固有値の総和に占める比で、累積寄与率が閾値を超えるまでの主成分数を採用するのが通例である。

典型的な手順

  1. データの中心化と必要に応じた標準化(z-score)を行う。
  2. 共分散行列または相関行列を構成する(単位が異なる場合は相関行列が無難)。
  3. 固有値分解またはSVDで固有値・固有ベクトル(主成分軸)を得る。
  4. 固有値の降順に並べ、スコアを計算する。
  5. スクリープロットや累積寄与率、再構成誤差で次元数を決める。
  6. 負荷量とスコアの解釈(バイプロット等)で特徴を把握する。

データ前処理とスケーリング

中心化は必須である。スケール差が大きい場合は標準化が望ましいが、物理量の意味が重要なら共分散ベースを選ぶ。外れ値は固有値に強く影響するため、ロバスト化や外れ値処理を検討する。欠測は単純削除よりも適切な代入法を用いるべきである。ホワイトニングは固有値で正規化し、各主成分の分散を1にそろえる処理であり、一部の学習器の前段に有効である。

主成分の解釈

主成分分析の負荷量は「どの変数がどの主成分を形作るか」を示す。符号は任意であり、主成分軸の方向を反転しても解の本質は変わらない。解釈は領域知識と併用し、過度な擬人的説明を避ける。バイプロットはスコアと負荷量を同一平面に表し、群分離や変数間関係の直観的理解を助ける。

次元削減と可視化

高次元データを低次元へ写像することで、散布図による群構造の把握、ノイズ低減、学習器の過学習抑制、計算量削減が可能となる。2〜3次元のスコア散布は品質管理や工程解析で異常群やロット差を示す有力な手掛かりとなる。一方で、低次元化により局所的な構造が失われる可能性もあるため、目的に応じた次元数を慎重に選ぶ。

計算視点(SVD)

数値的にはSVDが実務向きである。中心化行列Xに対しX=UΣV^Tと分解すれば、Vの列が主成分軸、UΣがスコアに相当する。共分散行列の固有分解と等価だが、SVDは安定で欠損や変数数≫観測数の状況にも強い。計算量はデータ次元とサンプル数に依存し、近似SVDやランダム化法を用いれば大規模データにも対応できる。

モデル選択と評価

  • 累積寄与率(例:80〜95%)で基準を設ける。
  • スクリープロットの肘点を指標にする。
  • 下流タスクでの交差検証(分類精度、回帰誤差)で妥当性を確認する。
  • 再構成誤差や情報量基準で補助評価する。

発展手法

非線形構造にはkernel PCA、疎な解釈性にはsparse PCA、外れ値に頑健なrobust PCA、確率モデル化にはprobabilistic PCAがある。非線形可視化のt-SNEやUMAPは局所構造の把握に長けるが、尺度や再構成の意味が異なるため、主成分分析はベースラインとして依然有用である。

よくある落とし穴

標準化の濫用、相関行列と共分散行列の取り違え、訓練データ外情報のリーク、外れ値放置、符号任意性の誤解、負荷量の過度解釈が典型である。前処理・分割・評価を一貫させ、工程差や測定誤差の文脈を踏まえて解釈すべきである。主成分分析は目的ではなく手段であり、可視化・学習・制御の全体設計に組み込むことが重要である。

コメント(β版)