いくつか(p個)の変量の値をできるだけ情報の損失なしに、
少数変量(m個、m>p)の総合的指標(主成分)で代表させる方法である。
いくつかのテストの成績を総合した総合的成績、
いろいろな症状を総合した総合的な重症度、
種々の財務指標に基づく企業の評価...
を求めたいといった場合に用いられる。
p変量(p次元)の観測値をm個(m次元)の主成分に縮約させるという意味で、
次元を減少させる方法と言うこともでき、
多変量データを要約する一つの有力な方法である。
/* Lesson 13-1 */ /* File Name = les1301.sas 10/28/99 */ data gakusei; infile 'all99.dat'; input seibetsu $ height weight chest jitaku $ kodukai; proc print data=gakusei(obs=10); run; proc plot data=gakusei; : 散布図 plot height*weight; : 元の変量のプロット run; : proc princomp cov data=gakusei out=out_prin; : 主成分分析(分散共分散行列) var height weight; : 2変量 run; : proc print data=out_prin(obs=15); : 結果の出力 run; : proc plot data=out_prin; : 散布図 plot prin2*prin1/vref=0 href=0; : 主成分得点のプロット run; : proc sort data=out_prin; : 説明のためにソートする by prin1; : 第一主成分で run; : proc print data=out_prin; : 体重がややが効いていることの確認 run; :
SAS システム 2
15:18 Friday, October 22, 1999
プロット : HEIGHT*WEIGHT. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 24 オブザベーションが欠損値です.)
HEIGHT |
200 +
|
| A
180 + A A A AAB AA A A
| AB CDD JAFBACA A BA B B
| A AACABAAAB A ABA A A
160 + A BAA A B
| A A A
| A
140 +
--+---------+---------+---------+---------+---------+---------+--
30 40 50 60 70 80 90
WEIGHT
SAS システム 3
15:18 Friday, October 22, 1999
Principal Component Analysis
91 Observations
2 Variables
Simple Statistics
HEIGHT WEIGHT
Mean 170.3142857 60.62307692
StD 6.3742114 7.68593343
SAS システム 4
15:18 Friday, October 22, 1999
Principal Component Analysis
Covariance Matrix
HEIGHT WEIGHT
HEIGHT 40.63057143 25.45055556
WEIGHT 25.45055556 59.07357265
Total Variance = 99.704144078
Eigenvalues of the Covariance Matrix
Eigenvalue Difference Proportion Cumulative
PRIN1 76.9217 54.1393 0.771500 0.77150
PRIN2 22.7824 . 0.228500 1.00000
SAS システム 5
15:18 Friday, October 22, 1999
Principal Component Analysis
Eigenvectors
PRIN1 PRIN2
HEIGHT 0.574170 0.818736
WEIGHT 0.818736 -.574170
SAS システム 6
15:18 Friday, October 22, 1999
OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2
1 M 178 58.0 . J 20000 2.2653 7.79866
2 M 170 63.0 90 J 30000 1.7656 -1.62207
3 M 167 56.0 . J 30000 -5.6880 -0.05909
4 M 172 61.5 . J 30000 1.6859 0.87665
5 M 170 52.0 . J 30000 -7.2405 4.69379
6 F 156 . . J 30000 . .
7 M 172 72.0 89 G 150000 10.2826 -5.15213
SAS システム 7
15:18 Friday, October 22, 1999
プロット : PRIN2*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 24 オブザベーションが欠損値です.)
20 + |
| |
PRIN2 | |A
| A |AA AA A A
| A ABAA DABAEAA AAA A
0 +----------------A--------B---BABB-CCACDB-AA--A-------------------
| A A A A AA A BBAB AB A A A
| A A B A A A
| A |
| | A
-20 + |
-+--------+--------+--------+--------+--------+--------+--------+-
-40 -30 -20 -10 0 10 20 30
PRIN1
SAS システム 8
15:18 Friday, October 22, 1999
OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2
1 F 156.0 . . J 30000 . .
2 F 156.0 . . J 50000 . .
3 F 155.0 . . J 20000 . .
4 F 164.0 . . J 30000 . .
5 F 148.9 . . J 60000 . .
6 F 156.0 . . G . . .
7 F 156.5 . . J 20000 . .
(略)
SAS システム 14
15:18 Friday, October 22, 1999
OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2
91 M 169.0 66 . J 0 3.64766 -4.16332
92 M 172.0 64 . G 120000 3.73270 -0.55877
93 M 171.0 66 . G 80000 4.79600 -2.52585
94 M 173.0 65 . J 20000 5.12560 -0.31421
95 M 170.0 68 . J 25000 5.85930 -4.49292
96 M 169.0 69 90 . 6.10387 -5.88583
97 M 182.0 60 87 G 100000 6.19945 9.92527
98 M 175.0 65 90 J . 6.27394 1.32327
99 M 177.0 65 . G 60000 7.42228 2.96074
100 M 179.9 63 . J 30000 7.44990 6.48341
101 M 171.0 71 . G 160000 8.88968 -5.39670
102 M 180.0 65 . G 100000 9.14479 5.41695
103 M 182.0 64 . G 0 9.47439 7.62859
104 M 178.0 67 . J 0 9.63392 2.63114
105 M 177.0 68 . G 80000 9.87849 1.23823
SAS システム 15
15:18 Friday, October 22, 1999
OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2
106 M 173.0 71.0 100 G 0 10.0380 -3.7592
107 M 172.0 72.0 89 G 150000 10.2826 -5.1521
108 M 170.0 74.0 90 J 0 10.7717 -7.9379
109 M 175.0 74.0 . J 0 13.6426 -3.8443
110 M 182.0 70.0 90 G 100000 14.3868 4.1836
111 M 185.0 68.0 93 J 0 14.4718 7.7881
112 M 173.5 76.5 . G 100000 14.8282 -6.5078
113 M 175.0 77.0 95 G 130000 16.0988 -5.5668
114 M 178.0 78.0 110 G 50000 18.6400 -3.6847
115 M 169.3 88.5 94 J 0 22.2415 -16.8365
/* Lesson 13-2 */ /* File Name = les1302.sas 10/28/99 */ data gakusei; infile 'all99.dat'; input seibetsu $ height weight chest jitaku $ kodukai; proc print data=gakusei(obs=10); run; proc princomp cov data=gakusei out=out_prin; : 主成分分析(分散共分散行列) var height weight chest; : 3変量 run; : proc print data=out_prin(obs=15); : 結果の出力 run; : proc plot data=out_prin; : 散布図 plot prin2*prin1/vref=0 href=0; : 主成分得点のプロット plot prin3*prin2/vref=0 href=0; : plot prin3*prin1/vref=0 href=0; : run; :
SAS システム 3
15:29 Friday, October 22, 1999
Principal Component Analysis
33 Observations
3 Variables
Simple Statistics
HEIGHT WEIGHT CHEST
Mean 170.9030303 63.46969697 89.81818182
StD 6.4995906 8.34971874 6.20712567
SAS システム 4
15:29 Friday, October 22, 1999
Principal Component Analysis
Covariance Matrix
HEIGHT WEIGHT CHEST
HEIGHT 42.24467803 18.12978220 5.45681818
WEIGHT 18.12978220 69.71780303 30.80681818
CHEST 5.45681818 30.80681818 38.52840909
SAS システム 5
15:29 Friday, October 22, 1999
Principal Component Analysis
Total Variance = 150.49089015
Eigenvalues of the Covariance Matrix
Eigenvalue Difference Proportion Cumulative
PRIN1 95.0355 57.9464 0.631504 0.63150
PRIN2 37.0891 18.7229 0.246454 0.87796
PRIN3 18.3662 . 0.122042 1.00000
SAS システム 6
15:29 Friday, October 22, 1999
Principal Component Analysis
Eigenvectors
PRIN1 PRIN2 PRIN3
HEIGHT 0.329236 0.911858 0.245191
WEIGHT 0.815321 -.143549 -.560933
CHEST 0.476294 -.384589 0.790718
SAS システム 7
15:29 Friday, October 22, 1999
S
E K
I H W J O
B E E C I D P P P
E I I H T U R R R
O T G G E A K I I I
B S H H S K A N N N
S U T T T U I 1 2 3
1 M 178 58.0 . J 20000 . . .
2 M 170 63.0 90 J 30000 -0.5937 -0.82594 0.18582
3 M 167 56.0 . J 30000 . . .
4 M 172 61.5 . J 30000 . . .
5 M 170 52.0 . J 30000 . . .
6 F 156 . . J 30000 . . .
7 M 172 72.0 89 G 150000 6.9264 0.09042 -5.16291
8 M 163 51.0 82 J 10000 -16.4925 -2.40964 -1.12507
SAS システム 9
15:29 Friday, October 22, 1999
プロット : PRIN2*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 82 オブザベーションが欠損値です.)
20 + |
| |
PRIN2 | A A| A
| A | A
| A A | A
0 +----A-------------BB----BC+-A-----A---------A--------------------
| A A A | A A A A
| A | A A
| A |A
| |
-20 + |
---+-----------+-----------+-----------+-----------+-----------+--
-20 -10 0 10 20 30
PRIN1
SAS システム 10
15:29 Friday, October 22, 1999
プロット : PRIN3*PRIN2. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 82 オブザベーションが欠損値です.)
PRIN3 | |
10 + A |
| A A |
| A A A | B A AA
0 +-------------A-----------A-A--A-AAAA---B----------A-------A------
| A A A A A
| A A A A
-10 + A |
| |
| |
-20 + |
---+---------+---------+---------+---------+---------+---------+--
-15 -10 -5 0 5 10 15
PRIN2
SAS システム 11
15:29 Friday, October 22, 1999
プロット : PRIN3*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 82 オブザベーションが欠損値です.)
PRIN3 | |
10 + | A
| |AA
| A ABA| A A A
0 +---AA-A----------A-AA-A--C+--A-------A---------------------------
| AB | A A
| A A | A A
-10 + | A
| |
| |
-20 + |
---+-----------+-----------+-----------+-----------+-----------+--
-20 -10 0 10 20 30
PRIN1
/* Lesson 13-3 */ /* File Name = les1303.sas 10/28/99 */ data gakusei; infile 'all99.dat'; input seibetsu $ height weight chest jitaku $ kodukai; proc print data=gakusei(obs=10); run; : proc princomp data=gakusei out=out_prin; : 相関係数を使って var height weight chest; : run; : proc print data=out_prin(obs=15); run; proc plot data=out_prin; plot prin2*prin1/vref=0 href=0; plot prin3*prin2/vref=0 href=0; plot prin3*prin1/vref=0 href=0; run;
SAS システム 3
15:33 Friday, October 22, 1999
Principal Component Analysis
33 Observations
3 Variables
Simple Statistics
HEIGHT WEIGHT CHEST
Mean 170.9030303 63.46969697 89.81818182
StD 6.4995906 8.34971874 6.20712567
SAS システム 4
15:33 Friday, October 22, 1999
Principal Component Analysis
Correlation Matrix
HEIGHT WEIGHT CHEST
HEIGHT 1.0000 0.3341 0.1353
WEIGHT 0.3341 1.0000 0.5944
CHEST 0.1353 0.5944 1.0000
SAS システム 5
15:33 Friday, October 22, 1999
Principal Component Analysis
Eigenvalues of the Correlation Matrix
Eigenvalue Difference Proportion Cumulative
PRIN1 1.74519 0.859438 0.581729 0.58173
PRIN2 0.88575 0.516682 0.295249 0.87698
PRIN3 0.36907 . 0.123022 1.00000
SAS システム 6
15:33 Friday, October 22, 1999
Principal Component Analysis
Eigenvectors
PRIN1 PRIN2 PRIN3
HEIGHT 0.413257 0.875369 0.250895
WEIGHT 0.673837 -.108642 -.730849
CHEST 0.612505 -.471091 0.634753
SAS システム 7
15:33 Friday, October 22, 1999
S
E K
I H W J O
B E E C I D P P P
E I I H T U R R R
O T G G E A K I I I
B S H H S K A N N N
S U T T T U I 1 2 3
1 M 178 58.0 . J 20000 . . .
2 M 170 63.0 90 J 30000 -0.07738 -0.12931 0.02485
3 M 167 56.0 . J 30000 . . .
4 M 172 61.5 . J 30000 . . .
5 M 170 52.0 . J 30000 . . .
6 F 156 . . J 30000 . . .
7 M 172 72.0 89 G 150000 0.67742 0.09885 -0.78798
8 M 163 51.0 82 J 10000 -2.28030 -0.30877 -0.01310
SAS システム 9
15:33 Friday, October 22, 1999
プロット : PRIN2*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 82 オブザベーションが欠損値です.)
2 + A |
| |A A
PRIN2 | A | A
| |
| A A A AA A
0 +-------------A----------BA-C+---A-------A----------------
| A A | AA A A
| A| A A
| | A
| A |
-2 + A | A
---+------------+------------+------------+------------+--
-4 -2 0 2 4
PRIN1
SAS システム 10
15:33 Friday, October 22, 1999
プロット : PRIN3*PRIN2. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 82 オブザベーションが欠損値です.)
PRIN3 | |
1 + A |
| A A A | A
| A A A |AB A A A A
0 +----------------------A-A-A-A--A---B----------A----------
| A A A
| A A|A A
-1 + A | A
| |
| A |
-2 + |
---+------------+------------+------------+------------+--
-2 -1 0 1 2
PRIN2
SAS システム 11
15:33 Friday, October 22, 1999
プロット : PRIN3*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 82 オブザベーションが欠損値です.)
PRIN3 | |
1 + | A
| A A| AA
| A A AA AAA A AA
0 +-------------A---------A-A-C+--A----A--------------------
| AA | A
| A A | A A
-1 + A | A
| |
| | A
-2 + |
---+------------+------------+------------+------------+--
-4 -2 0 2 4
PRIN1
[例] 小遣いまでの 4変量のデータでは?
[注意] データによっては解釈が困難なことも有り得る。
[参考] 配布資料に掲載されているデータは以下の URL に置いておく。ダウンロードして利用してもよい。
なお、次回の講義中に使う予定のデータも 2つ掲載しておくので、 次回までに各自の SAS ディレクトリ(stat システム内)にダウンロードしておくこと。
[補足(10/30/99)] ダウンロードの方法が判らない人へ。 本来は以下の 1の方法を採ってほしいと思っていましたが、 代案として 2も紹介しておきます。
なお、ftp の転送方法は、 第2回配布資料 の 6節を参照すること。