1 定義と基本概念
1.1 主成分分析の復習
1.1.1 共分散行列と固有値分解
主成分分析(PCA)は、多変量データの分散構造を捉えるための線形次元削減手法である。元のデータ行列を X(n 個の観測値 × p 個の変数)とし、各変数が平均 0 に中心化されていると仮定する。このとき、p × p の共分散行列 Σ = (1/(n−1)) Xᵀ X が定義される。共分散行列は対称かつ半正定値であり、その固有値分解により Σ = V Λ Vᵀ と表される。ここで V は固有ベクトルを列に持つ直交行列、Λ は固有値を対角成分に持つ対角行列である。固有値は各固有ベクトル方向の分散を表し、大きい順に並べ替えられる。
1.1.2 主成分の導出
固有値の大きい順に対応する固有ベクトル v₁, v₂, …, vₚ が第1主成分、第2主成分、…、第p主成分の方向を定義する。第k主成分は、元の変数の線形結合 zₖ = X vₖ として得られる新たな変数であり、その分散は対応する固有値 λₖ に等しい。主成分は互いに直交し(無相関)、データの全分散を累積的に説明する。通常、最初の数個の主成分でデータの大部分の変動を捉えられる。
1.2 主成分得点の数学的定義
1.2.1 線形結合としての表現
主成分得点とは、各観測値が特定の主成分上で取る値である。数学的には、i 番目の観測値 xᵢ(p次元行ベクトル)の第k主成分得点は、対応する固有ベクトル vₖ(p次元列ベクトル)との内積で与えられる:tᵢₖ = xᵢ · vₖ。これを全観測値・全主成分に拡張すると、主成分得点行列 T = X V が得られ、T の各列が各主成分の得点ベクトルに対応する。得点は元の変数のスケールに依存するため、標準化の有無によって解釈が異なる。
1.2.2 得点行列の構成
n × p の得点行列 T は、元のデータ行列 X に負荷量行列 V(固有ベクトルを列に持つ p × p 行列)を右から乗じることで得られる。実用上は次元削減のため、最初の d 個(d < p)の主成分のみを用い、T_d = X V_d と表す。ここで V_d は最初の d 個の固有ベクトルからなる p × d 行列である。得点行列の各列は平均 0、分散は対応する固有値に等しい(ただし、後述の正規化により分散が1に調整されることもある)。
2 計算方法
2.1 データの標準化
PCA を行う前に、変数のスケールが異なる場合には標準化(各変数を平均 0、分散 1 に変換)が推奨される。標準化は、各変数から平均を引き、標準偏差で除す操作である。これにより、共分散行列ではなく相関行列を用いることと等価になり、すべての変数が等しく扱われる。標準化を行わないと、分散の大きい変数が主成分に過剰に影響を与える。標準化後のデータ行列を Z と表記する。
2.2 固有ベクトルの取得
標準化(または中心化のみ)後のデータの共分散行列(または相関行列)を計算し、その固有値分解または特異値分解(SVD)により固有ベクトルを求める。SVD を用いる場合、データ行列 Z を Z = U S Vᵀ と分解し、V の列が固有ベクトル、特異値の二乗が(n−1)倍された固有値に対応する。計算には数値的に安定なアルゴリズム(例えば scikit-learn の PCA)が通常用いられる。
2.3 射影による得点の計算
2.3.1 元データへの重み付け
得点は、標準化後のデータ Z と固有ベクトル行列 V の積として計算される:T = Z V。各得点は、各変数に固有ベクトルの重み(負荷量)を乗じて総和したものである。負荷量は主成分と元の変数との相関係数に比例する(標準化データの場合)。この射影操作により、元の p 次元空間の各点が新しい直交座標系に写される。
2.3.2 得点の正規化(オプション)
得点列の分散を1に揃えるため、得点を対応する固有値の平方根で除すことがある。すなわち、T_norm = T Λ^{-1/2} とする。正規化された得点は単位分散を持ち、各主成分が同等のスケールで扱われる。これは後続の分析(例えばクラスタリング)で距離計算に影響を与える。非正規化得点の方が分散の大きさを保持するため、可視化や解釈においては非正規化が一般的である。
3 解釈と可視化
3.1 得点の意味とスケール
主成分得点は、各観測値が主成分方向にどれだけ位置するかを示す。第1主成分得点の符号は観測値が平均からどちらの側にあるか、絶対値は平均からの距離(分散の大きさ)を表す。スケールは元データのスケールと固有値に依存する。標準化データの場合、得点の標準偏差は対応する固有値の平方根に等しい。得点が 0 の点は主成分軸上の原点、すなわち全変数の平均に近い観測値を意味する。
3.2 バイプロットによる同時可視化
3.2.1 バイプロットの構成要素
バイプロットは、主成分得点と負荷量(固有ベクトルの成分)を同一平面上にプロットした図である。点(得点)は観測値を、矢印(負荷量ベクトル)は元の変数を表す。水平軸と垂直軸は通常第1主成分と第2主成分に対応する。バイプロットでは、観測値間の距離やグループ構造、変数間の相関関係、および観測値と変数の関連を同時に視覚化できる。
3.2.2 得点と負荷量の関係
バイプロット上で、特定の変数の負荷量ベクトルが長く、かつ第1主成分軸と鋭角をなす場合、その変数は第1主成分に強く寄与している。観測値の得点と負荷量ベクトルの内積の符号は、その観測値がその変数に関して平均より高いか低いかを示す。変数間の角度が小さい(90°未満)場合は正の相関、90°を超える場合は負の相関、90°付近ではほぼ無相関と解釈される。
3.3 スクリープロットを用いた次元選択
スクリープロットは、各主成分の固有値を降順にプロットしたものである。横軸に主成分番号、縦軸に固有値(または説明分散比)を取る。グラフが急激に減少し、その後なだらかになる「エルボー点」を見つけることで、保持すべき主成分数を決定する。エルボー以降の主成分はノイズとみなされることが多い。さらに累積説明分散比が一定の閾値(例:80%–90%)に達するまでの主成分数を選択する方法もある。
4 応用と実践
4.1 次元削減と特徴量抽出
主成分得点は、元の高次元データを低次元の特徴量に圧縮する。例えば画像データ(画素が変数)では、数百次元を数十の主成分得点で近似できる。これにより、ストレージの節約、計算コストの低減、そして後続の機械学習モデルの過学習防止が期待できる。得られた得点は元の変数の線形結合であるため、解釈可能性を維持しながら次元を削減できる。
4.2 クラスタリングとグループ発見
主成分得点を入力としてk-meansや階層的クラスタリングを適用することで、データの自然なグループ構造を発見できる。低次元空間での距離は元の高次元空間での距離を近似するため、クラスタリングの効率と安定性が向上する。バイプロットと組み合わせると、クラスタとそれに寄与する変数の関係を視覚的に把握できる。
4.3 外れ値検出
主成分得点の絶対値が大きい観測値は、全体の分散構造から逸脱した外れ値である可能性がある。特に、少数の主成分で説明される分散が小さい領域(例えば第d+1主成分以降)で大きな得点を持つ観測値は、再構成誤差が大きく、異常値として検出される。Q統計量(残差分散)やホテリングのT²統計量(主成分空間内のマハラノビス距離)が外れ値検出に用いられる。
4.4 回帰分析や分類モデルへの入力利用
主成分得点は、多重共線性の問題を回避するための回帰分析(主成分回帰;PCR)や、分類モデル(ロジスティック回帰、SVM、ニューラルネットワーク)の入力特徴量として利用される。元の変数間の相関を除去し、直交する特徴量を提供することで、モデルの安定性と汎化性能を向上させる。ただし、主成分は目的変数との関係を考慮せずに構築されるため、予測性能が常に最適とは限らない。
5 限界と注意点
5.1 スケーリングの影響
PCA は変数のスケールに敏感である。分散の大きい変数が主成分を支配するため、異なる単位や桁数の変数を含む場合は標準化が必須である。標準化の有無で主成分の方向や得点の解釈が大きく変化するため、分析目的に応じて適切な前処理を選択する必要がある。
5.2 外れ値に対する感度
共分散行列(または相関行列)は外れ値の影響を強く受けるため、主成分の方向が少数の異常値によって歪められることがある。その結果、得点も歪み、本来のデータ構造を正しく反映しない。ロバストPCA(例えば最小共分散行列推定に基づく手法)や、外れ値を事前に除去する処理が推奨される。
5.3 解釈の難しさ(直交性と重みの符号)
主成分は互いに直交するため、元の変数間の複雑な関係を単純な直交軸で近似することになる。また、固有ベクトルの符号は任意であり(正負反転しても同じ分散を説明する)、得点の符号もそれに応じて変化する。このため、負荷量が正か負かは絶対的な意味を持たず、相対的な比較に注意が必要である。さらに、主成分は現実的な概念と対応しない場合が多く、ブラックボックス的な扱いになりがちである。
5.4 高次元データでの過学習リスク
観測数 n が変数数 p より少ない(p > n)高次元設定では、標本共分散行列が特異となり、固有値分解が不安定になる。この場合、主成分は訓練データに過適合し、一般化性能が低下する。正則化付きPCA(スパースPCAなど)や、カーネルPCAなどの非線形拡張を用いることで対処できる。また、交差検証により適切な主成分数を選択することも重要である。