SAS教程所用版本为SAS知识资料for知识资料Windows知识资料6_第1页
SAS教程所用版本为SAS知识资料for知识资料Windows知识资料6_第2页
SAS教程所用版本为SAS知识资料for知识资料Windows知识资料6_第3页
SAS教程所用版本为SAS知识资料for知识资料Windows知识资料6_第4页
SAS教程所用版本为SAS知识资料for知识资料Windows知识资料6_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下朽木易折,金石可镂Word-可编辑SAS教程:所用版本为SASforWindows6.12版,向下兼容至6.04版。大部分来自华西医科大学研究生用内部教材《SAS上机实习指导》SAS第一课:SAS界面及基本操作概述SAS第二课:SAS/ASSIST视窗简介SAS第三课:SAS程序基本语法入门SAS第四课:如何用SAS做统计图SAS第五课:定量资料的统计描述和t、u检验SAS第六课:分类资料的统计描述与容易判断SAS第七课:方差分析与协方差分析SAS第八课:直线回归、直线相关与Logistic回归(上)SAS第八课:直线回归、直线相关与Logistic回归(下)SAS第九课:非参数检验SAS第十课:随访资料的生存分析--非参数法与半参数Cox比例风险模型第一章Hello,SASforwindows!(医学统计之星)欢迎进入SAS世界!十几年来,SAS系统凭借其强大而完备的功能在统计软件界独占鳌头。如今,操作系统已进入了Windows时代,SAS的Windows版本也已日渐成熟。因此我们将以其Windows6.12版本为主讲述SAS系统的使用。在本章,我们将首先对SAS系统的界面及各部分的功能作简要推荐,随后以一个容易的SAS程序为例,讲述一些常用的操作,为以后深入学习SAS打下基础。§1.1SAS界面简介1.1.1SAS的启动

在进入Win95系统后,你在Windows桌面上将可以看到形如“”的,看上去象一个不怎么可口的草莓冰淇淋的SAS图标。将鼠标移到图标上(注重:是图标上而不是图标下方的说明文字上),双击该图标,则很快浮上SAS的启动画面,等待4~7秒钟,系统即彻低进入SAS环境。1.1.2SAS的图形窗口界面进入SAS后,展示在大家面前的界面如下图所示,在其中我们用蓝色线条将各个部分分开了,请将鼠标在各位置停歇,会有相应位置的名称弹出。现将其主要部分分离描述如下:控制钮在窗口的左上角,显示为程序相应的图标,图中则显示为SAS图标。用鼠标点一下控制钮,则会弹出其所代表窗口的控制菜单。标题条显示所在窗口内容的名称或者标题,图中则显示为程序名“SAS”。最小、最大/中间化、关闭按钮形如“”,在窗口的右上方依次罗列,最左侧为最小化按钮,用鼠标单击该按钮,则系统窗口回缩到Windows状态栏上成为一个图标,再用鼠标单击已经最小化了的窗口图标,则窗口恢复本来的大小;中间的一个按钮,当该按钮为单框时,为最大化按钮,按一下该按钮则窗口扩大到全屏幕,此时该按钮变为双框的中间化按钮形如“”,按下此按钮则窗口又回到中间状态;最右侧的按钮为关闭按钮,按下此按钮时,则系统异常有礼貌的弹出一个对话框,咨询你是否真的要退出SAS,用鼠标义无反顾地按下决定按钮,我们就退出系统,回到了Win95桌面(快回来,我还要继续推荐呢!)。菜单条又叫下拉菜单,是Windows程序的重要组成部分,利用它我们可以完成各种功能,从而轻巧的驾驭SAS系统。以“Edit”菜单为例,用鼠标点一下Edit项,该菜单项就会弹出其相应的下拉菜单,请注重第三项“Cut”为灰色,表示该命令现在不可用,而倒数第2项“Checkspelling”右侧有一个小黑三角,这表示该菜单项有自己的次级菜单,将鼠标移到该处,则次级下拉菜单自动弹出,如此反复,直至找到所需命令为止,然后将鼠标指向项目所需菜单项,单击左键,则该命令开始运行。快捷工具栏使用菜单命令偶尔要移动好几次鼠标,比较棘手,因此程序设计者将常用命令作成快捷工具栏,以便大家使用。以最右侧形如“”的按钮为例,请将鼠标移到该按钮上方静止不动,很快Windows弹出该按钮的提醒“Help”,表明该按钮为协助按钮,用鼠标点一下该按钮,则可以打开协助视窗。命令框可以将它和DOS状态下的命令行相对应。SAS命令就由该命令框输入。对于SAS系统的熟练使用者来说,使用系统最快捷的方式就是在命令框打入命令。以退出SAS为例,只要在命令框中点一下鼠标,使字符光标进入命令框(即其中浮上闪耀的光标),在其中输入“bye”,然后回车,SAS系统就和我们彻底Bye-bye了。窗体这一部分就是除了其余7部分外的,占屏幕绝大部分的――部分。不幸的是,在这里无法看到,因为里面塞满了其它东西。1)

PGM视窗即programeditor窗口,但称做PGM视窗以增强奥秘感。偶尔该视窗内可能自动给出程序行号,不用管它。PGM视窗也是一个Windows窗口,因此有自己的控制钮、标题条等。注重和LOG视窗相比,它的标题条为深色,表示它为当前(子)窗口。除了这些以外,这里还浮上了一个新玩意――滚动条。水平/垂直滚动条形如“”,用来左右/前后移动窗口中的内容,注重倘若现有内容可以所有被显示出来,则滚动条出现。滚动条的长度代表所有内容的长度,中间的小块叫滑块,代表现在窗口内容在所有内容中占的比例和所在位置。单击滑块两侧的空白区域可使显示内容翻页,单击滚动条两侧的小黑三角则可使显示内容移动一行/列。我们也可以采用拖动滑块的主意迅速找到想看的内容。

2)

LOG视窗用于输出程序在运行时的各种有关信息。主要有以下几种内容:程序行黑色,以系统给出的顺序行号123...开始。忠实的记录了执行过的每一条语句。提示蓝色,以NOTE开始。提供系统或程序运行的一些常规信息,大多数时候我们可以视而不见。警告绿色,以WARNING开始。普通在程序中含有系统可以自动更正的小错误时浮上,此时会提供错误序列号。但偶尔也提供内存不足、软件执照即将到期等信息(使用正版软件可真烦人)。浮上警告时普通应注重阅读,如程序有错误应赶紧改正。错误红色,以ERROR开始。SAS异常老实,你的程序轻微难懂一点它就大惊小怪地报错,把问题全推给了你,弄得你不得不重来一遍(有些学生从这里受到启发,程序一有问题不自己动脑,赶紧就找带习教师,唉!)。现在在LOG视窗中惟独两条提醒信息,第一条是SAS研究所的版权声明,第二条则标出了软件版本号和软件执照拥有单位。其余三种信息我们以后会逐渐见到(可能有的学生还会看到其它信息,没关系,只要不是红色的就行)。因为SAS是一个典型的MDI(多文档界面)程序,因此在其窗体内可以有多个子窗口,但当前子窗口惟独一个(即标题栏深色显示的那个),我们所做的操作均是针对当前子窗口的,倘若要对其它子窗口举行操作,则普通均需切换当前子窗口。SAS的子窗口有十几个,但我们常用的惟独四个:PGM视窗、LOG视窗、用于输出统计结果的OUTPUT视窗和输出绘图结果的GRAPH视窗。状态栏它在系统中又被分为两部分。当前文件夹表明系统当前的所在位置。我们所做的读、写文件等操作均默认在该文件夹中举行,在图中当前文件夹为“C:\SAS”。消息栏对于系统在运行中发生的任何情况,在消息栏上都会显示出相应的信息。仍以刚才协助按钮为例,当系统显示协助按钮的提醒时,在消息栏中也同时会显示如下的信息“Commandsfordisplayinghelp”,它可以协助我们及时了解系统所处的状态。双击“C:\SAS”处即可改变当前文件夹。Windows中的文件夹=DOS中的子目录倘若你发出命令而没有得到预料中的结果,一定要先看看消息栏,往往在这里会有出错信息或警告。§1.2SAS界面操作入门1.2.1编写您个人历史上的第一个SAS程序在上一节我们推荐了SAS系统的界面,现在让我们一起来编写您个人历史上的第一个SAS程序(请记住这个时刻,人类历史将很可能由此而翻开新的一页),首先,请在PGM视窗中键入以下程序:title"Whosaidwecan'tholdtheworld!";datatemp;

inputxy@@;

cards;

345678903567891023657745;prcprintrun;quit;可千万不要敲错呀!1.2.2程序的运行挑选下拉菜单LocalsRun或直接按下F3键,程序即被提交运行。大家可以看到视窗中不断浮上各种信息,最后浮上了红色的“Error”提醒,表明该程序有错。下拉菜单会随着当前窗口的改变而改变,倘若在Local菜单中没有找到Run项,则请注重你的当前窗口是否为PGM视窗。1.2.3程序的修改唉!第一次放飞就碰到下雨,哪里错了呢?为了了解程序执行的详细情况,我们拖动垂直滚动条浏览所有LOG视窗输出,以得到详细的错误提醒。LOG视窗的输出如下:1title"Whosaidwecan'tholdtheworld!";2datatemp;3inputxy@@;4cards;NOTE:SASwenttoanewlinewhenINPUTstatementreachedpasttheendofaline.NOTE:ThedatasetWORK.TEMPhas6observationsand2variables.NOTE:TheDATAstatementused2.85seconds.6;7prcprint148run;2029quit;WARNING14-169:AssumingthesymbolPROCwasmisspelledasPRC.ERROR202-322:Theoptionorparameterisnotrecognized.NOTE:TheSASSystemstoppedprocessingthisstepbecauseoferrors.NOTE:ThePROCEDUREPRINTused0.28seconds.LOG视窗将运行的程序加上行号并逐行输出,同时给出相应的提醒,但在第七和第八行时,分离在它们下面画了红色的横线,并标以相应的数字。这表明SAS系统发现了错误,数字代表相应的错误号,再往下有相应错误的详细解释。可以看到:系统警告我们可能将“proc”拼成了“prc”;同时指出错误:“run”这个参数无法解释。经过检查发现,“print”后面少了一个分号,而SAS语句是以分号为语句结束符的,从而使系统认为7、8两句是一个程序行,因此将“run”判为“print”的参数,天然无法识别。这样我们就找到了所有的错误。要将“prc”改为“proc”,并且在“print”后加一个分号。可是PGM视窗已经空了,怎样唤回已经逝去了的程序呢?只要挑选Localsrecalltext或直接打“F4”键,就可以呼叫回上一次所提交的程序。现在改正刚才的错误,再次提交运行该程序。这次LOG视窗信息表明程序已经胜利运行,大多数时候OUTPUT视窗会自动弹出,倘若没有弹出,则请注重系统窗口的左下方,可能OUTPUT视窗在此处缩小为最小化图标,将该图标最大化即可看到输出结果。如何切换子窗口?挑选Globals下拉菜单,前四项依次是常用的四个窗口的列表,从其中挑选您所青睐的那个即可。1.2.4程序的存储SAS不是一个字处理软件,因此它的文件保护功能很弱。倘若你不保存文件,在退出系统时它会自作聪明地以为你因为对生活失去了信心而不想保存,从而不忍心提醒你,其结果则是――洗白(统计之星工作室注:这个词是四川话特有的,意为彻底打败,一场空等)。现在我们已经胜利的运行了这个程序,作为纪念,我们想将这个第一个程序存在磁盘上,则挑选菜单FileSave,系统弹出Save对话框如下:请注重存为类型框,将该框右侧的小三角点一下,则会弹出类型列表如下。该列表给出了系统所指定的五种存盘文件类型,它们分离是:*.sasSAS程序文件。*.logLOG视窗输出文件。*.lisOUTPUT视窗输出文件。*.dat纯文本格式的数据文件。*.rtf与WORD兼容的RTF格式文件。我们要存的文件类型显然为*.sas类型,因此用鼠标挑选*.sas类型,然后再看保存位置框,它显示当前文件夹位置为C:\SAS文件夹,而我们想将该文件存入C:\USER文件夹,因此要首先改变当前文件夹。先按向上一级按钮“”,此时文件夹退回C盘盘根,在对话框主框体中寻找,可以看到文件夹列表中已经浮上了USER文件夹(倘若没看见,拖动滚动条的滑块找一下),用鼠标双击,则进入该文件夹。现在在文件名框中点一下,让字符光标进入该框,键入文件名“Myfirstsasprogram”,再按保存按钮,则该文件被存储,系统退回到SAS界面。请注重消息栏显示“NOTE:9line(s)writtentoexternalfile.”,表明文件已经胜利存盘,而且PGM视窗中的标题也已经改变为“PROGRAMEDITOR-Myfirstsasprogram”。好了,以后PGM视窗里的任何改动就所有算在这个程序的头上啦!1.2.5如何打开一个存储的程序如何打开?异常容易,挑选菜单FileOpen,系统就会不顾一切地弹出Open对话框,在里面把你要的东西找到就行了。1.2.6文件的换名存储该做的好象都做完了,不过好象还缺点什么――糟糕,这本教材的读者不止我一个,他们岂不是将自己的程序都取这个名字?不可,我得给我的宝物程序换个名字,叫Taitanic如何?好,首先在PGM视窗中将原程序调出,然后选FileSaveas菜单,系统弹出和Save对话框彻低相同的Saveas对话框,象刚才一样操作即可。(原著:张文彤)第二章SAS/ASSIST视窗简介(医学统计之星)上次更新日期:SAS是一个庞大的系统,它由许多模块组成,每个模块分离完成不同功能。因为SAS最初是为专业统计人员设计的(这一点和SPSS恰恰相反),因此使用上以编程为主,初学者控制较为艰难。现在,微机操作系统已经进入了WINDOWS时代,而WINDOWS软件的一个重要特点就是易学易用。要想在市场中继续率先,SAS必须推出能体现WINDOWS软件这一特色的新界面,SAS/ASSIST视窗就是这一努力的结果。固然它还有许多不足之处,但这一新界面使得初学者较快地学会使用SAS成为可能。本章将向大家推荐这一SAS的全新界面――SAS/ASSIST视窗。持久以来,对于统计软件界面的易用性有两种理论:一种认为统计软件也是软件,美观易用的界面是它必备的功能;另一种理论则认为统计软件有其异常用途,现在有许多统计主意实际上是在被滥用,而倘若任何人都可以通过容易方便(即“友好”)的界面来使用自己实际上并不了解的复杂统计模型,则等同于是在助长这一现象。这两种理论都有一定的道理,看来SAS倾向于后者:ASSIST视窗只能提供较常用的统计功能,并且看上去也不怎么优美。2.0.1ASSIST视窗的启动ASSIST视窗的启动主意也是比较多的。倘若从下拉菜单启动,则请单击Globals-->SAS/ASSIST,系统将开始启动ASSIST视窗,几秒钟后进入ASSIST视窗主界面如下图所示:ASSIST视窗的正上方为主菜单名(PrimaryMenu),下面的12个按钮分离表示了在该视窗中可用的各种功能。常用的按钮有:TUTORIAL按钮

由此可以进入SAS提供的教学程序DATAMGMT按钮

由此进入数据库管理模块GRAPHICS按钮

由此进入绘图模块DATAANALYSIS按钮

由此进入统计分析的有关模块INDEX按钮

提供所有可用命令的索引,倘若对菜单项的分类不清晰,可以从这里直接寻找所需功能EXIT按钮

使我们可以退出ASSIST视窗我们主要推荐统计分析功能,对于其它功能,有兴趣的学生可以自行试探。单击DATAANALYSIS,则视窗进入二级菜单――数据分析菜单(DataAnalysisMenu),它的布局和主菜单界面基本一致,各种按钮中常用的有:ELEMENTARY按钮

提供基本的统计分析,如描述、相关、频数表REGRESSION按钮

提供线性回归、Logstic回归和时光序列回归统计ANOVA按钮

提供方差分析、非参数检验和t检验MULTIVARIATE按钮

提供主成分分析等多元分析主意QUALITYCNTL按钮

进入质量控制模块TIMESERIES按钮

提供时光序列分析功能DATAMGMT按钮

与主菜单的该按钮相同,进入数据库管理模块INDEX按钮

提供所有可用功能的索引GOBACK按钮

退回主菜单HELP按钮

启动HELP视窗2.0.2ASSIST视窗的使用主意下面我们以一个例子来说明ASSIST视窗的使用主意。现有数据集SASUSER.CLASS记录了某班学生的年龄、身高和体重情况,我们要对该数据举行容易的描述,则用ASSIST视窗的操作主意如下:①单击数据分析菜单中的按钮ELEMENTARY,则系统开启一个新的ELEMETARY对话框如下图所示:②请注重Summarystatistics是以深色显示的,表示该项为默认值。用鼠标单击该项目,则系统开启下一个对话框――SummaryStatistics对话框如下图所示:③SummaryStatistics对话框就是统计描述的主窗口,它由一些按钮和复选框(Checkbox)组成,注重Activedataset:按钮和Variables:按钮的右侧写着“-REQUIRED-”,表示这两项必须加以定义,否则程序没有充足的信息来运行。首先定义所分析的数据集:单击Activedataset:,则系统开启新对话框如图A所示:图A④在该对话框中列出了可用的所有数据集名,从左到右依次为库名、数据集名和数据集类型,拖动滑块使SASUSER.CLASS数据集浮上在窗口中,用鼠标单击数据库名,因为当前数据集只能有一个,所以对话框自动关闭,退回SummaryStatistics对话框。倘若我们再次进入Activedataset对话框,则可见SASUSER.CLASS数据集的左侧有一个星号,如图B所示,这表示该数据集已被选中为当前数据集。倘若要改变挑选,直接单击需要的数据集名,系统会自动替换。图B⑤请注重右图,Activedataset:按钮的右侧显示为SASUSER.CLASS,表示当前分析数据集为SASUSER库的数据集CLASS。现在我们可以定义分析变量了:单击Variables:,系统开启一个变量挑选对话框供我们挑选变量。⑥SASUSER.CLASS中可供分析的延续变量均显示在变量窗口中,我们想对这三个变量都做描述,则依次单击三个变量名,单击后变量名的左侧浮上一个星号,表示该变量被选中;再单击一次则星号出现,表示撤消挑选。将三个变量所有选中,如图C所示。然后后按OK,该窗口关闭,系统退回上一级窗口。图C⑦Variables按钮右侧显示为AGE、HEIGHT、WEIGHT三个变量。现在我们输入的信息已经满意了运行程序的最低要求,但是我们还想将结果按性别分开输出,则单击Class:,系统开启变量挑选窗口如图D所示。用鼠标单击变量名“SEX”,再单击OK,图D此时变量描述窗口如下图所示:⑧变量的挑选告一段落,现在开始挑选所需要的统计量。变量描述窗口的下方为一些复选框,右侧为复选框名,左侧为复选框的状态。以SUM复选框为例,用鼠标单击SUM左侧的小方框,此时该方框内打勾,表示该项被挑选;再点一下则复选框恢复原状态。如此挑选所需的所有统计量,最后变量描述窗口的状态如下图所示:⑨现在是最后一步――运行程序了,挑选下拉菜单Locals-->Run,则系统开始执行程序,最后OUTPUT视窗自动弹出,显示总算的运行结果。可能有的学生觉得神奇,为什么我总是说系统在执行程序,刚才没有写程序啊?!事实上,SAS/ASSIST视窗是一个程序自动产生器,我们所做的每一个挑选都被写成了程序,最后系统执行这个自动产生的程序来向我们交差。倘若想看所产生的程序,则挑选下拉菜单LocalsView-->Sourse。以刚才的挑选为例,系统产生的程序其主要部分如下:procmeansdata=SASUSER.CLASSvardef=DFMINMAXRANGESUMMEANVARSTDSTDERRCV;varAGEHEIGHTWEIGHT;classSEX;;run;通过这个例子,我们控制了使用SAS/ASSIST视窗时将会碰到的窗口界面的用法。为了使大家在学习SAS时能打下较坚实的基础,本书依然以讲述SAS语言为主线。但是在例题的解中,我们将尽可能给出程序和ASSIST视窗两种操作主意。学生们可按照详细情况自行挑选使用哪种解法。第三章SAS程序初步从本质上讲,SAS是一种完美的第四代计算机语言。因此要真正控制它,我们依然要抛开其朴素的外表,从学习它的核心――SAS程序开始。现在,让我们将SAS看成一个计算能力极强的统计学白痴(之所以这样说,是因为它计算能力固然极强,却只能帮你计算而不能提出自己的实验设计计划或研究方向来),而你有一个异常小的关于数据分析的问题要请它辅助。天然你要开口提出哀求,无论措辞是委婉婉转还是直截了当,你的大实话无非是“喂,老兄,我有这样一些数据,我想做这样一种统计分析,您能帮我吗?”。他疾驰检查您的要求,在认为合情、合理并且合法后,就开始举行计算,并且在很短的时光内给出计算结果。好的,计算机语言就是我们和计算机对话时所用的语言。和以上人类对话的例子相对照,“我有这样一些数据”对应SAS程序中的数据步;而“我想做这样一些统计处理”对应SAS程序中的程序步;最后的那一句哀求“您能帮我吗”则对应了Submit命令。在默认情况下,运行结果或者出错信息将自动给出(固然你也可以强制不让它输出)。此外,还有一些系统环境控制语句,如Libname、title等。SAS程序就是由一个或多个数据步和/或程序步加上一些乱七八糟的环境控制语句组成。在本章中,我们将首先学习SAS对数据的管理方式,然后会了解到什么是数据步和程序步,最后则推荐一下SAS语言中结构化语句的语法。§3.1SAS系统对数据的管理在SAS系统中惟独SAS数据集才干被SAS过程直接调用,SAS数据集的结构和DBF数据库彻低相同,因此无须多讲。而SAS数据集存储在被称为SAS数据库的文件扩散,在PC系统中,SAS数据库与某一个文件夹相对应,我们要为每一个数据库指定一个库标记(库名)来识别该库,使用Libname命令可以指定库标记。它的普通格式如下:Libname库标记’文件夹位置’选项;例如要指定目录“C:\USER”为库标记A,可以在视窗中提交如下语句:libnamea’c:\user’;数据库可分为永远库和暂时库两种。暂时库惟独1个,名为WORK,它在每次启动SAS系统后自动生成,关闭SAS时库中的数据集被自动删除;永远库可有多个,用户可以使用Libname语句指定永远库的库标记,永远库中的所有文件都将被保留。但库标记仍是暂时的,每次启动SAS系统后都要重新指定。不过为了方便用户,SAS在每次启动时都会自动指定两个库标记:SASUSER:指明为永远库,即库中的数据集被保存起来,以便下次启动系统时使用。WORK:指明为暂时库,对于开辟和检查新程序异常实用,但每次SAS运行结束后WORK库中的所有文件将被删除。在程序中引用该库中的数据集可以省略库标记,即它被认为是缺省的数据库。SAS数据库对应文件夹,如SASUSER对应c:\sas\sasuser,WORK对应c:\sas\saswork,SAS数据集则对应文件,每个数据集实际上是在硬盘的相应文件夹内产生一个文件名为数据集名,而扩展名为.sd2的文件,因此倘若你胜利的建立了一个数据集,理论上你就可以反复使用它直到硬盘报废。每一个数据集都有一个两级名,第一级是库标记,第二级是数据集名,中间用“.”隔开,在程序中通过指定两级名来识别文件。文件两级名的普通形式如下:库标记.数据集名如在a库中的数据集abc可以这样来引用:a.abc。§3.2SAS程序的数据步3.2.1决定知识SAS程序的语句从上一个语句结束处开始,以一个分号结束,可占多行。3.2.2数据步以DATA语句开始,用于创建和处理数据集。其中最常用的语句有:DATA语句它的主要功能是:标志数据步的开始。命名将要创建的SAS数据集。DATA语句的普通形式如下:DATA数据集名;INFILE语句用于从外部文件读入数据,必须浮上在INPUT语句之前。它的主要功能是:决定一个包含原始数据的外部文本文件。INFILE语句的格式如下:INFILE’外部文件的所在位置及名称’选项;CARDS语句用于直接输入数据,标志着数据块的开始。格式如下:CARDS;数据块;

INPUT语句用于向系统表明如何读入每一条记录。它的主要功能有:读入由语句指定的数据列。为相应的数据域定义变量名。决定变量的读入模式。INPUT语句的格式如下:INPUT变量名[变量类型起止列数]...;方括号表示其中的内容为可选,倘若不输入,系统会以默认值代替。3.2.3数据的两种输入方式上面我们学到了INFILE语句和CARDS语句,它们分离对应了两种数据输入的方式:【直接输入方式】实际上我们在第一章已经用到了直接输入方式,仍以那个程序为例,其中的数据步如下:datatemp;命名将要建立的数据集为work.tempinputxy@@;要输入的变量为x、y,并且延续输入cards;直接输入数据,数据块开始345678903567891023657745数据块;数据块结束变量y后面的@@表示数据可以在一行里延续读入,SAS默认按列来分隔变量,可是这里惟独两个变量,输成两列数据太长,因此加上两个@@,SAS见到这个符号,在按变量名依次读取完数据后,不是跳到下一行,而是继续在该行读数据,直至本行结束或到达分号为止。倘若你对这段讲述无法理解,请去掉两个@@,重新运行一遍程序,看看LOG视窗中的提醒都有些什么变化。【外部文件读入方式】倘若刚才的数据已经事先输好,在硬盘上的“C:\USER”文件夹内存为temp.dat文件,该文件内容如下(纯文本):345678903567891023657745则我们可以输入程序如下:datatemp;命名将要建立的数据集为work.tempInfile’c:\user\temp.dat’;指定外部数据文本文件名inputxy@@;要输入的变量为x、y,并且延续输入Run;数据步结束,以上语句可以执行了数据步以DATA语句开始,那么在哪里结束?在碰到run语句或另一个数据步/程序步时就结束了。为什么程序的最后都要加一句run?这个问题还不太好解释,每一个程序应至少在最后有一个run语句,表明前面的所有语句可以提交运行了,倘若没有这一句,SAS会以为你后面还有语句要输入,从而将一些非赶紧执行的语句保留在编译缓冲区中,等待后续命令发出后一起执行,这偶尔会把事情弄得很糟。出于减少棘手的需要,建议大家养成在每一个数据步或程序步后都写上一句run的习惯。Submit命令和run语句有什么区别?这是初学者最爱问的一个问题,也同样是一个难以回答的问题。容易地讲,run是程序语句,可在程序中多次浮上,它表示前面的程序段已经所有写完,可以作为一个或几个整体提交运行了,而Submit则是SAS命令,只在最后程序运行的时候发出,表示将程序正式提交运行。倘若你还不明了,那么我还是来给你打个比喻,run语句是你对SAS说“我想让您做的就是这些了”,而Submit命令就是对SAS说“现在开始为我做这些事,好吗”,明了了吗?【读入其他格式的数据文件】除了以上的两种通过数据步创建数据集的主意,SAS还提供了一些其他的方式可以用来读入其他格式的数据文件。6.11版本以上的SAS可以利用FILE菜单上的import命令将其他格式的数据文件导入SAS系统,创建SAS自己的数据集。可以导入的数据文件格式有:dBase数据库,EXCEL工作表,LOTUS的数据库,纯文本的数据文件等。导入的操作彻低是对话式的,界面友好,简便实用。以下容易讲述导入的步骤,倘若例1.1的数据输成一个dBASEIII数据库文件temp.dbf,已经存放在"c:\user"下,要导入成数据集work.li1_1。挑选FILE菜单上的import,弹出一个对话框,按照向导的提醒举行下去。

1.挑选导入的数据格式,从下拉式菜单上挑选DBF格式,单击NEXT按钮。

2.给出数据文件的位置和文件名,在对话框中键入C:\USER\temp.DBF,或点BROWSE直接从上面挑选文件,选好后单击NEXT按钮。

3.挑选导入的目的地,即指定要创建的数据集的名字和存放的数据库名,先在左面的对话框挑选数据库名WORK(暂时库),在右面的对话框键入数据集的名字li1_1,此名可随意起,少于8个字符,挑选完后,单击FINISH按钮,就完成了此次操作。

这时已经建好了一个数据集,名为WORK.li1_1,与我们前面建立的数据集彻低一致。§3.3SAS程序的程序步通俗的讲,SAS的程序步(有的书中也称过程或过程步)就是已经编好了的用于数据收拾和统计的计算机程序,你只需要调用它们就是了。程序步总是用一个PROC语句开始,后面紧跟着程序步名,用以区别不同的程序步。以下是一些常用的程序步的名称及功能。程序步名功能SORT将指定的数据集按指定变量排序PRINT将数据扩散的数据列表输出MEANS对指定的数值变量举行容易的统计描述FREQ对指定的分类变量举行容易的统计描述TTEST对指定的变量做t检验ANOVA对指定的变量做方差分析NPAR1WAY对指定的变量做非参数检验REG对指定的变量做回归分析CORR对指定的变量做相关分析CHART绘出低分辨率的统计图PROC就是程序(procedure)的缩写,而程序步的名字大都是其功能相对应的单词或词组的缩写。可见SAS的许多功能就是通过程序步来体现的,可如此多的种类也使我们难以总结出一个程序步的通式来。不过仍可大致给出如下结构:PROC过程名[DATA=数据集名][选项];

该过程的专用语句描述;

[VAR变量序列;]

[WHERE条件表达式...;]

[BY变量序列;]Run;方括号里的语句均可以省略,在这时该过程按最通常的情况来处理,即:处理最新建立的SAS数据集。处理所有的变量(或对一个计算过程来说处理所有数值变量)。一次处理囫囵数据集而不是某个子集。我们在第一章中用到的PRINT程序步就是采用的这种默认方式。但偶尔我们的要求超出了默认方式所提供的范围,这时就要动用方括号里的秘密武器了。DATA参数指明所需处理的数据集名,请注重在这里它是一个参数而不是语句。VAR语句倘若只想分析某一个或几个特定的变量,则可用VAR语句指定它们。例如只想显示变量x的列表,则PRINT过程如下:Procprint;

Varx;Run;倘若想显示x和y两个变量,则将VAR语句改为如下形式即可:varxy;固然,也可以将VAR语句删除,结果相同。Where语句倘若你想处理的不是囫囵数据集而只是其中符合某种条件的子集,那么WHERE语句将会异常实用,如上例中我们只想显示大于50的x变量的值,则在PRINT过程中参加where语句如下:Wherex>50;倘若条件变为x、y两个变量的值都要大于50,则where语句改为:wherex>50andy>50;SAS语言中常用的逻辑表达符号有and(和)、or(或)、xor(异或)、ne(不等)等。By语句倘若你需要分组处理数据,例如要按性别分组输出统计结果,你有两种挑选,一是用不同的where语句将同一个程序步反复写几遍;另一种显然更酷的主意就是采用by语句。如上例我们想按不同的y值输出x值,则参加by语句如下:Byy;使用BY语句要求数据集已经按BY语句中指定的变量排序。倘若没有排序,则程序无法准确运行。可以用SORT过程来排序,语法结构如下:PROCSORTDATA=数据集名;

BY变量名列;RUN;§3.4结构化语句简介每一种结构化语言编写的程序都由顺序、分支、循环三种结构构成,SAS语言也不例外。在这里简要推荐一下分支和循环语句的语法。这些语句均可直接在数据步和程序步中使用,适当地使用它们可以大大简化我们的工作。3.4.1分支(条件)语句【语法格式】语法格式如下:IF条件THEN

程序块;ELSE

程序块;可见其语法和FOXBASE语言十分相似,只是前面多了THEN,结尾没有ENDIF,可以将两者相比较来理解。其中程序块倘若惟独一句,则可直接写出,否则应以DO开始,以END结束。【应用实例】例3.1在产生数据集temp的同时为其增强变量class,当x>50时class=1,否则class=2。解:程序如下:datatemp;数据步开始,定义要建立的数据集为WORK库的TEMP

inputxy@@;要输入的变量为X和Y,并且采用数据延续读入方式

ifx>50thenclass=1;建立新变量CLASS,倘若X>50,则CLASS=1

elseclass=2;否则,CLASS=2cards;数据块开始345678903567891023657745数据块;数据块结束procprint;列表输出数据扩散的数据,检查有无错误run;程序结束,开始运行以上程序以上程序在书写时采用了缩进格式,使程序的结构更清晰。固然大家可以左对齐写完所有的语句,但这样书写的程序在较长时难以阅读。为什么可以这样写?在这里有须要解释一下数据步的执行过程,input语句按变量顺序将数据读入内存缓冲区,直至每一个变量都有值相对应。然后数据步继续向下执行,从而其它语句可以修改内存缓冲区,如修改值、增强变量等,在执行到数据步结束后,程序又回到input语句处继续执行,直到数据读完为止。现在再看看这个程序,大家可以理解它了吧!3.4.2循环语句【语法格式】语法格式如下:DO起始条件TO终止条件;

程序块;END;该语句主要用于建立数据集。【应用实例】例3.2在产生数据集temp的同时为其增强变量class,取值依次为1、2。解:程序如下:Datatemp;数据步开始,定义要建立的数据集为WORK库的TEMP

doclass=1to2;循环开始,循环控制变量为CLASS,取值从1到2

inputxy@@;要输入的变量为X和Y,并且采用数据延续读入方式

output;用OUTPUT语句将循环控制变量写入数据扩散

end;循环结束cards;数据块开始345678903567891023657745数据块;数据块结束run;程序结束,开始运行以上程序注重在数据步中,我们不需要用语句改变循环变量的大小,系统会自动改变。现在,SAS语言的基本知识算是推荐完了。在理论上,你现在可以坐在计算机前,自立编写程序以做出你的统计作业或者是向SAS公司发射核导弹。但为了使你能尽可能地少走弯路(我指的是做统计作业而不是后者),在以后的各章中我们将重点推荐一些常用的程序步,并且在须要的时候推荐一些较为深入的内容。Areyouready?Let’sgo!(原著:张文彤田晓燕)第四章统计图(医学统计之星)上次更新日期:统计图是统计描述的重要工具,它可以直观的反映出事物间的数量关系。因此,许多统计软件均提供了强大的统计做图功能。SAS的许多程序步,如Univariate过程等,也附有相应的绘图功能,这些我们拟在相关章节中讲述。本章将向大家推荐两个专门用于绘图的程序步――GCHART过程和GPLOT过程。前者用于绘制各种常用的统计图,而后者则用于绘制散点图。在早期的DOS版本中,SAS只提供低分辨率图形(即用键盘字符模拟输出的图形)。而在WINDOWS时代,美观优美也成为了软件最重要的性能指标之一,因此SAS公司推出了高分辨率图形。固然比起EXCEL等软件来,它的高分辨率图形依然不那么令人惬意,但至少已经跟上了时代的潮流。高分辨率图形在专门的GRAPH视窗中输出,而低分辨率图形在OUTPUT视窗中一同输出。只要将绘图过程名中的字母G去掉,做出的就是低分辨率图形,你可以比较一下两种图形的“天壤之别”。§4.1GCHART过程Gchart过程可以绘制水平/竖直条图(直方图)、立体直方图、饼图和星状图。我们可以用这些图来了解单个变量的分布或者多个变量之间的关系。4.1.1语法格式PROCGCHART[DATA=<数据集名>[选项]];指定要分析的数据集名及一些选项HBAR<变量名列>/[选项];绘出条形图VBAR<变量名列>/[选项];绘出水平条形图BLOCK<变量名列>/[选项];绘出三维直方图PIE<变量名列>/[选项];绘出饼图STAR<变量名列>/[选项];绘出星状图AXISn[选项];控制坐标轴的形状和色彩BY<变量名列>;按该变量取值分层绘制,要求数据集已按该变量排序方括号中的为可选项,倘若不写,系统会以默认值代替或者忽略该功能;而尖括号中的为必选项,表示倘若写了该语句,则必须提供尖括号中的信息,否则可能出错。如[DATA=<数据集名>],表示你可以不写这一项,此时系统默认处理的是最新建立的数据集;而倘若写了DATA=这一项,你就必须指定一个数据集名,不然SAS跟你没完。4.1.2语法说明事实上,绘图程序步中的选项极为繁杂,倘若合理地使用这些选项可以做出异常优美的统计图来。但这些选项也给大家的学习带来很大的不便,因此在这里我们只简要推荐几个常用的绘图语句中的选项。【绘图语句选项】MISSING指定绘图时要将变量的缺失值也包括在内。TYPE=做图类型关键字指定要做图的类型,即图中条块代表的含义:缺省值是频数(FREQ);倘若指定了挑选项SUMVAR,则缺省值为总和(SUM)。可选的关键字有:FREQ要求按指定变量的频数做图。PERCENT要求按在横轴刻度表示范围内浮上的频数占总数的百分比做图。CFREQ按累计频数做图。CPERCENT按累计百分比做图。SUM只能与SUMVAR选项同时使用,要求图中的每一条代表:变量在横轴表示的取值范围内时,SUMVAR指定变量的总和。MEAN只能与SUMVAR选项同时使用,要求图中的每一条代表:变量在横轴表示的取值范围内时,SUMVAR指定变量的均数。SUMVAR=求和变量指定使用TYPE=SUM或MEAN时,用于求总和、均值的变量。LEVAL=n倘若绘图变量是延续变量,用该选项产生有N个组段的图形。GROUP=分组变量要求产生以分组变量的值分组的并排图。SUBGROUP=亚组变量要求每个图形内部再按亚组变量的值分块。CAXIS=色彩指定坐标轴的色彩。CTEXT=色彩指定坐标轴文本的色彩。4.1.3应用实例例4.1绘制《卫生统计学》第三版习题1.1的直方图,数据存在c:\user\wt1_1.dat中。解:程序如下:libnamea'c:\user';

指定c:\user文件夹为数据库adataa.wt1_1;数据步开始,指定要建立的数据集为a库的wt1_1infile'c:\user\wt1_1.dat';采用外部文件读入方式,文件名为c:\user\WT1_1.datinputx@@;

输入的变量为x,采用延续输入的格式procgchartdata=a.wt1_1;调用绘图程序步gchartvbarx/levels=10;绘出直方图,用于绘图的变量为x,分为10组run;

开始运行以上程序事实上ASSIST视窗的输出图形是彩色的,和我们用程序做出的有些区别,这是因为ASSIST视窗自动提交了一些绘图环境语句,对输出图形作了修饰的缘故。实际上libname语句只需要运行一次就可以了,但在开始的几道例题里我们都写上了这一句,让大家逐步养成启动SAS后就运行这一句的习惯。请将C:\USER文件夹指定为A库,以后我们实习的数据集均放在该库中。§4.2GPLOT过程GPLOT过程用于绘出散点图。图中的横、纵坐标分离代表两个变量。4.2.1语法格式PROCGPLOT[DATA=<数据集名>[选项]];PLOT<纵坐标变量*横坐标变量[=分层变量名]...>/[选项];指定绘图变量和选项PLOT2<纵坐标变量*横坐标变量[=分层变量名]...>/[选项];在原图基础上重叠绘制第二幅散点图SYMBOLn[选项]定义符号、添加趋势线、定义点和线的色彩BY<变量名列>;按该变量取值分层绘制,要求数据集已按该变量排序实际上,SYMBOL语句中定义的选项为系统环境控制选项,这意味着一次定义,终生使用。除非重新定义,否则以后的输出图形都将会是第一个图形的“孪生兄弟”。在这里SYMBOL后面紧跟了一个n,表示随意天然数。因为PLOT语句可以在同一坐标系内重叠绘制许多层图,而这个数字就表示SYMBOL语句是控制的哪一层图。4.2.2语法说明【GPLOT过程的选项】UNIFORM要求用BY语句分组打印的散点图的坐标刻度相同,便于比较。VTOH=数值指定纵横坐标的比例。【PLOT语句说明】分层变量表示所做的散点图按指定变量的取值分层,默认按不同色彩来区别。语句选项OVERLAY同一语句做的图重叠在同一个坐标系中显示。HAXIS=数值定义横坐标的刻度。VAXIS=数值定义纵坐标的刻度。CAXIS=色彩定义坐标轴的色彩。CTEXT=色彩定义坐标轴文本的色彩。【SYMBOL语句选项】VALUE=符号可用的符号及相应名称有:+PLUS★STAR■SQUARE

◆DIAMOND▲TRIANGLEI=连线方式①JOIN用直线衔接。②SPLINE用光洁的曲线衔接。NEEDLE向横坐标画垂线。RL添加回归直线。WIDTH=宽度定义数据点和连线的宽度。COLOR=色彩定义数据点和连线的色彩。4.2.3应用实例例4.210名20岁男青年身高(cm)与前臂长(cm)如下,请绘出散点图(卫统p2365.2题)。身高170173160155173168178183180165前臂长45424441475047464943解:程序如下(注重程序中对输出图形作了些修饰)。Libnamea’c:\user’;

指定c:\user文件夹为数据库adataa.wt5_2;数据步开始,指定要建立的数据集为a库的wt5_2inputxy@@;输入的变量为x和y,采用延续输入的格式cards;数据块开始1704517342160441554117341数据块1885017847183461804916543数据块;数据块结束procgplotdata=a.wt5_2;调用绘图程序步gplotploty*x/ctext=blue;绘出散点图,用于绘图的变量为x,y,坐标轴文本色彩为蓝色symbolvalue=starcolor=pinkwidth=2;

定义散点标记为粉红色星号,大小为2run;

开始运行以上程序绘制高分辨率统计图异常耗费系统资源,因此SAS在执行作图语句时实际上是将这些语句存入程序缓冲区,当用户打开GRAPH视窗看结果时才正式执行,从而绘出所需的统计图。倘若用户没有看所绘制的图形,则绘图语句就向来留在缓冲区内,此时用户再执行任何程序,程序语句就所有在缓冲区内排队,等待绘图语句执行完毕,因此就无法得到相应的输出结果,这是学生们在上机时常犯的一个错误。适当地使用统计图可以协助我们越发深入的了解数据的分布逻辑。这里的例子只是绘图语句的容易用法,而绘图语句的复杂用法将结合例题在以后的各章中逐步推荐。(原著:张文彤) 第五章定量资料的统计描述和t、u检验(医学统计之星)上次更新日期:从本章开始,我们将正式开始使用SAS解决我们的统计问题。先前面的几章可知,SAS的主要功能是由不同的程序步来体现的。因此在以后的各章中,我们将对每种问题重点推荐一些常用的程序步,以及它们的输出结果的解释。对于定量资料的统计描述和容易判断,SAS提供了三个强有力的程序步,它们是:UNIVARIATE过程提供单个变量的详细描述和对其分布类型的检验。MEANS过程提供单个或多个变量的容易描述,对于多个变量,它的输出格式紧凑,便于阅读。TTEST过程对变量举行t/u检验。§5.1引例例5.1文本文件“C:\USER\WTLI1_1.DAT”中已存入某市110名7岁男子童的身高资料(cm),请计算均数、标准差s、变异系数CV(卫统第三版p6例2.1)。解:该题应首先用数据步建立一个数据集,然后调用UNIVARIATE过程或MEANS过程来求出所需要的统计量。详细的程序如下:①设定数据库环境:LIBNAMEA'C:\USER';②数据步,建立数据集:DATAA.WTLI1_1;INFILE'C:\USER\WTLI1_1.DAT';INPUTX@@;RUN;③UNIVARIATE或MEANS过程,求出所需要的统计量:PROCUNIVARIATEDATA=A.WTLI1_1;PROCMEANSDATA=A.WTLI1_1NMEANSTDCV;VARX;VARX;RUN;RUN;例5.2某医生测得18例慢支炎患者与16例健康人的尿17酮类固醇排出量(mg/dl)分离为X1和X2,问两者均数是否不同(医统第二版P19例2.17)?解:这是成组设计的两样本均数比较的t检验,程序应首先建立数据集,然后调用TTEST过程举行检验,在检验的同时也可以得到两个样本的容易描述。①设定数据库环境:LIBNAMEA'C:\USER';②数据步,建立数据集,这里采用直接输入数据的主意:DATAA.YTLI2_17;INPUTGROUPVALUE@@;CARDS;13.1415.8317.3514.6214.0515.0814.9814.2214.3512.3512.8912.1615.5515.9414.415.3513.814.1224.1227.8923.2426.3623.4826.7424.6727.3824.9524.0825.3424.2726.5424.6225.9225.18;RUN;③TTEST过程,举行两样本的t检验。PROCTTESTDATA=A.YTLI2_17;VARVALUE;CLASSGROUP;RUN;§5.2UNIVARIATE过程Univariate过程对数值变量给出比较详细的变量分布的描述,其中包括:变量的极端值。常用的百分位数,包括四分位数和中位数。用几个散点图描绘变量的分布。频数表。决定数据为正态分布的检验。5.2.1语法格式Univariate过程的语法格式如下:PROCUNIVARIATE[DATA=<数据集名>[选项]];指定要分析的数据集名及选项[VAR<变量名列>;指定要分析的变量名列BY<变量名列>;按变量名列分组统计,要求数据集已按该变量名列排序FREQ<变量名>;表明该变量为分析变量的频数WEIGHT<变量名>;表明分析变量在统计时要按该变量权重ID<变量名>;输出时加上该变量作为索引OUTPUTOUT=<数据集名>指定统计量的输出数据集名关键字=<新变量名列>...指定统计量对应的新变量名pctlpts=<百分位数,...>指定需要的百分位数pctlpre=<新变量名列>];指定所需百分位数对应的输出变量名倘若省略所有非必须的语句和选项,则UNIVARIATE过程按默认情况输出所有变量的所有常用统计量。5.2.2语法说明【选项】Univariate过程常用的选项如下:NOPRINT禁止统计报告在OUTPUT视窗中输出PLOT绘出茎叶图、箱式图和正态概率图FREQ给出频数表NORMAL对变量举行正态性检验【关键字】SAS中用关键字来指定所需要的统计量,事实上结果输出中用的就是各种关键字,常用的关键字有:基本统计量NMEANSTD(标准误)CVSUMVAR(方差)RANG百分位数描述MINP1P5P10Q1MEDIANQ3P90P95P99MAX与假设检验有关的统计量STDMEAN(标准误)T5.2.3结果解释在默认的情况时,Univariate过程会输出绝大部分统计量,此时的输出结果如下:Variable=变量名变量标签Moments和矩有关的统计量Quantiles(Def=5)分位间距统计量N样本量SumWgts权重总和100%Max最大值99%99%百分位数Mean均数Sum总和75%Q375%百分位数95%95%百分位数StdDev标准差Variance方差50%Med50%百分位数90%90%百分位数Skewness偏度系数Kurtosis峰度系数25%Q125%百分位数10%10%百分位数USS未校正平方和CSS校正平方和0%Min最小值5%5%百分位数CV变异系数StdMean标准化均数1%1%百分位数T:Mean=0变量总体均数为0的t检验Pr>|T|t检验的p值Range全距Num^=0变量值非0的例数Num>0变量值大于0的例数Q3-Q1四分位间距M(Sign)变量总体均数为0的符号检验Pr>=|M|符号检验的p值Mode众数SgnRank变量总体均数为0的秩和检验Pr>=|S|秩和检验的p值Extremes极端值统计LowestObsHighestObs老幺(看见值序号)五大值(看见值序号)次小值(看见值序号)四大值(看见值序号)三小值(看见值序号)三大值(看见值序号)四小值(看见值序号)次大值(看见值序号)五小值(看见值序号)大哥大(看见值序号)5.2.4应用实例例5.3某地101例健康男子血清总胆固醇值测定结果已存入文本文件“c:\user\WT1_1.dat”中,请绘制直方图,计算均数、标准差s、变异系数CV、中位数M、p2.5和p97.5(卫统p2331.1题)。解:UNIVARIATE过程的默认输出中并不给出p2.5和p97.5,因此程序中要加以相应修改,最后在OUTPUT视窗中只会输出所需的几个统计量,详细程序如下:libnamea'c:\user';指定c:\user文件夹为数据库adataa.wt1_1;数据步开始,指定要建立的数据集为a库的wt1_1infile'c:\user\wt1_1.dat';采用外部文件读入方式,文件名为c:\user\WT1_1.datinputx@@;输入的变量为x,采用延续输入的格式procgchartdata=a.wt1_1;调用绘图程序步gchart,所用数据集为a.wt1_1vbarx;绘出竖直条图,用于绘图的变量为xprocunivariatedata=a.wt1_1noprint;调用程序步univariate,并且禁止在OUTPUT视窗中输出varx;要分析的变量为xoutputout=temp指定输出数据集为work.temp,n=nmean=xbarstd=scv=cvmedian=m将n、mean、std、cv、median按指定变量名存入pctlpts=2.5,97.5pctlpre=per;指定输出p2.5和p97.5,其输出变量名以per开始。procprintdata=temp;将数据集work.temp的内容打印输出run;开始运行以上程序例5.450例链球菌咽峡炎患者的埋伏期如下,计算其均数、中位数和几何均数(卫统p2331.3题)。12~24~36~48~60~72~84~96~108~12017111175422解:因为几何均数无法直接得到,因此将数据集加以对数变换,求出均数后再行反驳数变换得到几何均数,程序如下:libnamea'c:\user';指定c:\user文件夹为数据库adataa.wt1_3;数据步开始,指定要建立的数据集为a库的wt1_3inputxf@@;输入的变量为x和f,采用延续输入的格式x=x+6;将变量x的值更正到每个组段的组中值处logx=log(x);定义新变量logx为变量x的天然对数,用于算出几何均数cards;数据块开始121247361148116077258449621062数据块;数据块结束procprint;将数据集a.wt1_3的内容打印输出procunivariatedata=a.wt1_3noprint;调用程序步univariate,并且禁止在OUTPUT视窗中输出varxlogx;要分析的变量为x和logxfreqf;指定变量f代表分析变量x的频数outputout=tempn=nmean=xbarlogxmeanmedian=m;输出数据集和统计量的定义datatemp2;数据步开始,指定要建立的数据集为work.temp2settemp;让work.temp2继承work.tmep的所有数据g=exp(logxmean);产生新变量g,它等于elogxmeandroplogxmean;在work.temp2中删除暂时变量logxmeanprocprintdata=temp2;输出数据集work.temp2中的数据run;开始运行以上程序请注重,这里UNIVARIATE过程有两个分析变量X和LOGX,因此在OUTPUT语句中MEAN=后跟了两个变量名,它们分离存储两个变量的均数,而其余的关键字后惟独一个变量名,则它们只存储分析变量序列的第一个变量X的统计结果。§5.3MEANS过程Means过程提供单个或多个变量的容易描述。和Univariate过程相比,它更倾向于描述已经明确样本所在总体符合正态分布的变量,因此它不提供百分位数,但可以提供95%可信区间。同时在多个变量输出时,它的输出格式紧凑,便于阅读。5.3.1语法格式PROCMEANS[DATA=<数据集名>[选项]指定要分析的数据集名及一些选项[统计量关键字列表]];列出需要的统计量[VAR<变量名列>;要分析的变量名列BY<变量名列>;按变量名列分组统计,要求数据集已按变量名列排序CLASS<变量名列>;按变量名列分组统计,不要求数据集排序FREQ<变量名>;表明该变量为分析变量的频数WEIGHT<变量名>;表明分析变量在统计时要按该变量权重ID<变量名列>;输出时加上该变量作为索引OUTPUT<OUT=数据集名>指定统计量的输出数据集名关键字=<新变量名列>...];指定统计量对应的新变量名5.3.2语法说明【选项】Means过程常用的选项如下:NOPRINT禁止统计报告在OUTPUT视窗中输出MAXDEC=n给出列表输出的最大小数位数,缺省值为2【统计量关键字】MEANS过程中常用的统计量关键字有:基本统计量NMEANSTDCVSUMVARRANGMINMAX与假设检验有关的统计量STDERR(标准误)TPRT(与t对应的p值)LCLM(可信区间下限)UCLM(可信区间上限)注重Means过程中标准误的关键字是STDERR,而Univariate过程中为STDMEAN,另外LCLM和UCLM这两个关键字也是Univariate过程所没有的。5.3.3结果解释和Univariate过程不同,MEANS过程在默认情况下只输出样本量、均数、标准差、最小值和最大值,如例5.1的数据,倘若MEANS过程不加任何选项,则输出如下:AnalysisVariable:X分析变量名为XNMeanStdDevMinimumMaximum110119.4.108.132.可见Means过程的输出结构极为紧凑。5.3.4应用实例例5.5给出例5.1的均数、标准差s、变异系数CV和95%可信区间,并检验其总体均数是否为0(卫统p2331.1题)。解:倘若数据集a.wt1_1已经建立,则程序如下:procmeansdata=a.wt1_1nmeanstdcvlclmuclmtprt;varx;run;§5.4TTEST过程顾名思义,TTEST过程就是用于举行两样本均数的比较,它给出两总体方差齐和不齐时的检验结果,并同时做方差齐性检验。综合两者的结果,即可做出判断。事实上,ttest过程的功能异常有限,只能做普通的两样本t检验,对于按频数表格式输入的资料,我们只能用以后要推荐的ANOVA等过程来分析。5.4.1语法格式PROCTTEST[DATA=<数据集名>指定要分析的数据集名[COCHRAN]];要求在方差不齐时做COCHRAN近似CLASS<变量名>;必须,指定一个两分类的分组变量[VAR<变量名列>;指定要检验的变量名列BY<变量名列>];按变量名列分组统计5.4.2结果解释以例5.2的TTEST过程为例,它的输出结果如下:TTESTPROCEDUREVariable:VALUE分析变量名为VALUEGROUPNMeanStdDevStdErrorVariancesTDFProb>|T|样本量均数标准差标准误方差统计量t值自由度p值1184.41.40.6Unequal-1.813231.20.07942165.01.00.0Equal-1.817932.00.0785ForH0:Variancesareequal,F'=1.09DF=(15,17)Prob>F'=0.8589可见该结果分为三大部分:第一部分为两组各种描述统计量的值,第二部分分离给出两组所在总体方差齐和方差不齐时的t检验结果,第三部分为方差齐性检验,因此该过程一共举行了三个假设检验。对于无效假设H0:两总体方差齐的检验结果为F'=1.09,DF=(15,17),p=0.8589,可见在本例中方差是齐的,从而应选用方差齐时的t检验结果,即t=-1.8179,ν=32,p=0.0785,按α=0.05水准,不否决H0,尚不能认为慢支炎患者与健康人的尿17酮类固醇排出量不同。5.4.3应用实例例5.6某医院对9例慢性苯中毒患者用中草药一号抗苯一号治疗,得下列白细胞总数(109/L),问该药是否对白细胞总数有影响(卫统p2252.3题)?病人号123456789治疗前6.04.55.03.47.03.86.03.54.3治疗后5.98.05.0解:该题为样本差值均数和总体均数为0比较的t检验,TTEST过程无法完成。这里用MEANS过程来处理,程序如下:libnamea'c:\user';dataa.wt2_3;inputxy@@;tempvar=x-y;用新变量tempvar来记录同一病人治疗前后白细胞的差值cards;6.04.24.85.45.06.33.43.83.43.87.04.43.84.06.05.98.05.0;procmeansnmeanstdstderrtprt;利用Means过程检验差值总体均数是否为0vartempvar;要分析的变量为tempvarrun;开始运行程序例5.7将钩体病人的血清分离用标准株和水生株做凝溶实验,测得稀释倍数如下。问两组的平均效价有无区别(卫统p2262.5题)。标准株:1002004004004004008001600160016003200水生株:100100100200200200200400400解:程序如下:libnamea'c:\user';dataa.wt2_5;inputgroupx@@;logx=log(x);将数据做天然对数转换cards;110012001400140014001400180011600116001160013200210021002100220022002200220024002400;procprint;procttest;调用ttest过程举行t检验classgroup;分组变量为groupvarlogx;要统计的变量为logxrun;(原著:张文彤) 第六章分类资料的统计描述与容易判断(医学统计之星)最后一次更新时光:在SAS/STAT模块中FREQ、TABULATE和SUMMARY等过程可用于分类资料的统计描述,其中FREQ过程兼具统计描述和统计判断的功能,对分类变量计算频数分布,产生从一维到n维的频数表和列联表;对于二维表,可举行2检验,对于三维表,可作Mentel-Hanszel分层分析。FREQ过程是SAS用于分析分类资料的一个常用过程。本章将向大家推荐FREQ过程的用法。§6.1引例例6.1某医生用国产呋喃硝胺治疗十二指肠溃疡,以甲氰咪胍作对照组,问两种主意治疗效果有无差别(医统第二版P37例3.10)?处理愈合未愈合合计呋喃硝胺54862甲氰咪胍442064合计9828126解:在建立行列表的数据集时普通需要三个变量――行变量、列变量和指示每个格子中频数的变量。本例首先建立这样一个数据集,然后调用FREQ过程输出行列表,同时利用CHISQ选项举行2检验。①设定数据库环境:LIBNAMEAC:\USER;②数据步,建立数据集(这里同时给出直接输入和利用循环语句输入两种程序):DATAA.YTLI8_1;DATAA.YTLI8_1;INPUTROWCOLUMNNUMBER;DOROW=1TO2;CARDS;DOCOLUMN=1TO2;1154INPUTNUMBER@@;12

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论