いくつか(p個)の変量の値を情報の損失をできるだけ少なくして、
少数変量(m個、m>p)の総合的指標(主成分)で代表させる方法である。
いくつかのテストの成績を総合した総合的成績、
いろいろな症状を総合した総合的な重症度、
種々の財務指標に基づく企業の評価...
を求めたいといった場合に用いられる。
p変量(p次元)の観測値をm個(m次元)の主成分に縮約させるという意味で、
次元を減少させる方法と言うこともでき、
多変量データを要約する一つの有力な方法である。
/* Lesson 18-1 */ /* File Name = les1801.sas 11/01/01 */ data gakusei; infile 'all01.prn'; 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=outprin; : 主成分分析(分散共分散行列) var height weight; : 2変量 run; : proc print data=outprin(obs=15); : 結果の出力 run; : proc plot data=outprin; : 散布図 plot prin2*prin1/vref=0 href=0; : 主成分得点のプロット run; : proc sort data=outprin; : 説明のためにソートする by prin1; : 第一主成分で run; : proc print data=outprin; : 体重がややが効いていることの確認 run; :
SAS システム 2 16:17 Wednesday, October 31, 2001 プロット : HEIGHT*WEIGHT. 凡例: A = 1 OBS, B = 2 OBS, ... (NOTE: 30 オブザベーションが欠損値です.) HEIGHT | 200 + | | B A 180 + A ACBCDBABA B A A | AABAHFNMFFCBCCB BA | C FFDDCBBBCAA A 160 + A BBAGCBAABB | A CC A A | A A A 140 + ---+-----------+-----------+-----------+-----------+-- 20 40 60 80 100 WEIGHT SAS システム 3 16:17 Wednesday, October 31, 2001 Principal Component Analysis 175 Observations 2 Variables Simple Statistics HEIGHT WEIGHT Mean 169.5337143 59.90685714 StD 7.6143358 8.85332971 SAS システム 4 16:17 Wednesday, October 31, 2001 Principal Component Analysis Covariance Matrix HEIGHT WEIGHT HEIGHT 57.97810969 44.27189392 WEIGHT 44.27189392 78.38144696 Total Variance = 136.35955665 Eigenvalues of the Covariance Matrix Eigenvalue Difference Proportion Cumulative PRIN1 113.612 90.8642 0.833179 0.83318 PRIN2 22.748 . 0.166821 1.00000 SAS システム 5 16:17 Wednesday, October 31, 2001 Principal Component Analysis Eigenvectors PRIN1 PRIN2 HEIGHT 0.622677 0.782479 WEIGHT 0.782479 -.622677 SAS システム 6 16:17 Wednesday, October 31, 2001 OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2 1 F 145.0 38.0 . J 10000 -32.4182 -5.5562 2 F 148.0 42.0 . J 50000 -27.4203 -5.6995 3 F 148.9 . . J 60000 . . 4 F 149.0 45.0 . G 60000 -24.4502 -6.7851 5 F 150.0 46.0 86 40000 -23.0450 -6.6253 6 F 151.7 41.5 80 J 35000 -25.5076 -2.4930 7 F 153.0 46.5 87 G 10000 -20.7857 -4.5892 8 F 153.0 55.0 78 J 30000 -14.1347 -9.8819 9 F 154.0 46.0 . . -20.5543 -3.4953 10 F 155.0 48.0 83 G 180000 -18.3667 -3.9582 11 F 155.0 . . J 20000 . . 12 F 156.0 48.0 70 J 30000 -17.7440 -3.1757 13 F 156.0 49.0 85 J 25000 -16.9615 -3.7984 14 M 156.0 61.0 90 J 0 -7.5718 -11.2705 15 F 156.0 . . J 30000 . . SAS システム 7 16:17 Wednesday, October 31, 2001 プロット : PRIN2*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ... (NOTE: 30 オブザベーションが欠損値です.) 20 + | | | PRIN2 | | A | AA AAABA CBA B | B AB ECABFCEFDB CD A 0 +--------------A---AA-I--DBDCDCHBABBA-B--------A---------- | A AA AABAAAAAB B CB CDB EB A BA | AA A A A B A A A AA A | A | | | A -20 + | A ---+------------+------------+------------+------------+-- -40 -20 0 20 40 PRIN1 SAS システム 8 16:17 Wednesday, October 31, 2001 OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2 1 F 148.9 . . J 60000 . . 2 F 155.0 . . J 20000 . . 3 F 156.0 . . J 30000 . . 4 F 156.0 . . J 50000 . . 5 F 156.0 . . G . . . <略> SAS システム 20 16:17 Wednesday, October 31, 2001 OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2 181 M 179.0 65.0 . J 0 9.8797 4.23579 182 M 180.0 65.0 88 J 30000 10.5024 5.01827 183 M 180.0 65.0 . G 100000 10.5024 5.01827 184 M 179.0 66.0 . 30000 10.6622 3.61311 185 M 178.0 67.0 . J 0 10.8220 2.20796 186 M 173.0 71.0 100 G 0 10.8385 -4.19514 187 M 182.0 64.0 . G 0 10.9653 7.20591 188 M 177.0 68.0 . G 80000 10.9818 0.80280 189 M 172.0 72.0 89 G 150000 10.9983 -5.60030 190 M 170.0 74.0 90 J 0 11.3179 -8.41061 191 M 180.0 70.0 . . 14.4148 1.90489 192 M 175.0 74.0 . J 0 14.4313 -4.49822 193 M 178.7 71.2 95 0 14.5443 0.14045 194 M 184.0 68.0 85 30000 15.3405 6.28016 195 M 173.5 76.5 . G 100000 15.4535 -7.22863 SAS システム 21 16:17 Wednesday, October 31, 2001 OBS SEIBETSU HEIGHT WEIGHT CHEST JITAKU KODUKAI PRIN1 PRIN2 196 M 182.0 70.0 90 G 100000 15.6601 3.4698 197 M 185.0 68.0 93 J 0 15.9632 7.0626 198 M 175.0 77.0 95 G 130000 16.7788 -6.3662 199 M 176.5 78.0 96 J 10000 18.4953 -5.8152 200 M 177.0 78.0 . J 40000 18.8066 -5.4240 201 M 178.0 78.0 110 G 50000 19.4293 -4.6415 202 M 169.3 88.5 94 J 0 22.2280 -17.9872 203 M 186.0 82.0 . J 0 27.5406 -0.8724 204 M 182.0 90.0 100 J 40000 31.3097 -8.9837 205 M 178.0 100.0 112 G 60000 36.6438 -18.3404
/* Lesson 18-2 */ /* File Name = les1802.sas 11/01/01 */ data gakusei; infile 'all01.prn'; input seibetsu $ height weight chest jitaku $ kodukai; proc print data=gakusei(obs=10); run; proc princomp cov data=gakusei out=outprin; : 主成分分析(分散共分散行列) var height weight chest; : 3変量 run; : proc print data=outprin(obs=15); : 結果の出力 run; : proc plot data=outprin; : 散布図 plot prin2*prin1/vref=0 href=0; : 主成分得点のプロット plot prin3*prin2/vref=0 href=0; : plot prin3*prin1/vref=0 href=0; : run; :
SAS システム 3 16:17 Wednesday, October 31, 2001 Principal Component Analysis 72 Observations 3 Variables Simple Statistics HEIGHT WEIGHT CHEST Mean 168.6805556 60.95972222 87.55555556 StD 8.2911057 10.76027723 7.86127770 SAS システム 4 16:17 Wednesday, October 31, 2001 Principal Component Analysis Covariance Matrix HEIGHT WEIGHT CHEST HEIGHT 68.7424335 58.5427269 22.6194053 WEIGHT 58.5427269 115.7835661 55.6536776 CHEST 22.6194053 55.6536776 61.7996870 SAS システム 5 16:17 Wednesday, October 31, 2001 Principal Component Analysis Total Variance = 246.32568662 Eigenvalues of the Covariance Matrix Eigenvalue Difference Proportion Cumulative PRIN1 183.884 141.255 0.746507 0.74651 PRIN2 42.628 22.815 0.173057 0.91956 PRIN3 19.814 . 0.080436 1.00000 SAS システム 6 16:17 Wednesday, October 31, 2001 Principal Component Analysis Eigenvectors PRIN1 PRIN2 PRIN3 HEIGHT 0.474436 -.725195 0.499003 WEIGHT 0.764499 0.058410 -.641974 CHEST 0.436409 0.686062 0.582122 SAS システム 7 16:17 Wednesday, October 31, 2001 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 F 145.0 38.0 . J 10000 . . . 2 F 148.0 42.0 . J 50000 . . . 3 F 148.9 . . J 60000 . . . 4 F 149.0 45.0 . G 60000 . . . 5 F 150.0 46.0 86 40000 -20.9783 11.6060 -0.62342 6 F 151.7 41.5 80 J 35000 -26.2304 5.9940 -0.37897 7 F 153.0 46.5 87 G 10000 -18.7363 10.1457 1.13472 8 F 153.0 55.0 78 J 30000 -16.1657 4.4676 -9.56115 SAS システム 8 16:17 Wednesday, October 31, 2001 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 9 F 154.0 46.0 . . . . . 10 F 155.0 48.0 83 G 180000 -18.3863 6.0387 -1.15872 11 F 155.0 . . J 20000 . . . 12 F 156.0 48.0 70 J 30000 -23.5852 -3.6053 -8.22731 13 F 156.0 49.0 85 J 25000 -16.2746 6.7440 -0.13745 14 M 156.0 61.0 90 J 0 -4.9185 10.8753 -4.93052 15 F 156.0 . . J 30000 . . . SAS システム 9 16:17 Wednesday, October 31, 2001 プロット : PRIN2*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ... (NOTE: 133 オブザベーションが欠損値です.) 20 + | | | PRIN2 | A A A | A A | AA AA A | A A | A AAA A A|A BA A A 0 +----------------AAAB-AA--C+BD-AABA-A-AA-------A------------------ | A B A AA|AC A | A A| AB B | A| A A | |A -20 + A | ---+-----------+-----------+-----------+-----------+-----------+-- -40 -20 0 20 40 60 PRIN1 SAS システム 10 16:17 Wednesday, October 31, 2001 プロット : PRIN3*PRIN2. 凡例: A = 1 OBS, B = 2 OBS, ... (NOTE: 133 オブザベーションが欠損値です.) PRIN3 | | 10 + | | A A AA A| A A | A B ADCCAD ABB A 0 +-----------------------A--A----A--A---CA-AAAABAA--A-A------------ | AA A BBBB AA A | A AA | A A -10 + | A | A | A | | -20 + | ---+-----------+-----------+-----------+-----------+-----------+-- -30 -20 -10 0 10 20 PRIN2 SAS システム 11 16:17 Wednesday, October 31, 2001 プロット : PRIN3*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ... (NOTE: 133 オブザベーションが欠損値です.) PRIN3 | | 10 + | | B| B A A A | AACB A B|DE BA C 0 +----------A--A-BAAAAA-A--C+-BAA--A------------------------------- | A A B |AA BAB AA A | A A A | A A -10 + A | | A | A | | -20 + | ---+-----------+-----------+-----------+-----------+-----------+-- -40 -20 0 20 40 60 PRIN1
/* Lesson 18-3 */ /* File Name = les1803.sas 11/01/01 */ data gakusei; infile 'all01.prn'; input seibetsu $ height weight chest jitaku $ kodukai; proc print data=gakusei(obs=10); run; : proc princomp data=gakusei out=outprin; : 相関係数を使って var height weight chest; : run; : proc print data=outprin(obs=15); run; proc plot data=outprin; plot prin2*prin1/vref=0 href=0; plot prin3*prin2/vref=0 href=0; plot prin3*prin1/vref=0 href=0; run;
SAS システム 3 16:17 Wednesday, October 31, 2001 Principal Component Analysis 72 Observations 3 Variables Simple Statistics HEIGHT WEIGHT CHEST Mean 168.6805556 60.95972222 87.55555556 StD 8.2911057 10.76027723 7.86127770 SAS システム 4 16:17 Wednesday, October 31, 2001 Principal Component Analysis Correlation Matrix HEIGHT WEIGHT CHEST HEIGHT 1.0000 0.6562 0.3470 WEIGHT 0.6562 1.0000 0.6579 CHEST 0.3470 0.6579 1.0000 SAS システム 5 16:17 Wednesday, October 31, 2001 Principal Component Analysis Eigenvalues of the Correlation Matrix Eigenvalue Difference Proportion Cumulative PRIN1 2.11881 1.46584 0.706270 0.70627 PRIN2 0.65296 0.42474 0.217655 0.92392 PRIN3 0.22823 . 0.076075 1.00000 SAS システム 6 16:17 Wednesday, October 31, 2001 Principal Component Analysis Eigenvectors PRIN1 PRIN2 PRIN3 HEIGHT 0.543582 0.708392 0.450221 WEIGHT 0.638921 -.001360 -.769271 CHEST 0.544334 -.705818 0.453346
[注意] データによっては解釈が困難なことも有り得る。
[参考] 「J:\コンピュータによる統計処理01(林 篤裕)\」に以下のデータを置いておく。
次回の講義中に使う予定のデータも 2つ置いておくので、 次回までに各自の SAS ディレクトリ(stat システム内)に転送しておくこと。