主成分分析(PCA)の世界へようこそ!
こんにちは!今日は、予測モデラーのツールキットの中で最も強力な「スーパーパワー」の一つ、主成分分析(Principal Components Analysis: PCA)について学びます。この章は、データ変換と教師なし学習を巡る旅の一部です。
名前を聞いて難しそうだなと思っても大丈夫ですよ。PCAの本質は、複雑なデータを単純化する賢い方法に過ぎません。例えば、50個ものアイテムが散らかった散らかり放題の部屋を想像してみてください。PCAを使えば、それらのアイテムをうまく分類できる「3〜4個の大きな箱」を見つけ出し、部屋の状態をずっと簡単に説明できるようになるのです。それでは、始めましょう!
PCAとは一体何か?
アクチュアリーが扱うデータセットの多くには、数十(あるいは数百)もの変数があります。多くの場合、これらの変数は相関しており、つまり互いに連動して動いています。例えば、生命保険のデータセットでは、「年齢」、「職務経験年数」、「白髪の本数」などは、おそらくすべて一緒に増加する傾向があるでしょう。
主成分分析(PCA)は、元の多数の変数を、主成分(Principal Components: PCs)と呼ばれる少数の新しい変数に変換する手法です。これらの新しい変数は、元のデータが持つ「情報(分散)」の大部分を保持しつつ、扱いが非常に簡単になっています。
目標:元のデータの「ストーリー(情報量)」を可能な限り保持しながら、変数の数を減らす(次元削減)。
なぜExam PAで使うのか?
1. 次元削減:少ない予測変数でモデルを単純化できます。
2. 多重共線性の除去:元の変数は高い相関を持つことがありますが、新しい主成分は互いに無相関(直交)です。
3. 視覚化:10次元をグラフにするのは困難ですが、最初の2つの主成分であれば簡単にグラフ化できます!
クイック復習:PCAは教師なし学習の手法です。これは、PCAを実行する際に「特徴量(\(X\)変数)」のみを見ており、「ターゲット(\(Y\)変数)」については知る必要も関心もないことを意味します。
ステップ・バイ・ステップ:PCAの仕組み
数学に怖気づかないでくださいね!PCAはデータの回転だと考えてみてください。PCAは、データが最も「広がっている」方向を探し出し、それを第1主成分(PC1)と呼びます。次に、その方向と直交する(90度の)方向の中で、次にデータが広がっている方向を探し、それをPC2と呼びます。
1. スケーリングの重要性
ちょっと待って!PCAを実行する前には、ほぼ必ずデータをスケーリング(平均を0、標準偏差を1に変換)する必要があります。
なぜでしょうか? PCAは測定単位の影響を受けやすいからです。ある変数が「所得(千ドル単位)」で、別の変数が「年齢(年単位)」の場合、数値が大きいという理由だけで「所得」の分散が非常に大きくなってしまいます。PCAは単に数値の大きさだけで、所得の方が重要だと誤解してしまうのです。スケーリングを行うことで、すべての変数を公平な土俵に立たせることができます。
2. ローディング(「レシピ」)
各主成分は、元の変数の線形結合です。この結合における重みをローディング(負荷量)と呼びます。
例えば: \(PC_1 = \phi_{11}X_1 + \phi_{21}X_2 + ... + \phi_{p1}X_p\)
ローディングベクトルは、元の各変数がその成分にどれだけ「貢献」しているかを示します。ある変数のローディングが大きい(正または負)場合、その変数はその成分の「風味」を決定づける大きな要素だといえます。
3. スコア(新しい座標)
「レシピ(ローディング)」ができあがったら、特定の個人のデータを代入することで、その成分のスコアを得ることができます。これらのスコアが、回帰モデルやGBMモデルで使用できる、新しく変換されたデータポイントになります。
豆知識:第1主成分(PC1)は常にデータの中で最大の分散を捉えます。PC2は次に大きい分散を捉え、以下同様に続きます!
いくつの成分を残すべきか?
\(p\)個の変数から始めて、最終的に\(p\)個の主成分が得られます。全部残してしまっては、何も単純化できていませんよね!どこで止めるかを決める必要があります。
スクリープロットと「エルボー(肘)」
スクリープロットは、各成分によって説明される分散比(Proportion of Variance Explained: PVE)を示すシンプルな折れ線グラフです。
成分の数を選ぶには、「エルボー(肘)」を探します。これはグラフの曲線が平坦になり始めるポイントです。「これ以降の成分を追加しても、それほど有用な情報は得られない」という境界線のようなものです。
累積分散
もう一つの方法は、累積PVEを見ることです。「データの全分散の80%を説明できるだけの成分を残したい」といった目標を立て、PC1、PC2…とPVEを合計していき、80%に達したところで止める、といった方法です。
重要なポイント:データの「本質」を捉えつつ、最小限の成分数に抑えることが理想です。
よくある落とし穴と間違い
1. スケーリングを忘れる:前述の通り、スケーリングをしないと、数値の範囲が最も大きい変数にPCAの結果が支配されてしまいます。
2. 過度な解釈:PC1が明確に「規模」や「リスク」を表すこともありますが、成分を平易な言葉で説明するのが難しい場合もあります。それで大丈夫です!PCAは変換のためのツールであり、必ずしもストーリーテリングのためのものではありません。
3. 何でもかんでもPCA:PCAは多くの連続変数には非常に有効ですが、カテゴリ変数(因子)には注意が必要です。通常は連続変数に対して使用します。
クイック復習用まとめ表
概念:スケーリング
重要性:大きな単位を持つ変数がPCAを支配するのを防ぐ。
概念:ローディング
重要性:元の変数が主成分にどれだけ影響を与えるかを示す重み。
概念:PVE
重要性:特定の主成分がどれだけの「情報量」を含んでいるかを示す。
概念:直交性
重要性:主成分同士が無相関であることを意味し、多重共線性の問題を解決する。
最後に励ましの言葉
PCAは、現実の変数から架空の変数を作り出すため、「抽象的」に感じられるかもしれません。そんなときは影の例えを思い出してください:3Dの物体を光の前にかざすと、壁に映る2Dの影はその物体の「低次元」バージョンですよね。物体をうまく回転させれば、その影は物体の最も重要な形状を捉えることができます。PCAとは、影にとって最適な角度を見つける作業そのものなのです!
あなたなら大丈夫!PCAのRコード(通常は prcomp 関数を使います)を使って練習を続ければ、これらの概念がどう活きるか、すぐに実感できるようになりますよ。