




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 SAS/ASSIST视窗简介SAS是一个庞大的系统,它由许多模块组成,每个模块分别完成不同功能。由于SAS最初是为专业统计人员设计的(这一点和SPSS恰恰相反),因此使用上以编程为主,初学者掌握较为困难。现在,微机操作系统已经进入了WINDOWS时代,而WINDOWS软件的一个重要特点就是易学易用。要想在市场中继续领先,SAS必须推出能体现WINDOWS软件这一特色的新界面,SAS/ASSIST视窗就是这一努力的结果。虽然它还有许多不足之处,但这一新界面使得初学者较快地学会使用SAS成为可能。本章将向大家介绍这一SAS的全新界面SAS/ASSIST视窗。长期以来,对于统计软件界面的易用性有两种理论:一种认为统计软件也是软件,美观易用的界面是它必备的功能;另一种理论则认为统计软件有其特殊用途,现在有许多统计方法实际上是在被滥用,而如果任何人都可以通过简单方便(即“友好”)的界面来使用自己实际上并不了解的复杂统计模型,则等同于是在助长这一现象。这两种理论都有一定的道理,看来SAS倾向于后者:ASSIST视窗只能提供较常用的统计功能,并且看上去也不怎么漂亮。2.0.1 ASSIST视窗的启动ASSIST视窗的启动方法也是比较多的。如果从下拉菜单启动,则请单击Globals- SAS/ASSIST,系统将开始启动ASSIST视窗,几秒钟后进入ASSIST视窗主界面如下图所示:ASSIST视窗的正上方为主菜单名(Primary Menu),下面的12个按钮分别表示了在该视窗中可用的各种功能。常用的按钮有: TUTORIAL按钮 由此可以进入SAS提供的教学程序 DATA MGMT按钮 由此进入数据库管理模块 GRAPHICS按钮 由此进入绘图模块 DATA ANALYSIS按钮 由此进入统计分析的有关模块 INDEX按钮 提供全部可用命令的索引,如果对菜单项的分类不清楚,可以从这里直接查找所需功能 EXIT按钮 使我们可以退出ASSIST视窗我们主要介绍统计分析功能,对于其它功能,有兴趣的同学可以自行摸索。单击DATA ANALYSIS,则视窗进入二级菜单数据分析菜单(Data Analysis Menu),它的布局和主菜单界面基本一致,各种按钮中常用的有: ELEMENTARY按钮 提供基本的统计分析,如描述、相关、频数表 REGRESSION 按钮 提供线性回归、Logstic回归和时间序列回归统计 ANOVA 按钮 提供方差分析、非参数检验和t检验 MULTIVARIATE按钮 提供主成分分析等多元分析方法 QUALITY CNTL按钮 进入质量控制模块 TIME SERIES按钮 提供时间序列分析功能 DATA MGMT按钮 与主菜单的该按钮相同,进入数据库管理模块 INDEX按钮 提供全部可用功能的索引 GOBACK按钮 退回主菜单 HELP按钮 启动HELP视窗2.0.2 ASSIST视窗的使用方法下面我们以一个例子来说明ASSIST视窗的使用方法。现有数据集 SASUSER.CLASS记录了某班学生的年龄、身高和体重情况,我们要对该数据进行简单的描述,则用ASSIST视窗的操作方法如下: 单击数据分析菜单中的按钮ELEMENTARY ,则系统开启一个新的ELEMETARY对话框如下图所示: 请注意Summary statistics是以深色显示的,表示该项为默认值。用鼠标单击该项目,则系统开启下一个对话框Summary Statistics对话框如下图所示: Summary Statistics对话框就是统计描述的主窗口,它由一些按钮和复选框(Check box)组成,注意Active data set:按钮和Variables:按钮的右侧写着“-REQUIRED-”,表示这两项必须加以定义,否则程序没有足够的信息来运行。首先定义所分析的数据集:单击Active data set:,则系统开启新对话框: 在该对话框中列出了可用的所有数据集名,从左到右依次为库名、数据集名和数据集类型,拖动滑块使SASUSER.CLASS数据集出现在窗口中,用鼠标单击数据库名,由于当前数据集只能有一个,所以对话框自动关闭,退回Summary Statistics对话框。如果我们再次进入Active data set对话框,则可见SASUSER.CLASS数据集的左侧有一个星号,如图B所示,这表示该数据集已被选中为当前数据集。如果要改变选择,直接单击需要的数据集名,系统会自动替换。 请注意右图,Active data set:按钮的右侧显示为SASUSER.CLASS,表示当前分析数据集为SASUSER库的数据集CLASS。现在我们可以定义分析变量了:单击Variables:,系统开启一个变量选择对话框供我们选择变量。 SASUSER.CLASS中可供分析的连续变量均显示在变量窗口中,我们想对这三个变量都做描述,则依次单击三个变量名,单击后变量名的左侧出现一个星号,表示该变量被选中;再单击一次则星号消失,表示撤消选择。将三个变量全部选中,如图所示。然后后按OK,该窗口关闭,系统退回上一级窗口。 Variables按钮右侧显示为AGE、HEIGHT、WEIGHT三个变量。现在我们输入的信息已经满足了运行程序的最低要求,但是我们还想将结果按性别分开输出,则单击Class:,系统开启变量选择窗口如图D所示。用鼠标单击变量名“SEX”,再单击OK, 此时变量描述窗口如下图所示: 变量的选择告一段落,现在开始选择所需要的统计量。变量描述窗口的下方为一些复选框,右侧为复选框名,左侧为复选框的状态。以SUM复选框为例,用鼠标单击SUM左侧的小方框,此时该方框内打勾,表示该项被选择;再点一下则复选框恢复原状态。如此选择所需的全部统计量,最后变量描述窗口的状态如下图所示: 现在是最后一步运行程序了,选择下拉菜单Locals- Run,则系统开始执行程序,最后OUTPUT视窗自动弹出,显示最终的运行结果。可能有的同学觉得奇怪,为什么我总是说系统在执行程序,刚才没有写程序啊?!事实上,SAS/ASSIST视窗是一个程序自动产生器,我们所做的每一个选择都被写成了程序,最后系统执行这个自动产生的程序来向我们交差。如果想看所产生的程序,则选择下拉菜单Locals View- Sourse。以刚才的选择为例,系统产生的程序其主要部分如下:proc means data=SASUSER.CLASS vardef=DFMIN MAX RANGE SUM MEANVAR STD STDERR CV ;var AGE HEIGHT WEIGHT ;class SEX ;run;通过这个例子,我们掌握了使用SAS/ASSIST视窗时将会碰到的窗口界面的用法。为了使大家在学习SAS时能打下较坚实的基础,本书仍然以讲述SAS语言为主线。但是在例题的解中,我们将尽可能给出程序和ASSIST视窗两种操作方法。同学们可根据具体情况自行选择使用哪种解法第三章 SAS程序初步从本质上讲,SAS是一种完善的第四代计算机语言。因此要真正掌握它,我们仍然要抛开其华丽的外表,从学习它的核心SAS程序开始。现在,让我们将SAS看成一个计算能力极强的统计学白痴(之所以这样说,是因为它计算能力虽然极强,却只能帮你计算而不能提出自己的实验设计方案或研究方向来),而你有一个非常小的关于数据分析的问题要请它帮忙。自然你要开口提出请求,无论措辞是委婉动听还是直截了当,你的大实话无非是“喂,老兄,我有这样一些数据,我想做这样一种统计分析,您能帮我吗?”。他迅速检查您的要求,在认为合情、合理并且合法后,就开始进行计算,并且在很短的时间内给出计算结果。好的,计算机语言就是我们和计算机对话时所用的语言。和以上人类对话的例子相对照,“我有这样一些数据”对应SAS程序中的数据步;而“我想做这样一些统计处理”对应SAS程序中的程序步;最后的那一句哀求“您能帮我吗”则对应了Submit命令。在默认情况下,运行结果或者出错信息将自动给出(当然你也可以强制不让它输出)。此外,还有一些系统环境控制语句,如Libname、title等。SAS程序就是由一个或多个数据步和/或程序步加上一些乱七八糟的环境控制语句组成。在本章中,我们将首先学习SAS对数据的管理方式,然后会了解到什么是数据步和程序步,最后则介绍一下SAS语言中结构化语句的语法。3.1 SAS系统对数据的管理在SAS系统中只有SAS数据集才能被SAS过程直接调用,SAS数据集的结构和DBF数据库完全相同,因此无须多讲。而SAS数据集存储在被称为SAS数据库的文件集中,在PC系统中,SAS数据库与某一个文件夹相对应,我们要为每一个数据库指定一个库标记(库名)来识别该库,使用Libname命令可以指定库标记。它的一般格式如下:Libname 库标记 文件夹位置 选项;例如要指定目录“C:USER”为库标记A,可以在视窗中提交如下语句:libname a c:user;数据库可分为永久库和临时库两种。临时库只有个,名为WORK,它在每次启动SAS系统后自动生成,关闭SAS时库中的数据集被自动删除;永久库可有多个,用户可以使用Libname语句指定永久库的库标记,永久库中的所有文件都将被保留。但库标记仍是临时的,每次启动SAS系统后都要重新指定。不过为了方便用户,SAS在每次启动时都会自动指定两个库标记: SASUSER:指明为永久库,即库中的数据集被保存起来,以便下次启动系统时使用。 WORK:指明为临时库,对于开发和检查新程序非常有用,但每次SAS运行结束后WORK库中的所有文件将被删除。在程序中引用该库中的数据集可以省略库标记,即它被认为是缺省的数据库。SAS数据库对应文件夹,如SASUSER对应c:sassasuser,WORK对应c:sassaswork, SAS数据集则对应文件,每个数据集实际上是在硬盘的相应文件夹内产生一个文件名为数据集名,而扩展名为.sd2的文件,因此如果你成功的建立了一个数据集,理论上你就可以反复使用它直到硬盘报废。每一个数据集都有一个两级名,第一级是库标记,第二级是数据集名,中间用“.”隔开,在程序中通过指定两级名来识别文件。文件两级名的一般形式如下:库标记.数据集名如在a库中的数据集abc可以这样来引用:a.abc 。3.2 SAS程序的数据步3.2.1 预备知识SAS程序的语句从上一个语句结束处开始,以一个分号结束,可占多行。3.2.2 数据步以DATA语句开始,用于创建和处理数据集。其中最常用的语句有: DATA语句 它的主要功能是:o 标志数据步的开始。 o 命名将要创建的SAS数据集。DATA语句的一般形式如下:DATA 数据集名; INFILE语句 用于从外部文件读入数据,必须出现在INPUT语句之前。它的主要功能是:o 确定一个包含原始数据的外部文本文件。INFILE语句的格式如下:INFILE 外部文件的所在位置及名称 选项; CARDS语句 用于直接输入数据,标志着数据块的开始。格式如下:CARDS;数据块; INPUT语句 用于向系统表明如何读入每一条记录。它的主要功能有:o 读入由语句指定的数据列。 o 为相应的数据域定义变量名。 o 确定变量的读入模式。INPUT语句的格式如下:INPUT 变量名 变量类型 起止列数.;方括号表示其中的内容为可选,如果不输入,系统会以默认值代替。3.2.3 数据的两种输入方式上面我们学到了INFILE语句和CARDS语句,它们分别对应了两种数据输入的方式:【直接输入方式】实际上我们在第一章已经用到了直接输入方式,仍以那个程序为例,其中的数据步如下:data temp;命名将要建立的数据集为work.tempinput x y;要输入的变量为x、y,并且连续输入cards;直接输入数据,数据块开始34 56 78 90 35 67 89 10 23 65 77 45数据块;数据块结束变量后面的表示数据可以在一行里连续读入,SAS默认按列来分隔变量,可是这里只有两个变量,输成两列数据太长,因此加上两个,SAS见到这个符号,在按变量名依次读取完数据后,不是跳到下一行,而是继续在该行读数据,直至本行结束或到达分号为止。如果你对这段叙述无法理解,请去掉两个,重新运行一遍程序,看看LOG视窗中的提示都有些什么变化。【外部文件读入方式】如果刚才的数据已经事先输好,在硬盘上的“C:USER”文件夹内存为temp.dat文件,该文件内容如下(纯文本):34 56 78 90 35 67 89 10 23 65 77 45则我们可以输入程序如下:data temp;命名将要建立的数据集为work.tempInfile c:usertemp.dat;指定外部数据文本文件名input x y;要输入的变量为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:USERtemp.DBF,或点BROWSE直接从上面选择文件,选好后单击NEXT按钮。3. 选择导入的目的地,即指定要创建的数据集的名字和存放的数据库名,先在左面的对话框选择数据库名WORK(临时库),在右面的对话框键入数据集的名字li1_1,此名可任意起,少于8个字符,选择完后,单击FINISH按钮,就完成了此次操作。这时已经建好了一个数据集,名为WORK.li1_1,与我们前面建立的数据集完全一致。3.3 SAS程序的程序步通俗的讲,SAS的程序步(有的书中也称过程或过程步)就是已经编好了的用于数据整理和统计的计算机程序,你只需要调用它们就是了。程序步总是用一个PROC语句开始,后面紧跟着程序步名,用以区分不同的程序步。以下是一些常用的程序步的名称及功能。程序步名功 能SORT将指定的数据集按指定变量排序PRINT将数据集中的数据列表输出MEANS对指定的数值变量进行简单的统计描述FREQ对指定的分类变量进行简单的统计描述TTEST对指定的变量做t检验ANOVA对指定的变量做方差分析NPAR1WAY对指定的变量做非参数检验REG对指定的变量做回归分析CORR对指定的变量做相关分析CHART绘出低分辨率的统计图PROC就是程序(procedure)的缩写,而程序步的名字大都是其功能相对应的单词或词组的缩写。可见SAS的许多功能就是通过程序步来体现的,可如此多的种类也使我们难以总结出一个程序步的通式来。不过仍可大致给出如下结构:PROC 过程名 DATA=数据集名 选项; 该过程的专用语句描述; VAR 变量序列; WHERE 条件表达式.; BY 变量序列;Run;方括号里的语句均可以省略,在这时该过程按最通常的情况来处理,即: o 处理最新建立的SAS数据集。 o 处理所有的变量(或对一个计算过程来说处理全部数值变量)。 o 一次处理整个数据集而不是某个子集。我们在第一章中用到的PRINT程序步就是采用的这种默认方式。 但有时我们的要求超出了默认方式所提供的范围,这时就要动用方括号里的秘密武器了。o DATA参数 指明所需处理的数据集名,请注意在这里它是一个参数而不是语句。 o VAR语句 如果只想分析某一个或几个特定的变量,则可用VAR语句指定它们。例如只想显示变量x的列表,则PRINT过程如下:Proc print ; Var x;Run;如果想显示x和y两个变量,则将VAR语句改为如下形式即可: var x y;当然,也可以将VAR语句删除,结果相同。o Where语句 如果你想处理的不是整个数据集而只是其中符合某种条件的子集,那么WHERE语句将会非常有用,如上例中我们只想显示大于50的x变量的值,则在PRINT过程中加入where语句如下:Where x50;如果条件变为x、y两个变量的值都要大于50,则where语句改为:where x50 and y50;SAS语言中常用的逻辑表达符号有and(和)、or(或)、xor(异或)、ne(不等)等。 o By语句 如果你需要分组处理数据,例如要按性别分组输出统计结果,你有两种选择,一是用不同的where语句将同一个程序步反复写几遍;另一种显然更酷的方法就是采用by语句。如上例我们想按不同的y值输出x值,则加入by语句如下:By y;使用BY语句要求数据集已经按BY语句中指定的变量排序。如果没有排序,则程序无法正确运行。可以用SORT过程来排序,语法结构如下:PROC SORT DATA=数据集名; BY 变量名列;RUN;3.4 结构化语句简介每一种结构化语言编写的程序都由顺序、分支、循环三种结构构成, SAS语言也不例外。在这里简要介绍一下分支和循环语句的语法。这些语句均可直接在数据步和程序步中使用,适当地使用它们可以大大简化我们的工作。3.4.1 分支(条件)语句【语法格式】语法格式如下:IF 条件 THEN 程序块;ELSE 程序块;可见其语法和FOXBASE语言十分相似,只是前面多了THEN,结尾没有ENDIF,可以将两者相比较来理解。其中程序块如果只有一句,则可直接写出,否则应以DO开头,以END结束。【应用实例】例3.1 在产生数据集temp的同时为其增加变量class,当x50时class=1,否则class=2。解:程序如下:data temp;数据步开始,定义要建立的数据集为WORK库的TEMP input x y;要输入的变量为X和Y,并且采用数据连续读入方式 if x50 then class=1;建立新变量CLASS,如果X50,则CLASS=1 else class=2;否则,CLASS=2cards;数据块开始34 56 78 90 35 67 89 10 23 65 77 45数据块;数据块结束proc print;列表输出数据集中的数据,检查有无错误run;程序结束,开始运行以上程序以上程序在书写时采用了缩进格式,使程序的结构更清楚。当然大家可以左对齐写完所有的语句,但这样书写的程序在较长时难以阅读。为什么可以这样写?在这里有必要解释一下数据步的执行过程,input语句按变量顺序将数据读入内存缓冲区,直至每一个变量都有值相对应。然后数据步继续向下执行,从而其它语句可以修改内存缓冲区,如修改值、增加变量等,在执行到数据步结束后,程序又回到input语句处继续执行,直到数据读完为止。现在再看看这个程序,大家可以理解它了吧!3.4.2 循环语句【语法格式】语法格式如下:DO 起始条件 TO 终止条件; 程序块;END;该语句主要用于建立数据集。【应用实例】例3.2 在产生数据集temp的同时为其增加变量class,取值依次为1、2。解:程序如下:Data temp;数据步开始,定义要建立的数据集为WORK库的TEMP do class = 1 to 2;循环开始,循环控制变量为CLASS,取值从1到2 input x y;要输入的变量为X和Y,并且采用数据连续读入方式 output;用OUTPUT语句将循环控制变量写入数据集中 end;循环结束cards;数据块开始34 56 78 90 35 67 89 10 23 65 77 45数据块;数据块结束run;程序结束,开始运行以上程序注意在数据步中,我们不需要用语句改变循环变量的大小,系统会自动改变。现在,SAS语言的基本知识算是介绍完了。在理论上,你现在可以坐在计算机前,独立编写程序以做出你的统计作业或者是向SAS公司发射核导弹。但为了使你能尽可能地少走弯路(我指的是做统计作业而不是后者),在以后的各章中我们将重点介绍一些常用的程序步,并且在必要的时候介绍一些较为深入的内容。第四章 统计图统计图是统计描述的重要工具,它可以直观的反映出事物间的数量关系。因此,许多统计软件均提供了强大的统计做图功能。SAS的许多程序步,如Univariate过程等,也附有相应的绘图功能,这些我们拟在相关章节中讲述。本章将向大家介绍两个专门用于绘图的程序步GCHART过程和GPLOT过程。前者用于绘制各种常用的统计图,而后者则用于绘制散点图。在早期的DOS版本中,SAS只提供低分辨率图形(即用键盘字符模拟输出的图形)。而在WINDOWS时代,美观漂亮也成为了软件最重要的性能指标之一,因此SAS公司推出了高分辨率图形。虽然比起EXCEL等软件来,它的高分辨率图形仍然不那么令人满意,但至少已经跟上了时代的潮流。高分辨率图形在专门的GRAPH视窗中输出,而低分辨率图形在OUTPUT视窗中一同输出。只要将绘图过程名中的字母G去掉,做出的就是低分辨率图形,你可以比较一下两种图形的“天壤之别”。4.1 GCHART过程Gchart过程可以绘制水平/竖直条图(直方图)、立体直方图、饼图和星状图。我们可以用这些图来了解单个变量的分布或者多个变量之间的关系。4.1.1 语法格式PROC GCHART 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:userwt1_1.dat中。解:程序如下:libname a c:user;指定c:user文件夹为数据库adata a.wt1_1;数据步开始,指定要建立的数据集为a库的wt1_1infile c:userwt1_1.dat;采用外部文件读入方式,文件名为c:userWT1_1.datinput x ;输入的变量为x,采用连续输入的格式proc gchart data=a.wt1_1;调用绘图程序步gchartvbar x / levels=10;绘出直方图,用于绘图的变量为x,分为10组run;开始运行以上程序事实上ASSIST视窗的输出图形是彩色的,和我们用程序做出的有些区别,这是因为ASSIST视窗自动提交了一些绘图环境语句,对输出图形作了修饰的缘故。实际上libname语句只需要运行一次就可以了,但在开始的几道例题里我们都写上了这一句,让大家逐步养成启动SAS后就运行这一句的习惯。请将C:USER文件夹指定为A库,以后我们实习的数据集均放在该库中。4.2 GPLOT过程GPLOT过程用于绘出散点图。图中的横、纵坐标分别代表两个变量。4.2.1 语法格式PROC GPLOT 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 TRIANGLE I=连线方式 JOIN 用直线连接。 SPLINE 用光滑的曲线连接。1. NEEDLE 向横坐标画垂线。 2. RL 添加回归直线。 WIDTH=宽度 定义数据点和连线的宽度。 COLOR=颜色 定义数据点和连线的颜色。4.2.3 应用实例例4.2 10名20岁男青年身高(cm)与前臂长(cm)如下,请绘出散点图(卫统p236 5.2题)。身 高170173160155173168178183180165前臂长45424441475047464943解:程序如下(注意程序中对输出图形作了些修饰)。Libname a c:user;指定c:user文件夹为数据库adata a.wt5_2;数据步开始,指定要建立的数据集为a库的wt5_2input x y ;输入的变量为x和y,采用连续输入的格式cards; 数据块开始170 45 173 42 160 44 155 41 173 41 数据块188 50 178 47 183 46 180 49 165 43 数据块; 数据块结束proc gplot data=a.wt5_2; 调用绘图程序步gplotplot y*x/ ctext=blue;绘出散点图,用于绘图的变量为x,y,坐标轴文本颜色为蓝色symbol value=star color=pink width=2;定义散点标记为粉红色星号,大小为2run;开始运行以上程序绘制高分辨率统计图非常耗费系统资源,因此SAS在执行作图语句时实际上是将这些语句存入程序缓冲区,当用户打开GRAPH视窗看结果时才正式执行,从而绘出所需的统计图。如果用户没有看所绘制的图形,则绘图语句就一直留在缓冲区内,此时用户再执行任何程序,程序语句就全部在缓冲区内排队,等待绘图语句执行完毕,因此就无法得到相应的输出结果,这是同学们在上机时常犯的一个错误。适当地使用统计图可以帮助我们更加深入的了解数据的分布规律。这里的例子只是绘图语句的简单用法,而绘图语句的复杂用法将结合例题在以后的各章中逐步介绍.第五章 定量资料的统计描述和t、u检验 从本章开始,我们将正式开始使用SAS解决我们的统计问题。从前面的几章可知,SAS的主要功能是由不同的程序步来体现的。因此在以后的各章中,我们将对每种问题重点介绍一些常用的程序步,以及它们的输出结果的解释。对于定量资料的统计描述和简单推断,SAS提供了三个强有力的程序步,它们是: UNIVARIATE过程 提供单个变量的详细描述和对其分布类型的检验。 MEANS过程 提供单个或多个变量的简单描述,对于多个变量,它的输出格式紧凑,便于阅读。 TTEST过程 对变量进行t/u检验。5.1 引 例例5.1 文本文件“C:USERWTLI1_1.DAT”中已存入某市110名7岁男子童的身高资料(cm) ,请计算均数、标准差s、变异系数CV(卫统第三版p6例2.1)。解:该题应首先用数据步建立一个数据集,然后调用UNIVARIATE过程或MEANS过程来求出所需要的统计量。具体的程序如下: 设定数据库环境:LIBNAME A C:USER; 数据步,建立数据集:DATA A.WTLI1_1;INFILE C:USERWTLI1_1.DAT;INPUT X ;RUN; UNIVARIATE或MEANS过程,求出所需要的统计量:PROC UNIVARIATE DATA=A.WTLI1_1;PROC MEANS DATA=A.WTLI1_1N MEAN STD CV ;VAR X;VAR X;RUN;RUN;例5.2 某医生测得18例慢支炎患者与16例健康人的尿17酮类固醇排出量 (mg/dl)分别为X1和X2,问两者均数是否不同(医统第二版P19例2.17)?解:这是成组设计的两样本均数比较的t检验,程序应首先建立数据集,然后调用TTEST过程进行检验,在检验的同时也可以得到两个样本的简单描述。 设定数据库环境:LIBNAME A C:USER; 数据步,建立数据集,这里采用直接输入数据的方法:DATA A.YTLI2_17;INPUT GROUP VALUE ;CARDS;1 3.14 1 5.83 1 7.35 1 4.62 1 4.05 1 5.08 1 4.98 1 4.22 1 4.35 1 2.351 2.89 1 2.16 1 5.55 1 5.94 1 4.4 1 5.35 1 3.8 1 4.122 4.12 2 7.89 2 3.24 2 6.36 2 3.48 2 6.74 2 4.67 2 7.38 2 4.95 2 4.082 5.34 2 4.27 2 6.54 2 4.62 2 5.92 2 5.18;RUN; TTEST过程,进行两样本的t检验。PROC TTEST DATA=A.YTLI2_17;VAR VALUE;CLASS GROUP;RUN;5.2 UNIVARIATE过程Univariate过程对数值变量给出比较详细的变量分布的描述,其中包括: 变量的极端值。 常用的百分位数,包括四分位数和中位数。 用几个散点图描绘变量的分布。 频数表。 确定数据为正态分布的检验。5.2.1 语法格式Univariate过程的语法格式如下:PROC UNIVARIATE DATA= 选项 ;指定要分析的数据集名及选项 VAR ;指定要分析的变量名列BY ;按变量名列分组统计,要求数据集已按该变量名列排序FREQ ;表明该变量为分析变量的频数WEIGHT ;表明分析变量在统计时要按该变量权重ID ;输出时加上该变量作为索引OUTPUT OUT= 指定统计量的输出数据集名关键字= .指定统计量对应的新变量名pctlpts=指定需要的百分位数pctlpre= ;指定所需百分位数对应的输出变量名如果省略所有非必需的语句和选项,则UNIVARIATE过程按默认情况输出全部变量的全部常用统计量。5.2.2 语法说明【选项】Univariate过程常用的选项如下: NOPRINT 禁止统计报告在OUTPUT视窗中输出 PLOT 绘出茎叶图、箱式图和正态概率图 FREQ 给出频数表 NORMAL 对变量进行正态性检验【关键字】SAS中用关键字来指定所需要的统计量,事实上结果输出中用的就是各种关键字,常用的关键字有: 基本统计量 N MEAN STD(标准误) CV SUM VAR(方差) RANG 百分位数描述 MIN P1 P5 P10 Q1 MEDIAN Q3 P90 P95 P99 MAX 与假设检验有关的统计量 STDMEAN(标准误) T5.2.3 结果解释在默认的情况时,Univariate过程会输出绝大部分统计量,此时的输出结果如下:Variable=变量名 变量标签 Moments 和矩有关的统计量 Quantiles(Def=5) 分位间距统计量N 样本量 Sum Wgts 权重总和 100% Max 最大值 99% 99%百分位数Mean 均数 Sum 总和 75% Q3 75%百分位数 95% 95%百分位数Std Dev 标准差 Variance 方差 50% Med 50%百分位数 90% 90%百分位数Skewness 偏度系数 Kurtosis 峰度系数 25% Q1 25%百分位数 10% 10%百分位数USS 未校正平方和 CSS 校正平方和 0% Min 最小值 5% 5%百分位数CV 变异系数 Std Mean 标准化均数 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 众数Sgn Rank 变量总体均数为0的秩和检验 Pr=|S| 秩和检验的p值 Extremes 极端值统计 Lowest Obs Highest Obs 老 幺 (观察值序号) 五大值(观察值序号) 次小值 (观察值序号) 四大值(观察值序号) 三小值 (观察值序号) 三大值(观察值序号) 四小值 (观察值序号) 次大值(观察值序号) 五小值 (观察值序号) 大哥大(观察值序号)5.2.4 应用实例例5.3 某地101例健康男子血清总胆固醇值测定结果已存入文本文件“c:userWT1_1.dat”中,请绘制直方图,计算均数、标准差s、变异系数CV、中位数M、p2.5和p97.5(卫统p233 1.1题)。解:UNIVARIATE过程的默认输出中并不给出p2.5和p97.5,因此程序中要加以相应修改,最后在OUTPUT视窗中只会输出所需的几个统计量,具体程序如下:libname a c:user;指定c:user文件夹为数据库adata a.wt1_1;数据步开始,指定要建立的数据集为a库的wt1_1infile c:userwt1_1.dat;采用外部文件读入方式,文件名为c:userWT1_1.datinput x ;输入的变量为x,采用连续输入的格式proc gchart data=a.wt1_1;调用绘图程序步gchart,所用数据集为a.wt1_1vbar x ;绘出竖直条图,用于绘图的变量为xproc univariate data=a.wt1_1 noprint;调用程序步univariate,并且禁止在OUTPUT视窗中输出var x;要分析的变量为xoutput out=temp指定输出数据集为work.temp,n=n mean=xbar std=s cv=cv median=m将n、mean、std、cv、median按指定变量名存入pctlpts=2.5,97.5 pctlpre=per;指定输出p2.5和p97.5,其输出变量名以per开头。proc print data=temp;将数据集work.temp的内容打印输出run;开始运行以上程序例5.4 50例链球
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兴业银行兰州市城关区2025秋招结构化面试经典题及参考答案
- 2025年“梦工场”招商银行大连分行2026届暑期实习生招聘笔试备考试题含答案详解(预热题)
- 浦发银行天津市西青区2025秋招笔试EPI能力测试题专练及答案
- 招商银行沈阳市大东区2025秋招笔试EPI能力测试题专练及答案
- 民生银行厦门市思明区2025秋招笔试专业知识题专练及答案
- 兴业银行滁州市南谯区2025秋招数据分析师笔试题及答案
- 华夏银行聊城市东昌府区2025秋招笔试创新题型专练及答案
- 平安银行成都市青羊区2025秋招笔试英文行测高频题含答案
- 平安银行上海市嘉定区2025秋招笔试专业知识题专练及答案
- 民生银行厦门市湖里区2025秋招笔试价值观测评题专练及答案
- 主播岗位职业生涯规划与管理
- 老年综合评估各种表格
- 2025至2030中国牙科手机消耗行业项目调研及市场前景预测评估报告
- NBT 11551-2024 煤矿巷道TBM法施工及验收标准
- 口腔瓷贴面诊疗沟通指南
- 山东安全管理人员大考试题库
- 2025-2030冲牙器行业市场深度调研及发展趋势与投资前景预测研究报告
- 70华诞主题班会课件
- 建筑抗震设计规程(下)DB62T3055-2020
- 商品赠品协议书范本
- 工伤事故赔偿协议书范本
评论
0/150
提交评论