第13回 多変量解析への招待:主成分分析(PCA)¶
1/12(火)Ⅱ講 10:35〜12:15・B402教室
たくさんの変数の背後にある、少数の軸を見つける ―― 次元を削減して本質を見る
今日のリンク
- 📊 スライドを開く
- 📓 Colabノートを開く(13_pca.ipynb)
- 📝 課題を提出する(Moodle・第13回)
- 課題の本文はこのページの末尾にあります
考え方をガイドで確かめる
この回の考え方は、統計の考え方ガイドの「回帰とモデル」でも解説しています。霊長類のデータを動かしながら確かめられます。
この回のゴール¶
- 次元削減(多くの変数を少数の軸にまとめる)の発想を理解する
- PCAの寄与率と負荷を読み、主成分に意味を与えられる
- 「PCAは情報を失う」「主成分に必ず意味があるとは限らない」を理解する
- 発展:第1主成分が「射影の分散が最大になる方向」であることを、2変数の場合に自分で導ける
到達目標との対応:G4・G3。
0. フック¶
霊長類データには、体重・妊娠期間・離乳日齢・寿命・産子数… とたくさんの変数がある。 全部の関係を一度に見るのは無理(変数5個でも散布図は10通り、10個なら45通り)。 これらの背後にある「本当の軸」は、いくつあるのだろう?
1. 主成分分析(PCA)の発想¶
生活史に関する5つの変数を使う:体重・妊娠期間・離乳日齢・最長寿命・一腹産子数。
前処理を2つ行う。① 何桁にもまたがる量なので対数にする ② 単位が違う(g・日・月・頭)ので標準化する。
PCAは、これら5次元のデータを、ばらつき(情報)が最も大きい方向に新しい軸を引き直す。最初の軸(第1主成分)が一番多くの情報を持ち、次の軸(第2主成分)がその次…と続く。少数の軸だけ残せば次元を削減できる。
(変数ごとに単位が違う(時間・%・日)ので、まず標準化して土俵をそろえる。)
導出①:第1主成分とは「射影したときの分散が最大になる方向」のこと
「ばらつきが最大の方向」という言い方を、式にしてみる。変数が2つの場合なら、三角関数だけで最後まで行ける。
標準化した2変数を \( z_1, z_2 \) とする。標準化してあるので \( \mathrm{Var}[z_1]=\mathrm{Var}[z_2]=1 \) で、共分散は相関係数 \( r \) そのものになる。
角度 \( \theta \) の向きの軸に各点を射影した値は、
この \( y \) の分散を展開する。第7回の導出②では独立を仮定したので共分散の項が消えたが、今回は消えない。2変数の関係こそが知りたいものだからである。
\( \mathrm{Var}[z_1]=\mathrm{Var}[z_2]=1 \)、\( \mathrm{Cov}[z_1,z_2]=r \) を入れ、\( \cos^{2}\theta+\sin^{2}\theta=1 \) と倍角の公式 \( 2\sin\theta\cos\theta=\sin 2\theta \) を使うと、
あとは \( \sin 2\theta \) が最大(=1)になる角度を選ぶだけである。\( 2\theta = 90^\circ \)、つまり
これが第1主成分である。直交する \( \theta=135^\circ \) では \( \sin 2\theta = -1 \) となり、最小値 \( 1-r \)。こちらが第2主成分になる。
式から読めることがもう一つある。相関が強いほど第1主成分は強くなる。\( r \) が大きいほど \( 1+r \) は大きい。逆に \( r=0 \) なら、どの向きに射影しても分散は1のままで、軸を選ぶ意味がなくなる。PCAが効くのは変数どうしが関係しあっているときだけ、というのがここで分かる。
数値で確かめる:この授業のデータで、対数をとって標準化した体重と離乳日齢の相関は \( r = 0.872 \)。式によれば最大分散は \( 1+r = 1.872 \)、その角度は45°のはずである。実際に角度を変えて射影の分散を計算すると、
| \( \theta \) | 射影した値の分散 |
|---|---|
| 0° | 1.000 |
| 30° | 1.755 |
| 45° | 1.872 |
| 60° | 1.755 |
| 90° | 1.000 |
| 135° | 0.128 |
最大は45°で 1.872、最小は135°で \( 1-r = 0.128 \)。この2変数でPCAを実行すると、第1主成分の方向として (0.707, 0.707) が返ってくる。これはちょうど45°の向きである。「分散最大の方向を探す」という定義が、そのまま答えになっている。
変数が3つ以上になると
変数が増えると、方向を角度1つでは書けなくなる。上の最大化は固有値問題(分散共分散行列の固有ベクトルを求める問題)という形になり、解き方は変わる。
だが探しているものは同じで、「射影の分散が最大になる方向」である。多変数の微分(ラグランジュの未定乗数法)を学ぶと、ここが一般の次元へつながる。それはこの地図で扱う統計数理の範囲外なので、名前だけ挙げておく。
使った数学:分散の展開(共分散の項つき)と、三角関数の倍角公式。2変数なら、これだけで第1主成分に届く。
寄与率:各軸がどれだけ情報を持つか¶
| 主成分 | 寄与率 | 累積 |
|---|---|---|
| 第1主成分 | 73.6% | 73.6% |
| 第2主成分 | 13.4% | 87.0% |
| 第3〜5主成分 | … | 100% |
第1主成分だけで全体の約74%、第2主成分まで合わせると約87%。5次元の本質は、ほぼ2次元に圧縮できる。
導出②:寄与率は「固有値の割合」である
主成分は、もとの変数を回転させて引き直した軸である。回転させても、データ全体のばらつきの総量は変わらない。座標の取り方を変えただけで、情報が増えたり減ったりはしない。だから各主成分の分散を全部足すと、もとの変数の分散の合計に戻る。
ここで \( \lambda_i \) は第 i 主成分の分散で、固有値と呼ばれる量にあたる。導出①の2変数の例では、\( \lambda_1 = 1+r \)、\( \lambda_2 = 1-r \) で、合計はちょうど 2、つまり変数の個数だった。
今回は標準化してあるので、各変数の分散はちょうど1。変数は5つなので、右辺は \( 1 \times 5 = 5 \) である。分けるべき情報の総量が5と決まっている。あとはそれを5本の軸がどう分け合うかという話になり、
寄与率を「その軸が説明する情報の割合」と呼べるのは、分母が全体の総量になっているからである。
数値で確かめる:今回の5変数(n=89種)で計算すると、
| 主成分 | 固有値 \( \lambda \) | \( \lambda/5 \) = 寄与率 |
|---|---|---|
| 第1 | 3.68 | 73.6% |
| 第2 | 0.67 | 13.4% |
| 第3 | 0.29 | 5.8% |
| 第4 | 0.24 | 4.8% |
| 第5 | 0.12 | 2.4% |
| 合計 | 5.00 | 100% |
上の表の 73.6%・13.4% は、こうして出てきた値である。
第1主成分の固有値 3.68 は、「1変数ぶんの情報=1」の 3.68 倍にあたる。5変数ぶんの情報のうち、3.68変数ぶんを1本の軸が持っていると読める。逆に第5主成分は 0.12 で、1変数ぶんにも満たない。
使った数学:分散の総和が回転で変わらないこと、割合の定義。固有値そのものの計算は機械に任せてよい。
2. 主成分の命名 ―― 負荷を読む¶
第1主成分が「何の軸」かは、各変数の効き方(負荷)を見て、人間が命名する。
| 変数 | 第1主成分 | 第2主成分 |
|---|---|---|
| 体重 | +0.48 | +0.21 |
| 妊娠期間 | +0.45 | −0.26 |
| 離乳日齢 | +0.48 | +0.12 |
| 最長寿命 | +0.42 | +0.57 |
| 一腹産子数 | −0.39 | +0.74 |
4つが同じ向きで、産子数だけが逆向き。言葉にすると ――
+の側:体が大きく、妊娠が長く、乳離れが遅く、長生きし、一度に少ししか産まない −の側:体が小さく、妊娠が短く、乳離れが早く、短命で、一度にたくさん産む
これは生物学で 生活史の「速い-遅い」連続体(fast–slow continuum) と呼ばれるものである。速い戦略=短く生きてたくさん産む(数で勝負)、遅い戦略=長く生きて少なく産んで大事に育てる(質で勝負)。
PCAが隠れた軸を浮かび上がらせた
もともと別々だった5つの変数の背後に、1本の“生き方”の軸が隠れていた。 これが次元削減=本質の抽出。
3. 2次元に圧縮して可視化¶
各種を第1主成分(速い-遅い)と第2主成分の2軸で配置し、科ごとに色を変える。5次元の散布図は描けないが、2次元なら一目で構造が分かる。
注意:PCAには「科」の情報を一切与えていない。5つの数値だけから軸を作った。それなのに ――
| 科 | 第1主成分の平均 |
|---|---|
| コビトキツネザル科 | −4.31 |
| ガラゴ科 | −2.07 |
| オマキザル科 | −1.19 |
| キツネザル科 | −0.80 |
| オナガザル科 | +1.02 |
| クモザル科 | +1.32 |
| テナガザル科 | +1.96 |
| ヒト科 | +3.50 |
分類群が一直線に並んだ。そして最も「遅い」5種はすべてヒト科で、その頂点が Homo sapiens(+4.15)である。反対の端はネズミキツネザル(−5.55)。
PCAは「ヒトは特別だ」と教えたわけではない
5つの数値を、ばらつきが最大になる向きに並べ直しただけである。結果として分類群が並び、ヒトが端に来た。それをどう意味づけるかは、人間の仕事である。
4. 大事な注意¶
- PCAは情報を失う。今回、第1・第2主成分で説明できたのは約87%。残りの約13%は捨てている。圧縮はタダではない。
- 主成分に必ず意味があるとは限らない。第1主成分は「速い-遅い」と読めたが、第2主成分(13.4%)は簡単には命名できない(産子数と寿命が同じ向きに乗っており、生活史の軸では説明しにくい)。現実のデータでは「何だかよく分からない軸」のほうが多い。意味づけ(命名)は人間の解釈で、数学が保証するものではない。
- 使った89種は「5変数すべてに記録がある種」だけである(全376種の24%)。第6回で見たとおり、よく研究された種に偏っている。この軸は、よく調べられた霊長類の軸である。
- 主成分の向き(符号)は反転することがある(数学的には同じ)。
よくある誤り
「PCAで情報は失われない」「主成分には必ずはっきりした意味がある」――どちらも誤り。 圧縮には情報の損失が伴い、意味づけは人間の解釈に委ねられる。
まとめ¶
| 概念 | ひとこと |
|---|---|
| 次元削減 | たくさんの変数を、少数の軸(主成分)にまとめる |
| 主成分 | ばらつき(情報)が最大の方向に引いた新しい軸 |
| 寄与率 | 各主成分が説明する情報の割合(第1主成分74%・累積87%) |
| 負荷と命名 | 各変数の効き方を見て、人間が軸に意味を与える(例:速い-遅い) |
| ❌ 誤り | PCAで情報は失われない/主成分には必ず明確な意味がある |
PCAは『たくさんの変数の背後にある少数の軸』を見つける道具。 ただし情報は一部失われ、軸の意味づけは人間の解釈。 軸を計算するのは機械だが、軸に名前を与えるのは人間だ。ここで直感が戻ってくる。だから命名は「こう呼べそうだ」で止めず、負荷量という証拠に紐づける。次回、この14回を通して何が変わったのかを振り返る。
今日の課題(Moodle提出)¶
配点:100点(選択40点 + 記述60点)/ 提出先:Moodle / 提出期限:次回授業の開始時刻まで
Colab 13_pca.ipynb を実行したうえで答えること。
パートA:選択問題(各10点 ×4=40点)¶
A1. PCA(主成分分析)の目的として最も適切なのは?
- (ア) たくさんの変数を、情報をなるべく保ったまま少数の軸(主成分)にまとめる
- (イ) 2つの変数の因果関係を証明する
- (ウ) 欠損値を埋める
A2. 5つの生活史変数のPCAで、第1主成分の寄与率は約何%だったか。
- (ア) 約13% (イ) 約74% (ウ) 約100%
A3. 第1主成分は「体重・妊娠期間・離乳日齢・最長寿命が+、一腹産子数だけが−」という負荷だった。この軸の命名として最も妥当なのは?
- (ア) 生息地の広さ
- (イ) 生活史の「速い-遅い」(長く生きて少なく産むか、短く生きてたくさん産むか)
- (ウ) 分類群の新しさ
A4. PCAについて正しいのは?
- (ア) PCAでは情報はいっさい失われない
- (イ) 主成分には必ずはっきりした意味がある
- (ウ) 次元を削減すると一部の情報は失われ、主成分の意味づけは人間の解釈による
パートB:記述問題(AIフィードバック対象・60点)¶
【全記述に共通・重要】自分の出力を引用すること
記述には、今日のColabであなたのノートが出した数値を最低1つ引用すること。ここには値を書かない。自分の画面に出た値を使うこと。 引ける量の例:「第1主成分の寄与率」「2主成分の累積寄与率」「各変数の負荷の符号と大きさ」。 引用がない記述は満点になりません。
B1.(30点) 今日のPCAの結果(寄与率と負荷)を読んで、第1主成分が「何を表す軸」かを、負荷の符号(どの変数が+でどの変数が−か)を根拠に説明し、あなた自身の言葉で命名しなさい。
B2.(30点) 友人が「PCAを使えば、たくさんの変数を2次元にまとめても情報は何も失われないし、出てきた主成分には必ずはっきりした意味がある」と言っている。今日の結果(累積寄与率など)をふまえて、この考えのどこが間違いかを2点指摘しなさい。
目安:B1・B2あわせて350〜550字。自分の言葉で書くこと。
字数は目安です。多少の過不足で減点はしません。見るのは、設問が挙げた要素(上の箇条書き)が書けているかどうかです。ただし要素が抜けていれば、その分は引きます。
次回予告
第14回「総括:不確実な世界で、孤高の意思決定をするための道具として」。第1回の直感クイズに戻り、14回で手に入れた道具を振り返る。最終回。