PCAの概要
PCA(主成分分析)は、観測された多変量データに含まれる主要な変動パターンを、少数の要素(主成分)に要約するための統計的手法である。高次元で扱いにくい特徴を、元データとの対応を保ちつつ圧縮し、探索的分析や前処理に用いられることが多い。目的は次元削減にとどまらず、特徴抽出やノイズの抑制、低次元空間での可視化などにも及ぶ。
主成分は、元の変数の線形結合として定義され、各主成分は互いに独立な方向(直交方向)に沿ってデータを説明するよう選ばれる。結果として、相関の強い変数が混在していても、データの構造を整理しやすくなる。とくに、データのばらつきが特定の方向に偏っている場合に効果が発揮される。
定義と目的
PCAは、中心化したデータ行列を対象に、分散が最大となる方向を順に探し、その方向への射影によって新しい座標系を構成する手法である。第一主成分は「最も広がる」方向、第二主成分は第一主成分に直交しつつ次に広がる方向、といった順序で主成分が決まる。これにより、元の高次元情報を少数の軸に写し替えた低次元表現が得られる。
目的は主に、(1)次元削減による計算負荷の低減、(2)特徴抽出としての表現の簡約化、(3)可視化によるデータ構造の把握、(4)ノイズ低減を意図した前処理、(5)回帰や分類など他のモデルに入れるための前段としての座標変換、などに整理できる。
原理:分散最大化
PCAの中核となる考え方は、「ある線形変換後の成分の分散を最大化する方向を探す」という最適化である。データを一つの軸へ射影したとき、その射影値の分散が大きいほど、元データの変動をよく表していると解釈される。したがって、第一主成分は、単位長の方向ベクトルを変えて射影分散を最大化する方向として得られる。
さらに、第二主成分以降は、先に得た主成分と直交する制約の下で同様に分散を最大化する。直交制約は、重複した情報の回収を避け、主成分間で同時に説明できる変動を整理する役割を持つ。その結果、寄与の大きい変動から順に成分が並び、少数成分での近似が可能になる。
数学的な枠組み
PCAは線形代数と統計の接点にあり、共分散行列の分解を通じて主成分を算出する形で定式化される。データが複数サンプルから成るとき、変数間の同時変動を表す共分散構造を行列として表現し、その固有構造から主成分方向と重要度が導かれる。
3.1 共分散行列
共分散行列は、各変数のばらつきと変数間の相関の強さをまとめた行列である。まず各変数について平均を引き、中心化したデータを用いることで、原点を基準とした変動が表現される。中心化後のデータを行列 \(X\) とすると、共分散行列 \(S\) は概ね \(S=\frac{1}{n-1}X^\top X\) の形で定義される(係数は定義により異なることがあるが、本質は同じである)。
共分散行列の対角成分は各変数の分散、非対角成分は共分散に対応する。PCAの解は、この行列が持つ分散の方向性、すなわち大きな固有値に対応する空間方向を抽出することで得られる。
3.2 固有値・固有ベクトル
共分散行列 \(S\) に対して固有値問題 \(S v=\lambda v\) を考えると、固有ベクトル \(v\) は「変動が強く現れる方向」を表し、固有値 \(\lambda\) はその方向での分散量を示す。PCAでは、固有値の大きい順に固有ベクトルを並べることで、データの説明に重要な軸から優先的に選ぶ。
さらに、主成分は固有ベクトルを係数とする線形結合として表現できる。各主成分は互いに直交する性質を持つため、成分間の冗長性が抑えられ、寄与の大きい順に情報が圧縮される。数値計算上は、固有値・固有ベクトルを求めることが中心になるが、実装では後述する特異値分解を用いて安定に計算する場合も多い。
実装の流れ
PCAの実装は、大きく「前処理→主成分の算出→低次元への射影と復元(必要に応じて)」に分けられる。実務ではデータの性質に応じて、標準化や欠損値処理、次元数選択の戦略が結果に影響するため、手順の意図を理解した上で進めることが望ましい。
2.1 データ前処理
PCAは中心化したデータと分散構造に基づくため、変数のスケールや欠損の扱いは重要である。特に、単位の異なる特徴をそのまま結合すると、分散が大きい変数が支配的になり、重要な情報が埋もれる可能性がある。そのため前処理でスケールを整え、欠損を扱う設計が必要になる。
2.1.1 標準化(スケーリング)
標準化(スケーリング)とは、各変数を同程度の尺度にそろえる操作である。代表例として、平均を差し引いた後に標準偏差で割ることで、各変数を単位分散に近づける。これにより、特徴量間で分散の大きさが比較できる状態になり、主成分の方向が特定の変数のスケールに引きずられにくくなる。
ただし標準化が適切かは目的とデータの意味に依存する。例えば、物理量として絶対的な単位が意味を持つ場合、尺度を変えること自体が解釈を損ねることもある。したがって、標準化は「相対的な変動の構造を見たいのか」「単位に基づく実量の変動を重視したいのか」を基準に選ぶ。
2.1.2 欠損値への対応
欠損値がある場合、通常のPCAでは共分散行列が計算できない。代表的な対応として、欠損を含む行・列の削除、統計的補完(平均補完、中央値補完など)、より発展的な推定(反復的な補完や低ランクモデルに基づく補完)などが選択肢となる。
どの方法を使うかは、欠損がランダムかどうか、欠損率がどれくらいか、補完によって分散構造にバイアスが入りそうか、といった観点で決める必要がある。目的が探索的理解なのか、予測性能の改善なのかでも望ましい戦略が変わる。
2.2 主成分の計算
主成分の計算は、共分散行列の固有分解から行う方法、あるいは特異値分解を用いる方法がよく用いられる。データの形状(サンプル数と変数数の大小)によって、数値安定性や計算効率が異なるため、実装では使い分けが行われることがある。
2.2.1 共分散行列方式
共分散行列 \(S\) を作り、その固有値・固有ベクトルを計算して主成分方向を得る方法である。中心化したデータ \(X\) に対し \(S=\frac{1}{n-1}X^\top X\) を計算し、固有値の大きい順に固有ベクトルを選択する。選ばれた固有ベクトルの集合が、主成分の軸として解釈できる。
この方式は概念がわかりやすい一方で、変数数が多い場合に共分散行列が巨大になり計算コストが増えることがある。そのため、サンプル数と特徴数の関係を踏まえて別方式を選ぶ実務的理由が生まれる。
2.2.2 特異値分解方式
特異値分解方式では、中心化データ \(X\) を直接 \(X=U\Sigma V^\top\) に分解する。ここで \(V\) の列ベクトルが主成分方向に対応し、\(\Sigma\) の特異値から分散量(固有値に相当する量)を算出できる。共分散行列を明示的に作らずに済むため、計算やメモリの面で有利な場合がある。
とくに変数数がサンプル数より大きい場合、共分散行列方式よりも特異値分解が扱いやすくなることが多い。数値計算では特異値分解の安定性が評価されることもあり、ライブラリ実装ではこの流れが採用されることが多い。
2.3 次元削減と復元
主成分軸が得られた後、データを少数次元へ射影することで圧縮表現が作られる。復元は、低次元表現を元の空間へ戻したときの近似として理解され、情報保持の評価に用いられる。
2.3.1 低次元表現への射影
主成分の行列 \(W\)(選んだ固有ベクトルを列に持つ)を用いると、低次元表現 \(Z\) は \(Z=XW\) のように計算できる。\(Z\) の各列が選択した主成分に対応し、サンプルごとのスコアが得られる。
この射影によって、元の特徴量の集合を、少数の軸に沿って再表現できる。以後の学習器や可視化は、この \(Z\) を入力として行うことで、次元数の削減による効率化や過学習の緩和が期待される。
2.3.2 復元誤差と情報保持
| 低次元表現から元の空間へ戻す操作では、近似的に \(\hat{X}=ZW^\top\) の形で復元する。復元誤差は \(\|X-\hat{X}\|\) といった指標で測られ、どれだけの分散を保持できているかを反映する。 |
|---|
一般に、保持する主成分の数を増やすほど復元誤差は小さくなる。したがって、少数成分でどの程度の情報が残るかを把握し、目的に応じてトレードオフ(圧縮率と精度)を調整することが重要となる。
出力の解釈
PCAの出力は単なる次元削減結果ではなく、データの変動構造に関する解釈材料を含む。説明分散の割合、各主成分を構成するローディング、そしてサンプルごとのスコアを組み合わせて読み解く。
3.1 説明分散と寄与率
各主成分に対応する固有値は、その軸方向における分散量を表す。寄与率は、固有値を全固有値の合計で割った比率として定義され、どれだけの変動がその主成分によって説明されるかを示す指標となる。
寄与率が大きい主成分が上位に並ぶほど、少数成分で全体を要約しやすい。累積寄与率は、例えば上位 \(k\) 個の主成分で全体のどれだけの割合を保持できるかを示し、次元選択の判断材料になる。
3.2 ローディングとスコア
ローディングは、主成分が元の変数の線形結合としてどのように作られているかを示す係数である。たとえば第一主成分のローディングがある変数で大きい場合、その変数の変動が第一主成分の形成に強く関与していることを意味する。
スコアは、各サンプルが主成分軸に対してどの程度の値を持つかを表す。サンプルのばらつきはスコアの分布として観測され、スコアの高低によりサンプルがどの方向に位置するかが理解できる。可視化では、このスコアを主成分軸に沿って描くことで構造が見えやすくなる。
3.3 主成分の意味づけ
主成分自体は線形結合であり、直接の「ラベル付き意味」を持つとは限らない。そのため意味づけは、ローディングのパターンや、データ領域での傾向を総合して行う必要がある。実務では、主成分を物理量や潜在因子のように比喩的に理解することもあるが、根拠のある解釈にとどめることが望ましい。
3.3.1 変数の影響度(寄与)
変数の影響度を議論する際には、主成分におけるローディングの大きさが手がかりになる。ある主成分で特定の変数の係数が大きい場合、その変数の変動がその主成分の軸の主要な構成要素になっていると考えられる。
ただし、符号(正負)も合わせて解釈することが重要である。符号が異なる変数同士は主成分上で逆方向に動く傾向を持ち、同じ主成分に対して相殺的に寄与する場合がある。この関係は、ローディングの符号と大きさの組で読み取れる。
3.3.2 可視化(2次元・3次元)
可視化では通常、上位の二つあるいは三つの主成分軸を用い、各サンプルのスコアを点として描画する。二次元なら横軸と縦軸に第一・第二主成分のスコアを配置し、三次元なら追加で第三主成分を加える。これにより、クラスタ状の分布や連続的な傾き、外れ値の存在が捉えやすくなる。
可視化で得られる直感は強力だが、主成分が表す変動が必ずしも直感的な意味と一致するとは限らない。したがって、見た目の分離や方向性が、ローディングと寄与率の観点と整合するかを確認する姿勢が重要である。
利用上の注意と発展
PCAの結果は、前処理、次元選択、データの統計的性質に強く依存する。さらに、PCAが前提とする線形構造から外れると性能や解釈が不安定になるため、限界を踏まえた運用が必要である。加えて、類似手法との違いを理解することで、用途に応じた選択が可能になる。
4.1 次元数の選び方
保持する主成分の数は、圧縮率と復元精度(あるいは学習性能)との折衷で決める。通常、寄与率や累積寄与率を指標にしつつ、タスクに対する評価指標で妥当性を検証することが多い。
4.1.1 寄与率による選択
累積寄与率がある閾値を超えるところまで主成分を採用する方法がある。例えば、累積寄与率が一定割合(一般に「大きめの目標値」が設定される)に達する最小の \(k\) を選ぶ、という考え方である。
ただし寄与率が高いからといって、下流タスクで必ずしも性能が最良になるとは限らない。寄与率は分散量の説明であって、目的変数との関連を直接保証しないため、最終的には目的に沿った検証を併用するのが望ましい。
4.1.2 スクリープロット
スクリープロットは、固有値(または寄与率)が主成分の順にどのように減衰するかを折れ線で示した図である。固有値が急激に落ちる「ひざ」の位置を手がかりに、以降の成分は相対的に寄与が小さいと判断して次元数を決める。
ひざの見え方はデータ依存であり、主観が入りやすい面がある。そのため、スクリープロット単独で決めず、閾値設定やタスク評価と組み合わせて確定させることが実務的である。
4.2 前提と限界
PCAは線形変換に基づき、直交性の下で分散を最大化する。従って、非線形な構造や複雑な依存関係が本質である場合には、十分に表現できないことがある。さらにデータの品質(外れ値、スケール、欠損)にも影響される。
4.2.1 直交性と線形性
PCAが生成する主成分は直交するため、成分間で同時に説明される変動の重なりが最小化される。この性質は計算上の整理にも寄与するが、現実のデータが直交という前提と一致するとは限らない。また、変換は線形結合であり、潜在構造が曲線的に現れると、低次元での近似が限界に達しやすい。
線形性の限界は、解釈面でも現れる。主成分は「線形に混ざった要因」を表しているため、相互作用が強く非線形な場合は、主成分だけでは因果や機構を単純化しすぎる恐れがある。
4.2.2 外れ値の影響
外れ値は分散を大きくするため、主成分の方向を左右しやすい。結果として、真に重要な変動よりも外れ値を説明する軸が優先され、低次元表現が目的からずれてしまうことがある。特に、単発の極端な点があるデータでは影響が顕著になりうる。
対策としては、外れ値検出と除外、頑健なPCA系の利用、スケーリングや前処理の見直しなどが挙げられる。いずれも、データの生成過程と外れ値の性質を理解した上で判断する必要がある。
4.3 関連手法との比較
PCAは低ランク近似や次元削減一般の枠組みと密接な関係がある。また、分類に関連する手法として線形判別分析があり、目的関数の違いが選択の分かれ目になる。ここでは代表的な比較観点を整理する。
4.3.1 低ランク近似
PCAは、データ行列を低ランクで近似することと同等の観点で理解できる。すなわち、保持した主成分による復元は、固有値に基づく最適な低次元近似になっている。このため、圧縮と復元の両面で同じ数学的基盤を共有する。
この関係により、画像圧縮のように情報を圧縮しつつ近似を行う場面でも利用されることがある。近似の良さは、上位の固有値がどれだけ大きいか、つまり寄与の集中度に依存する。
4.3.2 線形判別分析との違い
線形判別分析(LDA)はクラス情報を用いて、クラス間の分離を最大化する方向を求めるのが特徴である。一方、PCAはラベルを使わず、クラスの区別よりも全体の分散を最大化することに重点を置く。そのため、同じ線形変換でも目的関数が異なる。
実務では、ラベルが利用可能で分類性能を狙うならLDAが適切な場合がある。一方、ラベルなしでデータ構造を把握し、前処理として汎用的に圧縮するならPCAが選ばれることが多い。比較する際は「何を最大化しているのか」という観点が最も重要になる。