コンテンツにスキップ

第13回 多変量解析への招待:主成分分析(PCA)

1/12(火)Ⅱ講 10:35〜12:15・B402教室

たくさんの変数の背後にある、少数の軸を見つける ―― 次元を削減して本質を見る


今日のリンク

この回のゴール

  • 次元削減(多くの変数を少数の軸にまとめる)の発想を理解する
  • PCAの寄与率と負荷を読み、主成分に意味を与えられる
  • 「PCAは情報を失う」「主成分に必ず意味があるとは限らない」を理解する

到達目標との対応:G4・G3


0. フック

霊長類データには、体重・妊娠期間・離乳日齢・寿命・産子数… とたくさんの変数がある。 全部の関係を一度に見るのは無理(変数5個でも散布図は10通り、10個なら45通り)。 これらの背後にある「本当の軸」は、いくつあるのだろう?


1. 主成分分析(PCA)の発想

生活史に関する5つの変数を使う:体重・妊娠期間・離乳日齢・最長寿命・一腹産子数

前処理を2つ行う。① 何桁にもまたがる量なので対数にする ② 単位が違う(g・日・月・頭)ので標準化する。

PCAは、これら5次元のデータを、ばらつき(情報)が最も大きい方向に新しい軸を引き直す。最初の軸(第1主成分)が一番多くの情報を持ち、次の軸(第2主成分)がその次…と続く。少数の軸だけ残せば次元を削減できる。

(変数ごとに単位が違う(時間・%・日)ので、まず標準化して土俵をそろえる。)

寄与率:各軸がどれだけ情報を持つか

主成分 寄与率 累積
第1主成分 73.6% 73.6%
第2主成分 13.4% 87.0%
第3〜5主成分 100%

第1主成分だけで全体の約74%、第2主成分まで合わせると約87%。5次元の本質は、ほぼ2次元に圧縮できる。


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主成分の寄与率は73.6%」「2主成分で累積87%」「一腹産子数の負荷は−0.39」「ヒト科が右端に来た」)。引用がない記述は満点になりません。

B1.(30点) 今日のPCAの結果(寄与率と負荷)を読んで、第1主成分が「何を表す軸」かを、負荷の符号(どの変数が+でどの変数が−か)を根拠に説明し、あなた自身の言葉で命名しなさい。

B2.(30点) 友人が「PCAを使えば、たくさんの変数を2次元にまとめても情報は何も失われないし、出てきた主成分には必ずはっきりした意味がある」と言っている。今日の結果(累積寄与率など)をふまえて、この考えのどこが間違いかを2点指摘しなさい。

目安:B1・B2あわせて350〜550字。自分の言葉で書くこと。

次回予告

第14回「総括:不確実な世界で、孤高の意思決定をするための道具として」。第1回の直感クイズに戻り、14回で手に入れた道具を振り返る。最終回。