本文转自网站生物谷WORD版由Robot整理1SAS常用程序1利用SAS软件描述样本数据用SAS可以对样本数据进行全面描述,得出样本的各种特征数以及频数分布图。(篇幅长,可点击“视图”-“文档结构图定位阅读”)1.1用MEANS语句描述数据例2.1计算课本上习题1.2的平均数和标准差。解在进行分析之前,最好先建立一个外部数据文件。如果不建立外部数据文件,在作业流中输入数据也可以。一般来说,在数据量比较大,有可能重复使用时,最好建立一个数据文件。在这里我们创建一个称为2-1data.dat的外部数据文件,存储在A盘中。用MEANS过程描述数据的最基本的程序如下:optionslinesize=76;dataabc;infile‘a:\2-1data.dat’;inputx;run;procmeans;run;提交SAS运行后,所得结果如下:表2-1:例2.1输出的结果TheSASSystemAnalysisVariable:XNMeanStdDevMinimumMaximum25063.27600003.013994155.000000070.0000000打印的结果中包括:数据个数,平均数,标准差,最小值和最大值。这是MEANS语句在缺省时得到的基本结果。若需要对数据作更详细的描述,则要指明所需的统计量(关于统计量的概念见课本2.2.4)。用MEANS过程所计算的统计量,在这里也一并列出。下面还会反复提到“变量”这一名词,关于变量的概念见课本MEANS过程所计算的统计量是用关键词表示,这些关键词及其含义如下:N:输入的观测值(观测值的概念见课本2.2.1)个数NMISS:每个变量所含缺失值的个数MEAN:变量的平均数STD:变量的标准差本文转自网站生物谷WORD版由Robot整理2MIN:变量的最小值MAX:变量的最大值RANGE:变量的极差SUM:变量所有值的和VAR:变量的方差USS:每一变量原始数据的平方和(未校正平方和)CSS:每一变量的离均差平方和(校正平方和)CV:变异系数STDERR:每一变量的标准误差(平均数的标准差)T:在H0:μ=0时的t值(见课本5.1.4)PRT:在H0:μ=0的假设下,统计量t大于t临界值绝对值的概率SKEWNESS:偏斜度KURTOSIS:峭度CLM:置信区间的上限和下限(见课本6.2.1)LCLM:置信区间的下限UCLM:置信区间的上限另外,在PROCMEANS语句中还有12个选项,其中几个主要选项如下:DATA=(SAS数据集):指出SAS数据集的名称,若省略,则使用最近产生的数据集MAXDEC=(数字):指出所输出的结果中,小数部分的最大位数(0-8),缺省时为8位FW=(域宽):指出打印的结果中每个统计量的域宽,缺省时为12VARDEF=(DF/N):VARDEF=DF为缺省值,表示计算方差时,使用n-1作分母,VARDEF=N表示计算方差时,使用观测值个数n作分母ALPHA=(α值):指出在计算置信区间时,选用的显著水平例2.2计算课本上习题1.2的离均差平方和,方差,偏斜度和平均数的0.95置信区间。解仍然使用2-1data.dat外部数据文件。MEANS过程如下:optionslinesize=76;dataabc;infile‘a:\2-1data.dat’;inputx;run;procmeansdata=abcmaxdec=4fw=8alpha=0.05cssvarskewnessclm;run;运行的结果如下:表2-2:例2.2输出的结果本文转自网站生物谷WORD版由Robot整理3TheSASSystemAnalysisVariable:XCSSVarianceSkewnessKurtosisLower95.0%CLMUpper95.0%CLM2261.969.0842-0.1548-0.189462.900663.6514在PROCMEANS语句中,data=abc选项是可以省略的,因为PROCMEANS语句所分析的正是最近的SAS数据集,若需从SAS数据库中调用某一数据集时,则DATA选项不可省略。在建立外部数据文件时,应每个数据占一行,250个数据占250行(只占一列)。这样输入数据太麻烦,核对起来也不方便。如果想连续输入数据,则应在INPUT语句的变量后加上@@,即“inpetx@@;”,具体说明见例2.4。在进行科学研究时,需要处理的变量数目往往很多,而且变量之间还存在一定关系,经常要计算在某一变量特定水平下,其它变量的一些特征数。例如,在做人群健康情况调查时,涉及的变量多达十几个甚至几十个。如,性别、年龄、身高、体重、吸烟程度、饮酒程度、视力、听力、血压、脉搏、血黏度、胆固醇含量……。如果要计算不同程度吸烟者或不同性别受检者的各项指标或其中若干项指标的某些统计量,只需加上VAR语句和CLASS语句,便能很容易完成此项工作。VAR语句指明所需描述的变量,CLASS语句可以按观测值的不同类别分类计算指定的统计量。例2.3在做小麦育种时,调查了杂交后代的若干性状,选取其中一部分列在下表中(表2-3)。在表2-3中共列举了四个变量,即:株高、穗长、穗粒数和成熟早晚。分别用hop、loe、nog和fas代表上述四个变量,以成熟的早(e)、中(m)、晚(l)分类,分别计算株高与穗长的平均数、标准差和标准误差以及穗粒数的范围和变异系数。表2-3608.060m618.050m618.561l617.554e657.550l636.546e627.048l637.545m668.054m617.050e637.048e678.050l668.054l707.044e628.054e658.055l本文转自网站生物谷WORD版由Robot整理4639.056e679.052m647.046e628.056e659.058m688.548e646.544m637.052e628.048e637.050l698.052l637.552m687.046e617.552e657.548e668.048l668.554e708.046e688.048m628.562m658.566m609.064e697.548e668.046e687.542m709.046m697.042l728.052e667.552m708.050m697.550l718.050e676.038l677.548e解先建立一个称之为2-2data.dat的外部数据文件,外部数据文件的格式如表2-3所示。PROCMEANS程序如下:optionslinesize=76;datawheat;infile‘a:\2-2data.dat’;inputhoploenogfas$;run;本文转自网站生物谷WORD版由Robot整理5procmeansmaxdec=2fw=8maxminmeanstdstderr;varhoploe;classfas;procmeansdata=wheatrangecv;varnog;classfas;run;打印结果见表2-4。表2-4例2.3输出的结果TheSASSystemFASNObsVariableMaximumMinimumMeanStdDevStdErrore23HOP72.0060.0065.093.640.76LOE9.006.507.700.670.14l12HOP69.0061.0065.752.700.78LOE8.506.007.540.690.20m15HOP70.0060.0065.203.080.79LOE9.006.508.030.690.18TheSASSystemAnalysisVariable:NOGFASNObsRangeCVe2320.00000009.1612372l1223.000000011.8202275m1524.000000013.3156456除MEANS过程外,还可以使用SUMMARY过程和UNIVERIATE过程描述数据。其中SUMMARY过程与MEANS过程类似,对初学SAS软件的读者来说,能够使用MEANS过程已经够用了。1.2频数分布表的编制可以利用PROCFREQ过程编制频数分布表。例2.4利用PROCFREQ过程,编制课本上例1.1原始数据的频数分布表。解将120天中每天新生儿体重超过3公斤的人数,建成一个名为2-3data.dat的外部数据文件,存储在A盘中。编制频数分布表的程序如下:optionslinesize=76;本文转自网站生物谷WORD版由Robot整理6datababy;infile‘a:\2-3data.dat’;inputnumber@@;run;procfreq;run;INPUT语句中的@@称为双尾符,它的作用是在SAS从数据文件中读取数据时,读完一个数据行的第一个观测后指针并不移到下一行,而停留在观测后的第二列,接着读这一行的第二个观测,在指针移过数据行末尾时,自动为该行解固。因此,在建立数据文件时,每一个数据行可以输入几个观测。如建立2-2data.dat数据集时,每一个数据行就不仅是一个观测的四个值,而可以是几个观测,譬如608.060m618.050m618.561l617.554e657.550l636.546e::上述程序输出的结果如表2-5:表2-5例2.4输出的结果TheSASSystemCumulativeCumulativeNUMBERFrequencyPercentFrequencyPercent310.810.8421.732.551210.01512.561915.83428.373932.57360.883428.310789.29108.311797.51032.5120100.0可以用同样的方法编制非数值型变量的频数分布表。例2.5编制表2-3中“成熟早晚”的频数表。解datawheat;infile‘a:\2-2data.dat’;inputhoploenogmature$;run;procfreq;本文转自网站生物谷WORD版由Robot整理7tablemature;run;所得结果如下:表2-6例2.5输出的结果TheSASSystemCumulativeCumulativeMATUREFrequencyPercentFrequencyPercente2346.02346.0l1224.03570.0m1530.050100.0对于连续型数据,也可以用PROCFREQ过程编制频数分布表。例2.6编制课本上表1-2高粱三尺三株高的频数分布表。解先建立一个名为a:\2-4data.dat的外部数据文件。SAS程序如下:procformat;valuehfmt141-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;datasorghum;infile‘a:\2-4data.dat’;inputhight@@;run;procfreq;tablehight;formathighthfmt.;run;这里使用PROCFORMAT过程的目的是将数据按使用者的要求格式化。VALUE语句中要给出被定义的输出格式名,在这里称为hfmt。若以组界分组,还需加上“”或“”号,如143.5-146.5=’144-146’等。在PROCFREQ过程的FORMAT语句中一定要在hfmt之后加上一个“.”。输出结果如下:表2-7例2.6输出的结果TheSASSystemCumulativeCumulativeHIGHTFrequencyPercentFrequencyPercent141-14311.011.0本文转自网站生物谷WORD版由Robot整理8144-14