/* Lesson 12-1 */
/* File Name = les1201.sas 07/07/05 */
data gakusei;
infile 'all05a.prn'
firstobs=2;
input sex $ shintyou taijyuu kyoui
jitaku $ kodukai carryer $ tsuuwa;
proc print data=gakusei(obs=10);
run;
proc plot data=gakusei; : 散布図
plot shintyou*taijyuu; : 元の変量のプロット
run; :
proc princomp cov data=gakusei out=outprin; : 主成分分析(分散共分散行列)
var shintyou taijyuu; : 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 23:15 Wednesday, July 6, 2005 プロット : SHINTYOU*TAIJYUU. 凡例: A = 1 OBS, B = 2 OBS, ... (NOTE: 46 オブザベーションが欠損値です.) SHINTYOU | 200 + | | B A 180 + A BDCFDDBEA B B A A A | BAFDKHTOHHCFECB BA | AEAGIIFECBCEAA AA A A 160 + ADCFDIDDBABB | A ECAEDDA A A | A BAA 140 + ---+-----------+-----------+-----------+-----------+-- 20 40 60 80 100 TAIJYUU SAS システム 3 23:15 Wednesday, July 6, 2005 Principal Component Analysis 282 Observations 2 Variables Simple Statistics SHINTYOU TAIJYUU Mean 168.4446809 58.56382979 StD 8.1382706 9.36408887 SAS システム 4 23:15 Wednesday, July 6, 2005 Principal Component Analysis Covariance Matrix SHINTYOU TAIJYUU SHINTYOU 66.23144847 54.25158628 TAIJYUU 54.25158628 87.68616037 Total Variance = 153.91760884 Eigenvalues of the Covariance Matrix Eigenvalue Difference Proportion Cumulative PRIN1 132.261 110.604 0.859296 0.85930 PRIN2 21.657 . 0.140704 1.00000 SAS システム 5 23:15 Wednesday, July 6, 2005 Principal Component Analysis Eigenvectors PRIN1 PRIN2 SHINTYOU 0.634832 0.772651 TAIJYUU 0.772651 -.634832 SAS システム 6 23:15 Wednesday, July 6, 2005 S H T K C I A J O A T N I K I D R S P P T J Y T U R U R R O S Y Y O A K Y U I I B E O U U K A E W N N S X U U I U I R A 1 2 1 F 145.0 38.0 . J 10000 . -30.7721 -5.05998 2 F 146.7 41.0 85 J 10000 Vodafone 6000 -27.3749 -5.65097 3 F 148.0 42.0 . J 50000 . -25.7770 -5.28135 <中略> SAS システム 8 23:15 Wednesday, July 6, 2005 プロット : PRIN2*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ... (NOTE: 46 オブザベーションが欠損値です.) 20 + | | | PRIN2 | A | A | A BCABABBCCA AA | A BBABDADEBFGDBJGC DE A 0 +-------------B-DAB-FC-JACEGEEFDKCACFBA-EAA-----A--------- | A AAABA CBCDAABCA C C BEEB FD A AA | AA B A A A B|BA A A AAA A | A | B | | A A -20 + | A A ---+------------+------------+------------+------------+-- -40 -20 0 20 40 PRIN1 SAS システム 9 23:15 Wednesday, July 6, 2005 S H T K C I A J O A T N I K I D R S P P T J Y T U R U R R O S Y Y O A K Y U I I B E O U U K A E W N N S X U U I U I R A 1 2 1 F 148.9 . . J 60000 . . . 2 F 153.0 . . G 120000 DoCoMo 200 . . 3 F 155.0 . . J 20000 . . . <中略> SAS システム 45 23:15 Wednesday, July 6, 2005 S H T K C I A J O A T N I K I D R S P P T J Y T U R U R R O S Y Y O A K Y U I I B E O U U K A E W N N S X U U I U I R A 1 2 289 M 180.0 64.0 90 J 35000 . 11.5359 5.4772 290 M 180.0 64.0 90 G 60000 au 10000 11.5359 5.4772 291 M 168.0 74.0 . G 120000 DDIp 15000 11.6445 -10.1430 292 M 179.0 65.0 . J 0 . 11.6738 4.0697 293 M 173.8 69.6 90 J 30000 DoCoMo 13000 11.9268 -2.8683 294 M 177.0 67.0 . 4000 DoCoMo 8000 11.9494 1.2547 295 M 180.0 65.0 88 J 30000 . 12.3086 4.8423 296 M 180.0 65.0 . G 100000 . 12.3086 4.8423 297 M 168.0 75.0 . G 150000 . 12.4171 -10.7778 298 M 179.0 66.0 . 30000 . 12.4464 3.4349 299 M 173.0 71.0 100 G 0 . 12.5007 -4.3752 300 M 178.0 67.0 . J 0 . 12.5842 2.0274 301 M 172.0 72.0 89 G 150000 . 12.6385 -5.7827 302 M 177.0 68.0 . G 80000 . 12.7220 0.6199 303 M 182.0 64.0 . G 0 . 12.8056 7.0225 304 M 165.0 78.0 . G 0 2098 12.8306 -15.0002 305 M 170.0 74.0 90 J 0 . 12.9141 -8.59765 306 M 175.0 70.0 95 G 50000 8000 12.9977 -2.19507 307 M 178.0 68.0 . J 100000 DoCoMo 4000 13.3569 1.39254 308 M 175.0 74.0 . J 0 . 16.0883 -4.73440 309 M 180.0 70.0 94 G 70000 au 5000 16.1718 1.66818 310 M 180.0 70.0 . J 40000 au 4000 16.1718 1.66818 311 M 180.0 70.0 . . . 16.1718 1.66818 312 M 180.0 70.0 . J 40000 DoCoMo 6500 16.1718 1.66818 313 M 178.7 71.2 95 0 . 16.2737 -0.0981 314 M 173.5 76.5 . G 100000 . 17.0677 -7.4805 315 M 184.0 68.0 85 30000 . 17.1659 6.0284 316 M 182.0 70.0 90 G 100000 . 17.4415 3.2135 317 M 185.0 68.0 93 J 0 . 17.8007 6.8011 318 M 175.0 77.0 95 G 130000 . 18.4062 -6.6389 319 M 179.1 74.2 . 0 au 4000 18.8456 -1.6935 320 M 176.5 78.0 96 J 10000 . 20.1311 -6.1147 321 M 177.0 78.0 . J 40000 . 20.4486 -5.7284 322 M 181.5 74.5 . G 120000 au 3000 20.6010 -0.0296 323 M 178.0 78.0 110 G 50000 . 21.0834 -4.9558 324 M 169.3 88.5 94 J 0 . 23.6732 -18.3436 325 M 186.0 82.0 . J 0 . 29.2526 -1.3139 326 M 182.0 90.0 100 J 40000 . 32.8945 -9.4831 327 M 178.0 95.0 . 1000 No . 34.2184 -15.7479 328 M 178.0 100.0 112 G 60000 . 38.0817 -18.9221
/* Lesson 12-2 */ /* File Name = les1202.sas 07/07/05 */ data gakusei; infile 'all05a.prn' firstobs=2; input sex $ shintyou taijyuu kyoui jitaku $ kodukai carryer $ tsuuwa; proc print data=gakusei(obs=10); run; proc princomp cov data=gakusei out=outprin; : 主成分分析(分散共分散行列) var shintyou taijyuu kyoui; : 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
23:16 Wednesday, July 6, 2005
Principal Component Analysis
104 Observations
3 Variables
Simple Statistics
SHINTYOU TAIJYUU KYOUI
Mean 167.2798077 58.69615385 86.49038462
StD 8.8277737 10.85357015 7.64249132
SAS システム 4
23:16 Wednesday, July 6, 2005
Principal Component Analysis
Covariance Matrix
SHINTYOU TAIJYUU KYOUI
SHINTYOU 77.9295883 70.4536109 25.3187360
TAIJYUU 70.4536109 117.7999851 54.5154966
KYOUI 25.3187360 54.5154966 58.4076736
SAS システム 5
23:16 Wednesday, July 6, 2005
Principal Component Analysis
Total Variance = 254.13724701
Eigenvalues of the Covariance Matrix
Eigenvalue Difference Proportion Cumulative
PRIN1 196.291 154.890 0.772382 0.77238
PRIN2 41.401 24.956 0.162909 0.93529
PRIN3 16.445 . 0.064709 1.00000
SAS システム 6
23:16 Wednesday, July 6, 2005
Principal Component Analysis
Eigenvectors
PRIN1 PRIN2 PRIN3
SHINTYOU 0.530874 -.657814 0.534279
TAIJYUU 0.750236 0.071616 -.657280
KYOUI 0.394105 0.749768 0.531535
SAS システム 7
23:16 Wednesday, July 6, 2005
S
H T K C
I A J O A T
N I K I D R S P P P
T J Y T U R U R R R
O S Y Y O A K Y U I I I
B E O U U K A E W N N N
S X U U I U I R A 1 2 3
1 F 145.0 38.0 . J 10000 . . . .
2 F 146.7 41.0 85 J 10000 Vodafone 6000 -24.7889 11.1529 -0.15621
3 F 148.0 42.0 . J 50000 . . . .
4 F 148.0 43.0 80 J 50000 DoCoMo 4000 -24.5689 6.6921 -3.43388
5 F 148.9 . . J 60000 . . . .
6 F 149.0 45.0 . G 60000 . . . .
7 F 150.0 46.0 86 40000 . -18.8918 10.0900 -1.14796
8 F 151.0 50.0 . G 60000 J-PHONE . . . .
9 F 151.7 41.5 80 J 35000 . -23.7300 4.1508 -0.47113
10 F 152.0 35.0 77 J 60000 DoCoMo 2000 -29.6296 1.2387 2.36687
11 F 152.0 43.0 . J 20000 au 3500 . . .
12 F 152.0 44.0 . 45000 DoCoMo 4000 . . .
13 F 153.0 41.0 . J 125000 No . . . .
14 F 153.0 42.0 . G 0 Vodafone 1000 . . .
15 F 153.0 46.5 87 G 10000 . -16.5299 8.9021 0.65777
SAS システム 9
23:16 Wednesday, July 6, 2005
プロット : PRIN2*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 224 オブザベーションが欠損値です.)
PRIN2 | |
20 + |
| A A A | A A A A
| AA ABABBB AC | A AC A A
0 +--------A----A-AABCBCD-CAAACADD-BBBAAB-AA-------A----------------
| A A A B AAA BBAD B
| A |AAA A
-20 + |
| A |
| |
-40 + |
---+-----------+-----------+-----------+-----------+-----------+--
-40 -20 0 20 40 60
PRIN1
SAS システム 10
23:16 Wednesday, July 6, 2005
プロット : PRIN3*PRIN2. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 224 オブザベーションが欠損値です.)
PRIN3 | |
10 + |
| A A AB A| A A A
| A A A AA D EBCD AABD A A
0 +----------------------A---A-A--B--A--EACBCBCBA-A-AAA-------------
| A A A A A CC CBA AA
| A AA A | AA A A
-10 + | A
| A | A
| |
-20 + |
---+-----------+-----------+-----------+-----------+-----------+--
-30 -20 -10 0 10 20
PRIN2
SAS システム 11
23:16 Wednesday, July 6, 2005
プロット : PRIN3*PRIN1. 凡例: A = 1 OBS, B = 2 OBS, ...
(NOTE: 224 オブザベーションが欠損値です.)
PRIN3 | |
10 + |
| A |B A C A A
| A A AAACA BB |ABDDBAA A D
0 +-----------AA--BCACCAC-AAAABB-CA-A--A----------------------------
| A A AA AA BA | B BBB AA
| A AA A A A A A
-10 + A |
| A | A
| |
-20 + |
---+-----------+-----------+-----------+-----------+-----------+--
-40 -20 0 20 40 60
PRIN1
/* Lesson 12-3 */
/* File Name = les1203.sas 07/07/05 */
data gakusei;
infile 'all05a.prn'
firstobs=2;
input sex $ shintyou taijyuu kyoui
jitaku $ kodukai carryer $ tsuuwa;
proc print data=gakusei(obs=10);
run; :
proc princomp data=gakusei out=outprin; : 相関係数を使って
var shintyou taijyuu kyoui; :
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
23:16 Wednesday, July 6, 2005
Principal Component Analysis
104 Observations
3 Variables
Simple Statistics
SHINTYOU TAIJYUU KYOUI
Mean 167.2798077 58.69615385 86.49038462
StD 8.8277737 10.85357015 7.64249132
SAS システム 4
23:16 Wednesday, July 6, 2005
Principal Component Analysis
Correlation Matrix
SHINTYOU TAIJYUU KYOUI
SHINTYOU 1.0000 0.7353 0.3753
TAIJYUU 0.7353 1.0000 0.6572
KYOUI 0.3753 0.6572 1.0000
SAS システム 5
23:16 Wednesday, July 6, 2005
Principal Component Analysis
Eigenvalues of the Correlation Matrix
Eigenvalue Difference Proportion Cumulative
PRIN1 2.19083 1.56282 0.730277 0.73028
PRIN2 0.62802 0.44686 0.209338 0.93962
PRIN3 0.18115 . 0.060385 1.00000
SAS システム 6
23:16 Wednesday, July 6, 2005
Principal Component Analysis
Eigenvectors
PRIN1 PRIN2 PRIN3
SHINTYOU 0.560340 -.648358 0.515414
TAIJYUU 0.637705 -.059382 -.767989
KYOUI 0.528537 0.759017 0.380187
[注意] データによっては解釈が困難なことも有り得る。
[参考] 「J:\コンピュータによる統計解析2(林 篤裕)\」に以下のデータを置いておく。
data rei01; do i=1 to 200; x=rannor(12345); output; end; run;
/* Lesson 12-5 */ /* File Name = les1205.sas 07/07/05 */ options linesize=72; /* pagesize=20; */ : 出力サイズの指定 data rei01; : データセット名を rei01 とする do i=1 to 200; : 200回の繰り返し x=rannor(12345); : 正規乱数を発生させる output; : データセットに追加する end; : 繰り返しの終端 run; : proc print data=rei01(obs=10); : 先頭 10ケースの表示 run; : proc means data=rei01; : 全データに対する平均の計算 run; : proc print data=rei01(firstobs=91 obs=110); : 91番から 110番のデータの表示 run; : proc means data=rei01(firstobs=91 obs=110); : 91番から 110番のデータについての平均 run; : data _null_; : データセット名は付けない set rei01; : 元となるデータセット名 file "unsorted.dat"; : 出力ファイル名 put i 5. x 15.8; : 変量 i は小数点以上 5桁で run; : 変量 x は小数点以上 15桁、以下 8桁で proc sort data=rei01; : 並べ替え by x; : 変量 x について run; : proc print data=rei01(obs=10); run; proc print data=rei01(firstobs=91 obs=110); run; proc means data=rei01(firstobs=91 obs=110); run; data _null_; set rei01; file "sorted.dat"; put i 5. x 15.8; run;
/* Lesson 12-6 */ /* File Name = les1206.sas 07/07/05 */ options linesize=72; /* pagesize=20; */ data rei02; : データセット名を rei02 とする do i=1 to 100; : x=rannor(23456); : 上記とは別の種で乱数を発生させる x10=int(x*10); : 10倍して正数部分だけ利用 output; : end; : run; : title "Default"; : 見出し(タイトル)を付ける : 「無指定」 proc chart data=rei02; : オプションを指定しない場合のヒストグラム hbar x; : 変量 x について run; : title "Ascending order"; : 「昇順」 proc chart data=rei02; : hbar x / midpoints=-3 to 3 by .5; : 変量 x について昇順で。0.5 刻み。 run; : title "Descending order"; : 「降順」 proc chart data=rei02; : hbar x / midpoints=3 to -3 by -.5; : 変量 x について降順で。-0.5 刻み。 run; : title "Default"; : 「無指定」: x10 を昇順に表示 proc freq data=rei02; : オプションを指定しない場合の度数分布表 tables x10; : 変量 x10 について run; : title "Freqency order"; : 「頻度降順」: 頻度の大きいものから proc freq data=rei02 order=freq; : tables x10; : 変量 x10 についての頻度順に表示 run; : proc sort data=rei02; : 並べ替え by decending x10; : x10 について降順に並べる run; : title "Descending order"; : 「数値降順」: x10 を降順に表示 proc freq data=rei02 order=data; : データの出現順で表示させるというオプション tables x10; : run; :