主成分分析1

内容 主成分分析


主成分分析について

成績データの解析

「R」 で主成分分析



相関行列による主成分分析



寄与率・累積寄与率



因子負荷量



主成分得点

2

主成分分析

3

次元の縮小と主成分分析
主成分分析
 次元の縮小に関する手法

 次元の縮小 国語、数学、理科、社会、英語の総合点⇒５次元データから１次元データへの縮約 体形評価 : BMI (Body Mass Index) 判定

肥満度の判定方法の１つで、次の式で得られる。
⇒ ２次元データを１次元データに縮約4主成分分析とは 主成分分析 多次元データのもつ情報をできるだけ損わずに低次元空間に情報を縮約する方法
 多次元データを２次元・３次元データに縮約できれば、データ全体の雰囲気を視覚化することができる。
視覚化により、データが持つ情報を解釈しやすくなる。

5

次元の縮約と情報の損失
 ２次元のデータを１次元に縮約することを考える。

CAE
DD’

BA’ B’ C’ D’

C’E’
A’B’

C
A

E
D

B

E’

縮約の方法 ①
縦軸の情報の損失縮約の方法 ②横軸の情報の損失
6情報量と分散 射影したデータのバラツキが大きいほど、もとのデータの情報を多く含んでいると考えられる。
CA

E
DD’

B

A’ B’ C’ D’

C’

C

E’A’

A

B’

E
D

B

E’

個体差が現れやすい

情報量個体差が現れにくい

分散7

主成分分析の目的
 もとのデータの情報の損失ができるだけ小さくなるような軸を探したい。
CA

E
D

C’D’

B

E’A’
B’

A’ B’ C’ D’

CA

E
D

B

E’

情報の損失が少ない

情報の損失が多い

射影したデータの分散が最大となる軸を探す

8

第１主成分 射影したデータの分散が最大となるような軸を探す
第１主成分軸9

第２主成分
 第１主成分と直交する軸の中で、軸上に射影したデータの分散が最大となる軸を探す
第１主成分軸第２主成分軸10

３次元空間から２次元空間への縮約
第２主成分軸第１主成分軸これらの主成分軸は「R」で簡単に求められる
11

主成分分析の要点
 主成分の分散 : 主成分がもつ情報量＝分散共分散行列（相関行列）の固有値
 主成分を構成する係数は、分散共分散行列（相関行列）の固有ベクトルを求める手続きにより得られる
 主成分分析では、分散共分散行列から分析を行う場合と、相関行列から行う場合で結果が異なる。
 データが異なる尺度（単位）で測定されている場合には、変数を基準化して分析を行う必要がある。
12

具体例：成績データ 杉山 髙一 著 「多変量データ解析入門」
 中学２年生の成績データ
 標本数 ： 166
 変数の数 : 科目数=9
 国語、社会、数学、理科、音楽、英語、体育、技家、英語 ダウンロードしたファイルに記載されている最後の３列のデータ（変数名：「4year」 「5year」 「6year」）を削除して分析を行う
 ９科目の得点を適当に組み合わせた変数を作り、できるだけ少ない変数で生徒の特徴を捉えたい13データのダウンロード
 統計科学研究所のウェブサイト http://www.statistics.co.jp/index.htm

14データのダウンロード
 成績のデータの[csv]を右クリック⇒名前を付けて保存15

主成分分析を行うプログラム
seiseki <-read.csv(“seiseki.csv", header=T)
result <- prcomp(seiseki, scale=T)
summary(result)biplot(result) プログラムの概要
 １行目：データの読み込み ２行目：主成分分析を行う関数 ”prcomp” を適用 ３行目：主成分分析の結果の要約の出力
 ４行目：主成分得点をプロットする関数 ”biplot” を適用
16相関行列から主成分分析を行う
result <- prcomp(seiseki, scale=T) 引数 “scale” について
 関数 “prcomp” に、引数 “scale=T” を指定⇒ 相関行列から主成分分析を行う
 関数 “prcomp” に、引数 “scale=F” を指定⇒ 分散共分散行列から主成分分析を行う

17

分析結果の要約
 分析結果に関数 “summary” を適用 Standard deviation (標準偏差) Proportion of Variance (寄与率) Cumulative Proportion (累積寄与率)

第１主成分には、全体の６７％の情報が縮約されている第４主成分までで、全体の約９０％の情報を占める 18

寄与率と累積寄与率


該当する主成分がもつ情報量

全情報量のうち、該当する主成分が占める情報量の割合



選択した主成分が占める情報量の割合
次元の縮約により失う情報量を測ることができる
19

分析結果の出力 次のようにして、関数 ”prcomp” で得られたオブジェクトから、分析結果を得ることができる 今回のプログラムの場合
 result$rotation : 固有ベクトル（主成分軸の係数）
 result$x : 主成分得点

 関数 “round” を使って出力結果を適当な桁数で丸めると見やすくなるround(result$x, disits=3) : 主成分得点を小数点３桁で表示
20

固有ベクトルの出力
 round(result$rotation, 3) の出力

PC : Principal Component

主成分

21

第１主成分の構成
 第１主成分 =0.363×国語 + 0.369×社会 + 0.357×数学+0.367×理科 + 0.354×音楽 + 0.313×美術+0.139×体育 + 0.317×技家 + 0.357×英語

22

第１主成分の構成
 第１主成分 =0.363×国語 + 0.369×社会 + 0.357×数学+0.367×理科 + 0.354×音楽 + 0.313×美術+小 0.139×体育 + 0.317×技家 + 0.357×英語

第１主成分⇒ 筆記試験の総合得点の因子
第１主成分が大きい⇒ 筆記試験の総合得点が高い
23

第２主成分の解釈
 第２主成分 =－0.149×国語 + 0.147×社会 + 0.181×数学+0.251×理科 － 0.010×音楽 – 0.312×美術－0.859×体育 + 0.149×技家 + 0.047×英語

第２主成分⇒ 体育の因子
第２主成分が小さい （符号に注意）⇒ 体育の得点が優れている
24

因子負荷量 各主成分の意味づけ


主成分に強く寄与している変数を見つけることが重要

 因子負荷量

主成分と各変数との相関係数
相関行列から分析を始めた場合の因子負荷量

参考 ： 奥野 忠一著 「多変量解析法 改訂版」 日科技連

因子負荷量が１か-1に近い因子ほど、主成分に強く寄与している



因子負荷量をプロットすることにより、主成分に寄与している因子を視覚的に捉えることができる
25

因子負荷量に関するプログラム
fc.l <- sweep(result$rotation, MARGIN=2, result$sdev, FUN="*")
subject <- c("国", "社", "数", "理", "音", "美", "体", "技", "英")plot(fc.l[,1], pch=subject, ylim=c(-1,1), main="PC1")plot(fc.l[,2], pch=subject, ylim=c(-1,1), main="PC2")

 プログラムの概略
 １行目 ： 因子負荷量の計算
 固有ベクトル（result$rotation）と、対応した固有値の平方根（result$sdev）との積をとる
 sweep 関数の使い方は、apply 関数とよく似ている 参考URL : R-Tips 24節 「applyファミリー」

http://cse.naro.affrc.go.jp/takezawa/r-tips/r/24.html
26因子負荷量のプロット （１次元）

３行目のプログラムの出力

４行目のプログラムの出力27因子負荷量の解釈 （１次元）
主成分と弱い相関

主成分と強い相関

筆記試験の因子体育の因子28

因子負荷量のプロット （２次元）
plot(fc.l[,1], fc.l[,2], pch=subject,xlim=c(-1,1), ylim=c(-1,1), main=title)29

因子負荷量の解釈 （２次元）
第１主成分に強く寄与するが、第２主成分にはほとんど寄与しない因子

筆記試験の因子

第２主成分に強く寄与する因子
体育の因子

30

主成分得点の定義
 主成分得点の定義
主成分
個々のデータを代入したものにresult$x

 成績データの例


第１主成分 =0.363×国語 + 0.369×社会 + 0.357×数学+0.367×理科 + 0.354×音楽 + 0.313×美術+0.139×体育 + 0.317×技家 + 0.357×英語

国語社会数学

理科音楽美術

体育技家

英語

95

87

77

100

7782

789687相関行列から分析を行う場合は、全ての変数を基準化たものを代入する

31

主成分得点 ４人目の成績

国語

社会数学

理科

音楽

美術

体育

技家

英語

95

87

77

100

7782

78

96

87

第１主成分得点 : 5.107

第２主成分得点 :0.228

 １３０人目の成績

国語

社会数学

理科

音楽

美術

体育技家

英語

64

36

20

3153

68

99

726

第１主成分得点 : -0.812

第２主成分得点 : -2.24432主成分得点の出力
 result$x : 主成分得点を出力する

例で見た４番目の生徒の主成分得点
33

主成分得点のプロット （biplot）


主成分得点を低次元空間にプロットすると、個体の特徴や位置を把握しやすくなる「R」では、biplot 関数を適用することで、解釈しやすい形で主成分得点のプロットを得ることができる

result <- prcomp(seiseki, scale=T)
biplot(result)34

biplotの解釈
 第一主成分の解釈

筆記試験の総合得点⇒右にあるデータほど筆記試験の総合点が高い

 第二主成分の解釈

体育の因子⇒下にあるデータほど体育の成績が良い



主成分の符号やベクトルの向きに注意する
35

主成分によるデータの位置づけ



主成分の解釈から、各個体を右図のように分類して考えることができる

筆記・体育
共に不得意

体育

主成分得点の順にデータを並べ替えることである特性値について順位付けを行うこともできる

低



筆記：優
体育：不得意

筆記：体育
共に平均的

高

筆記：不得意
体育：優

低

筆記・体育
共に優れる

筆記試験総合得点

高36

主成分によるデータの位置づけ

130番
筆記試験は平均程度
体育得意



8番
筆記試験も体育も平均程度

高4番
筆記試験が優れている
体育は平均程度体育低 biplotの見方

低筆記試験総合得点

高37

主成分得点とデータ
 例で挙げた生徒の成績と主成分得点 PC1 : 第１主成分の主成分得点 PC2 : 第２主成分の主成分得点
国語社会数学

理科音楽美術

体育

技家

英語

PC1

PC2

4

95

87

77

100

77

82

78

96

87

5.1

0.2

8

56

54

37

59

35

64

53

67

7

0.1

0.3

13064

36

20

31

53

68

99

7

26-0.8-2.2

平均

57.5

39.6

45.6

49.9

42.6

62.5

57.7

47.3

39.1

0038

まとめ
 主成分分析を行う関数 ”prcomp” の使い方
 主成分得点の出力の仕方
 obj$x

 固有ベクトル（主成分軸の係数）の出力の仕方
 obj$rotation

 因子負荷量の求め方と解釈 関数 “biplot”の使い方と解釈
39

参考URL
 統計科学研究所のウェブサイト
http://www.statistics.co.jp/index.htm

 R-Tips

http://cse.naro.affrc.go.jp/takezawa/r-tips/r2.html

 JIN’S PAGE

http://www1.doshisha.ac.jp/~mjin/R/

40