用SAS可以對樣本數據進(jìn)行全面描述,得出樣本的各種特征數以及頻數分布圖。在閱讀以下內容之前請先閱讀第一章“SAS軟件基本操作”。
2.1.1 用MEANS語(yǔ)句描述數據
例 2.1 計算課本上習題1.2的平均數和標準差。
解 在進(jìn)行分析之前,最好先建立一個(gè)外部數據文件。如果不建立外部數據文件,在作業(yè)流中輸入數據也可以。一般來(lái)說(shuō),在數據量比較大,有可能重復使用時(shí),最好建立一個(gè)數據文件。在這里我們創(chuàng )建一個(gè)稱(chēng)為2-1data.dat 的外部數據文件,存儲在A盤(pán)中。用MEANS過(guò)程描述數據的最基本的程序如下:
options linesize=76;
data abc;
infile ‘a:\2-1data.dat’;
input x;
run;
proc means;
run;
提交SAS運行后,所得結果如下:
表2-1: 例2.1輸出的結果
The SAS System
Analysis Variable : X
| N | Mean | Std Dev | Minimum | Maximum |
| 250 | 63.2760000 | 3.0139941 | 55.0000000 | 70.0000000 |
打印的結果中包括:數據個(gè)數,平均數,標準差,最小值和最大值。這是MEANS語(yǔ)句在缺省時(shí)得到的基本結果。若需要對數據作更詳細的描述,則要指明所需的統計量(關(guān)于統計量的概念見(jiàn)課本2.2.4)。用MEANS過(guò)程所計算的統計量,在這里也一并列出。下面還會(huì )反復提到“變量”這一名詞,關(guān)于變量的概念見(jiàn)課本2.2.1。MEANS過(guò)程所計算的統計量是用關(guān)鍵詞表示,這些關(guān)鍵詞及其含義如下:
N:輸入的觀(guān)測值(觀(guān)測值的概念見(jiàn)課本2.2.1)個(gè)數
NMISS:每個(gè)變量所含缺失值的個(gè)數
MEAN:變量的平均數
STD:變量的標準差
MIN:變量的最小值
MAX:變量的最大值
RANGE:變量的極差
SUM:變量所有值的和
VAR:變量的方差
USS:每一變量原始數據的平方和(未校正平方和)
CSS:每一變量的離均差平方和(校正平方和)
CV:變異系數
STDERR:每一變量的標準誤差(平均數的標準差)
T:在H0:μ= 0時(shí)的t 值(見(jiàn)課本5.1.4)
PRT:在H0:μ= 0 的假設下,統計量t 大于t 臨界值絕對值的概率(見(jiàn)課本4.1.1)
SKEWNESS:偏斜度
KURTOSIS:峭度
CLM:置信區間的上限和下限(見(jiàn)課本6.2.1)
LCLM:置信區間的下限
UCLM:置信區間的上限
另外,在PROC MEANS語(yǔ)句中還有12個(gè)選項,其中幾個(gè)主要選項如下:
DATA=(SAS 數據集):指出SAS 數據集的名稱(chēng),若省略,則使用最近產(chǎn)生的數據集
MAXDEC=(數字):指出所輸出的結果中,小數部分的最大位數(0-8),缺省時(shí)為8 位
FW=(域寬):指出打印的結果中每個(gè)統計量的域寬,缺省時(shí)為12
VARDEF=(DF / N):VARDEF=DF為缺省值,表示計算方差時(shí),使用n-1 作分母,
VARDEF=N表示計算方差時(shí),使用觀(guān)測值個(gè)數n 作分母
ALPHA=(α值):指出在計算置信區間時(shí),選用的顯著(zhù)水平
例2.2 計算課本上習題1.2的離均差平方和,方差,偏斜度和平均數的0.95置信區間。
解 仍然使用2-1data.dat 外部數據文件。MEANS過(guò)程如下:
options linesize=76;
data abc;
infile ‘a:\2-1data.dat’;
input x;
run;
proc means data=abc maxdec=4 fw=8 alpha=0.05
css var skewness clm;
run;
運行的結果如下:
表2-2:例2.2輸出的結果
The SAS System
Analysis Variable : X
| CSS | Variance | Skewness | Kurtosis | Lower 95.0% CLM | Upper 95.0% CLM |
| 2261.96 | 9.0842 | -0.1548 | -0.1894 | 62.9006 | 63.6514 |
在PROC MEANS語(yǔ)句中,data=abc選項是可以省略的,因為PROC MEANS語(yǔ)句所分析的正是最近的SAS數據集,若需從SAS數據庫中調用某一數據集時(shí),則DATA選項不可省略。在建立外部數據文件時(shí),應每個(gè)數據占一行,250個(gè)數據占250行(只占一列)。這樣輸入數據太麻煩,核對起來(lái)也不方便。如果想連續輸入數據,則應在INPUT語(yǔ)句的變量后加上@@,即“inpet x @@;”,具體說(shuō)明見(jiàn)例2.4。
在進(jìn)行科學(xué)研究時(shí),需要處理的變量數目往往很多,而且變量之間還存在一定關(guān)系,經(jīng)常要計算在某一變量特定水平下,其它變量的一些特征數。例如,在做人群健康情況調查時(shí),涉及的變量多達十幾個(gè)甚至幾十個(gè)。如,性別、年齡、身高、體重、吸煙程度、飲酒程度、視力、聽(tīng)力、血壓、脈搏、血黏度、膽固醇含量……。如果要計算不同程度吸煙者或不同性別受檢者的各項指標或其中若干項指標的某些統計量,只需加上VAR語(yǔ)句和CLASS語(yǔ)句,便能很容易完成此項工作。VAR語(yǔ)句指明所需描述的變量,CLASS語(yǔ)句可以按觀(guān)測值的不同類(lèi)別分類(lèi)計算指定的統計量。
例 2.3 在做小麥育種時(shí),調查了雜交后代的若干性狀,選取其中一部分列在下表中(表2-3)。在表2-3中共列舉了四個(gè)變量,即:株高、穗長(cháng)、穗粒數和成熟早晚。分別用hop、loe、nog和fas代表上述四個(gè)變量,以成熟的早(e)、中(m)、晚(l)分類(lèi),分別計算株高與穗長(cháng)的平均數、標準差和標準誤差以及穗粒數的范圍和變異系數。
表2-3
60 8.0 60 m
61 8.0 50 m
61 8.5 61 l
61 7.5 54 e
65 7.5 50 l
63 6.5 46 e
62 7.0 48 l
63 7.5 45 m
66 8.0 54 m
61 7.0 50 e
63 7.0 48 e
67 8.0 50 l
66 8.0 54 l
70 7.0 44 e
62 8.0 54 e
65 8.0 55 l
63 9.0 56 e
67 9.0 52 m
64 7.0 46 e
62 8.0 56 e
65 9.0 58 m
68 8.5 48 e
64 6.5 44 m
63 7.0 52 e
62 8.0 48 e
63 7.0 50 l
69 8.0 52 l
63 7.5 52 m
68 7.0 46 e
61 7.5 52 e
65 7.5 48 e
66 8.0 48 l
66 8.5 54 e
70 8.0 46 e
68 8.0 48 m
62 8.5 62 m
65 8.5 66 m
60 9.0 64 e
69 7.5 48 e
66 8.0 46 e
68 7.5 42 m
70 9.0 46 m
69 7.0 42 l
72 8.0 52 e
66 7.5 52 m
70 8.0 50 m
69 7.5 50 l
71 8.0 50 e
67 6.0 38 l
67 7.5 48 e
解 先建立一個(gè)稱(chēng)之為2-2data.dat 的外部數據文件,外部數據文件的格式如表2-3所示。
PROC MEANS程序如下:
options linesize=76;
data wheat;
infile ‘a:\2-2data.dat’;
input hop loe nog fas $;
run;
proc means maxdec=2 fw=8 max min mean std stderr;
var hop loe;
class fas;
proc means data=wheat range cv;
var nog;
class fas;
run;
打印結果見(jiàn)表2-4。
表2-4 例2.3輸出的結果
The SAS System
| FAS | N Obs | Variable | Maximum | Minimum | Mean | Std Dev | Std Error |
| | | | | | | | |
| e | 23 | HOP | 72.00 | 60.00 | 65.09 | 3.64 | 0.76 |
| | | LOE | 9.00 | 6.50 | 7.70 | 0.67 | 0.14 |
| | | | | | | | |
| l | 12 | HOP | 69.00 | 61.00 | 65.75 | 2.70 | 0.78 |
| | | LOE | 8.50 | 6.00 | 7.54 | 0.69 | 0.20 |
| | | | | | | | |
| m | 15 | HOP | 70.00 | 60.00 | 65.20 | 3.08 | 0.79 |
| | | LOE | 9.00 | 6.50 | 8.03 | 0.69 | 0.18 |
The SAS System
Analysis Variable : NOG
| FAS | N Obs | Range | CV |
| | | | |
| e | 23 | 20.0000000 | 9.1612372 |
| l | 12 | 23.0000000 | 11.8202275 |
| m | 15 | 24.0000000 | 13.3156456 |
除MEANS過(guò)程外,還可以使用SUMMARY過(guò)程和UNIVERIATE過(guò)程描述數據。其中SUMMARY過(guò)程與MEANS過(guò)程類(lèi)似,對初學(xué)SAS軟件的讀者來(lái)說(shuō),能夠使用MEANS過(guò)程已經(jīng)夠用了。
2.1.2 頻數分布表的編制
可以利用PROC FREQ過(guò)程編制頻數分布表。
例 2.4 利用PROC FREQ過(guò)程,編制課本上例1.1原始數據的頻數分布表。
解 將120天中每天新生兒體重超過(guò)3公斤的人數,建成一個(gè)名為2-3data.dat的外部數據文件,存儲在A盤(pán)中。編制頻數分布表的程序如下:
options linesize=76;
data baby;
infile ‘a:\2-3data.dat’;
input number @@;
run;
proc freq;
run;
INPUT語(yǔ)句中的@@稱(chēng)為雙尾符,它的作用是在SAS從數據文件中讀取數據時(shí),讀完一個(gè)數據行的第一個(gè)觀(guān)測后指針并不移到下一行,而停留在觀(guān)測后的第二列,接著(zhù)讀這一行的第二個(gè)觀(guān)測,在指針移過(guò)數據行末尾時(shí),自動(dòng)為該行解固。因此,在建立數據文件時(shí),每一個(gè)數據行可以輸入幾個(gè)觀(guān)測。如建立2-2data.dat數據集時(shí),每一個(gè)數據行就不僅是一個(gè)觀(guān)測的四個(gè)值,而可以是幾個(gè)觀(guān)測,譬如
60 8.0 60 m 61 8.0 50 m 61 8.5 61 l
61 7.5 54 e 65 7.5 50 l 63 6.5 46 e
:
:
上述程序輸出的結果如表2-5:
表2-5 例2.4輸出的結果
The SAS System
| | | | Cumulative | Cumulative |
| NUMBER | Frequency | Percent | Frequency | Percent |
| | | | | |
| 3 | 1 | 0.8 | 1 | 0.8 |
| 4 | 2 | 1.7 | 3 | 2.5 |
| 5 | 12 | 10.0 | 15 | 12.5 |
| 6 | 19 | 15.8 | 34 | 28.3 |
| 7 | 39 | 32.5 | 73 | 60.8 |
| 8 | 34 | 28.3 | 107 | 89.2 |
| 9 | 10 | 8.3 | 117 | 97.5 |
| 10 | 3 | 2.5 | 120 | 100.0 |
可以用同樣的方法編制非數值型變量的頻數分布表。
例 2.5 編制表2-3中“成熟早晚”的頻數表。
解 data wheat;
infile ‘a:\2-2data.dat’;
input hop loe nog mature $;
run;
proc freq;
table mature;
run;
所得結果如下:
表2-6 例2.5輸出的結果
The SAS System
| | | | Cumulative | Cumulative |
| MATURE | Frequency | Percent | Frequency | Percent |
| | | | | |
| e | 23 | 46.0 | 23 | 46.0 |
| l | 12 | 24.0 | 35 | 70.0 |
| m | 15 | 30.0 | 50 | 100.0 |
對于連續型數據,也可以用PROC FREQ過(guò)程編制頻數分布表。
例 2.6 編制課本上表1-2高粱三尺三株高的頻數分布表。
解 先建立一個(gè)名為a:\2-4data.dat的外部數據文件。SAS程序如下:
proc format;
value hfmt
141-143=’141-143’ 144-146=’144-146’ 147-149=’147-149’
150-152=’150-152’ 153-155=’153-155’ 156-158=’156-158’
159-161=’159-161’ 162-164=’162-164’ 165-167=’165-167’
168-170=’168-170’;
run;
data sorghum;
infile ‘a:\2-4data.dat’;
input hight @@;
run;
proc freq;
table hight;
format hight hfmt.;
run;
這里使用PROC FORMAT過(guò)程的目的是將數據按使用者的要求格式化。VALUE語(yǔ)句中要給出被定義的輸出格式名,在這里稱(chēng)為hfmt。若以組界分組,還需加上“<”或“>”號,如143.5-<146.5=’144-146’等。在PROC FREQ過(guò)程的FORMAT語(yǔ)句中一定要在hfmt之后加上一個(gè)“.”。輸出結果如下:
表2-7 例2.6輸出的結果
The SAS System
| | | | Cumulative | Cumulative |
| HIGHT | Frequency | Percent | Frequency | Percent |
| | | | | |
| 141-143 | 1 | 1.0 | 1 | 1.0 |
| 144-146 | 2 | 2.0 | 3 | 3.0 |
| 147-149 | 4 | 4.0 | 7 | 7.0 |
| 150-152 | 13 | 13.0 | 20 | 20.0 |
| 153-155 | 23 | 23.0 | 43 | 43.0 |
| 156-158 | 28 | 28.0 | 71 | 71.0 |
| 159-161 | 15 | 15.0 | 86 | 86.0 |
| 162-164 | 10 | 10.0 | 96 | 96.0 |
| 165-167 | 3 | 3.0 | 99 | 99.0 |
| 168-170 | 1 | 1.0 | 100 | 100.0 |
2.1.3 頻數分布圖的繪制
繪制離散型數據的柱狀圖,可以用GCHART過(guò)程。以課本上例1.1的數據為例,程序如下:
data baby;
infile ‘a:\2 -3data.dat’;
input number @@;
run;
proc gchart;
vbar number;
run;
如果需要水平條狀圖,只需將vbar改為hbar即可。執行上述程序的結果如下圖:
圖2-1 離散型數據的柱形圖
用CAPABILITY過(guò)程繪制連續型數據的頻率直方圖是很方便的。最簡(jiǎn)單的程序如下:
data sorghum;
infile ‘a:\2-4data.dat’;
input hight @@;
run;
proc capability graphics noprint;
var hight;
histogram;
run;
上述的GRAPHICS和NOPRINT的含義分別是,打出高分辨率的圖象和不打出概括性統計量表。執行上述程序的結果如下;
直方圖的組距是程序自動(dòng)選定的,組距的大小可以通過(guò)改變中值來(lái)調整。若組距定為3厘米,可以加進(jìn)選項“midpoint=142 to 169 by 3”。圖2-2是頻率直方圖,若要得到頻數直方圖,還需加入選項“vscale=count”。PROC CAPABILITY過(guò)程為:
proc capability graphics noprint;
var hight;
histogram / midpoint=142 to 169 by 3
vscale=count;
run;
聯(lián)系客服