いくつか(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節を参照すること。