/* 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; :