1、1初识 SAS 启动用如下方法可以进入 SAS 系统的窗口运行环境:在 Win95 或 NT 环境中,从开始菜单的程序文件夹中找到 SAS 系统文件夹,从中启动 SAS 系统。或者生成SAS.EXE 的快捷方式(把 SAS.EXE 用鼠标右键拖到桌面),双击 SAS.EXE 启动。在 Windows 3.xx 环境中找到 SAS 系统程序组中的 SAS 图标双击启动。SAS AWS(SAS 应用工作空间)启动后,出现如图 1 的 SAS 运行界面,术语称为“SAS 工作空间(SAS Application WorkSpace )” 。它象其它Windows 应用程序一样,在一个主窗口内,包含若
2、干个子窗口,并有菜单条、工具栏、状态栏等。SAS 有三个最重要的子窗口:程序窗口(PROGRAM EDITOR)、运行记录窗口(LOG)、输出窗口(OUTPUT)。程序窗口的使用类似于 Windows 中的记事本程序,可以在其中编辑文本文件,主要是编辑 SAS 程序。程序可以直接在窗口中键入,插入新行用回车,插入点光标(闪动的竖线)可以用光标键(上下左右箭头、Home、End )移动或用鼠标单击到某一处。按住 Shift 再按光标键可以加亮显示一块文本,然后用复制、剪切、粘贴命令(Edit 菜单中的 Cut、Copy、Paste,或工具栏图标)可以复制或移动加亮显示的文本。这些编辑操作具体请参
3、考 Windows 的有关文档。运行记录窗口记录程序的运行情况,运行是成功还是出错,运行所用时间,如果出错,错在什么地方。运行记录窗口中以红色显示的是错误信息。输出窗口显示 SAS 程序的文本型输出(图形输出单独 有一个 GRAPHICS 窗口)。输出分页显示。2要把光标移动到某一窗口,可以用主菜单中的 Window 菜单选择要显示的窗口。用功能键 F5 可以切换到程序窗口,F6 可以到运行记录窗口,F7 可以到输出窗口。SAS 主窗口标题栏下是主菜单。SAS 菜单是动态的,其内容随上下文而不同,即光标在不同窗口其菜单也不同。其中,File(文件)菜单主要是有关 SAS 文件调入、保存及打印的
4、功能。 Edit (编辑)菜单用于窗口的编辑(如清空、复制、剪切、粘贴、查找、替换)。Locals(局部)菜单与当前正在进行的操作有关,如果你正在程序窗口中编辑程序,则 Locals 菜单有提交运行、调回修改等项,如果在运行记录窗口或输出窗口则Locals 菜单项根本不出现。Globals 菜单内容比较复杂,它可以打开被关闭的程序窗口、运行记录窗口、输出窗口、图形窗口,可以进入 SAS 提供的各个独立模块。主菜单下是一个命令条和工具栏菜单。命令条主要是用于与 SAS 较早版本的兼容性,可以在这里键入 SAS 的显示管理命令。工具栏图标提供了常见任务的快捷方式,比如保存、打印、帮助等等。鼠标光标
5、在某一工具栏图标上停留几秒可以显示一个说明。工具栏图标的解释如下:Submit 提交编辑窗口中的程序 New 清空编辑窗口Open 打开文件到编辑窗口。用户指定一个文件调入到编辑窗口内。这个文件从此与编辑窗口相关联,以后的存盘操作将自动存入这个文件。Save 存盘,保存编辑窗口内容,注意如果此窗口已经与一个文件相联系的话此功能将覆盖文件的原有内容而不提示。Print 打印当前窗口内容 Print preview 打印预览。Cut 剪切选定文本。 Copy 复制选定文本。Paste 粘贴。注意这些操作是对 Windows 剪贴板进行的,可以用来与其它 Windows 应用程序交换文本、数据等。剪
6、切或复制到剪贴板的内容可以被其它应用程序粘贴,其它应用程序放到剪贴板的内容也可以粘贴到 SAS 的编辑窗口中。Undo 撤销刚才的编辑操作。 DOS prompt 临时进入 DOS。Browse 打开 WWW 浏览器并进入 SAS 公司的主页 http:/ 进入 Directory(目录)窗口,可以浏览各 SAS 数据库的内容,可以浏览数据库中的数据集、SAS 目录的内容。SAS/ASSIST 启动 SAS 的菜单驱动界面 SAS/ASSIST 。Help 启动 Windows 的帮助系统进入 SAS 的帮助。简单运行样例 假设我们有一个班学生的数学成绩和语文成绩,数学满分为 100,语文满分
7、为 120,希望计算学生的平均分数(按百分制)并按此排名,可以在程序窗口输入此程序:title 95 级 1 班学生成绩排名 ;3data c9501;input name $ 1-10 sex $ math chinese;avg = math*0.5 + chinese/120*100*0.5;cards;李明 男 92 98张红艺 女 89 106王思明 男 86 90张聪 男 98 109刘颍 女 80 110;run;proc print;run;proc sort data=c9501;by descending avg;run;proc print;run;实际上,输入这样包含中
8、文的程序最好办法不是在 SAS 程序窗口直接输入,因为 SAS 目前对中文输入的处理还不够完善,好的办法是打开一个其它的编辑程序如 Windows 中的记事本(在 Win95 中用开始菜单中的“程序 | 附件 | 记事本” 启动),在记事本中复制输入的程序,然后到 SAS 系统程序窗口中使用粘贴命令(用Edit 菜单的 Paste 或工具栏上的粘贴图标),把程序复制到 SAS 中。也可以在记事本中把编好的程序存盘,然后在 SAS 程序窗口用 File 菜单的 Open 命令打开保存好的程序文件。要运行此程序,只要用鼠标单击工具栏的提交图标 ,或用 Locals 菜单的 Submit 命令。运行
9、后,运行记录窗口出现如下内容:50 title 95 级 1 班学生成绩排名;51 data c9501;52 input name $ 1-10 sex $ math chinese;53 avg = math*0.5 + chinese/120*100*0.5;54 cards;NOTE: The data set WORK.C9501 has 5 observations and 5 variables.NOTE: The DATA statement used 0.11 seconds.60 ;61 run;62 proc print;run;NOTE: The PROCEDURE P
10、RINT used 0.0 seconds.63 proc sort data=c9501;64 by descending avg;65 run;NOTE: The data set WORK.C9501 has 5 observations and 5 variables.NOTE: The PROCEDURE SORT used 0.05 seconds.66 proc print;run;NOTE: The PROCEDURE PRINT used 0.0 seconds.其中记录了每段程序的运行情况、所用时间、生成数据保存情况。如果有错误还会用红色指示错误。比如,最后的 proc p
11、rint 后面的分号如果丢失,记录窗口显示如下错误:67 proc printrun;-181ERROR 181-322: Procedure name misspelled.4错误说明为过程名错拼,但实际上是丢了分号导致 print 和 run 连成了一个词。在程序窗口用“Locals | Recall text”菜单或按 F4 功能键可以调回程序修改。正确运行后输出窗口出现如下结果:95 级 1 班学生成绩排名 3OBS NAME SEX MATH CHINESE AVG1 李明 男 92 98 86.83332 张红艺 女 89 106 88.66673 王思明 男 86 90 80.5
12、0004 张聪 男 98 109 94.41675 刘颍 女 80 110 85.833395 级 1 班学生成绩排名 4OBS NAME SEX MATH CHINESE AVG1 张聪 男 98 109 94.41672 张红艺 女 89 106 88.66673 李明 男 92 98 86.83334 刘颍 女 80 110 85.83335 王思明 男 86 90 80.5000这里有两页输出,第一页是输入数据后用 PROC PRINT 显示的数据集,第二页为按平均分排名后的结果。从上面的例子程序可以看出 SAS 程序的一些特点。SAS 程序由 语句组成,语句用分号结束。SAS 程序中
13、大小写一般不区分(字符串中要区分大小写)。SAS 程序中的空格、空行一般可以任意放置,这样我们可以安排适当的缩进格式使得源程序结构清楚易读。SAS 程序由两种“步” 构成,一种叫 数据步(data step),一种叫 过程步(proc step),分别以 DATA 语句和 PROC 语句开始。数据步和过程步由若干个语句组成,一般以RUN 语句结束。SAS 基本概念 本节介绍一些 SAS 特有的概念,其中最重要的是数据集。SAS 数据集 SAS 数据集(SAS Datasets)可以看作由若干行和若干列组成的表格,类似于一个矩阵,但各列可以取不同的类型值,比如整数值、浮点值、时间值、字符串、货币
14、值等等。SAS 数据集存放在以特殊格式存放的二进制文件中,我们用一个 SAS 中的逻辑名来使用 SAS 数据集而不需关心它到底如何存储在磁盘上。比如,1.1.3的例子生成了一个名为 C9501 的数据集,它的逻辑形式如下表:NAME SEX MATH CHINESE AVG李明 男 92 98 86.8333张红艺 女 89 106 88.6667王思明 男 86 90 80.5000张聪 男 98 109 94.4167刘颍 女 80 110 85.8333数据集的每一行叫做一个观测(Observation),每列叫做一个变量(Variable )。SAS 数据集等价于关系数据库系统中的一个
15、表,实际上一个 SAS 数据集有时也称作一张表。在数据库术语中一个观测称作一个记录,一个变量称作一个域。在 C9501 数据集中有 5 个观测,分别代表 5 个学生的情况,而每个学生有 5 个数据,分别为姓名、性别、数学成绩、语文成绩、平均分,所 以此数据集有 5 个变量。5从上面看出,数据集要有名字,变量要有名字,所以 SAS 中对 名字(数据集名、变量名、数据库名,等等)有约定:SAS 名字由英文字母、数字、下划线组成,第一个字符必须是字母或下划线,名字最多用 8 个字符,大写字母和小写字母不区分。比如,name,abc,aBC,x1,year12,_NULL_等是合法的名字,且 abc
16、和aBC 是同一个名字,而 class-1(不能有减号)、a bit(不能有空格)、serial#(不能有特殊字符)、Documents (超长)等不是合法的名字。SAS 数据库 SAS 数据集是各种特殊格式的 SAS 文件中最重要的一种。另一种重要的 SAS 文件是 SAS 目录(Catalog),用来保存各种不能表示成行列结构表格形式的数据,比如系统设置、图象、声音等。多个 SAS 文件可以放在一起,称为一个 SAS 数据库(Library)。数据库有一个库名( Libname),其命名遵循上述 SAS 名字命名原则。在 MS DOS/Windows 环境中,一个 SAS 数据库实际是磁盘
17、上的一个子目录(特殊情况下一个数据库可以由几个子目录组成)。为了把库名和子目录联系起来,使用 LIBNAME 语句。比如,我们在 C:Y1995 子目录中保存了几个 SAS 数据集,可以用如下语句把库名 MYLIB 与子目录 C:Y1995 联系起来:libname mylib “c:y1995“;有三个预定义的 SAS 数据库:WORK、SASUSER 、SASHELP。其中,WORK 数据库叫做 临时库,存放在其中的 SAS 文件叫 临时文件,这些临时文件当退出 SAS 系统时会被自动删除。SASUSER 库保存与用户个人设置有关的文件,它是永久的,即退出 SAS 时文件不会被删除。SAS
18、HELP 库保存与 SAS 帮助系统、例子有关的文件,是永久的。从上面看出,SAS 文件分为 临时文件和 永久文件:临时文件在退出 SAS 系统时自动被删除,永久文件在退出 SAS 系统时不自动被删除。所以,我们把作为中间结果使用的数据集或练习用的数据集作为临时数据集保存,而需要以后再用的数据集则可以保存为永久数据集。临时数据集和永久数据集的区别是:临时数据集可以用 单水平名,即只有数据集名,比如 C9501,而永久数据集名由两部分组成,前一部分是它的库名,后一部分才是数据集名,两部分中间用小数点连接,比如放在 MYLIB 库(即“C:Y1995“ 子目录)中的数据集TEACH 必须用 MYL
19、IB.TEACH 表示。这样指定的数据集名在生成时可以放到由库名指定的子目录中,在读取时可以到指定的子目录读取,并且不会被自动删除。临时数据集除用单水平名外 ,也可以用库名为 WORK 的两水平名,如 WORK.C9501 和 C9501 是一样的。要生成永久数据集,只要在指定要生成的数据集名时使用两水平名且库名已有定义,比如,要把上面的C9501 数据集在生成时就放到“C:Y1995“子目录中,可以用如下语句:libname mylib “c:y1995“;data mylib.c9501;proc sort data=mylib.c9501;这个程序和 1.1.3 的例子相比只是增加了一个
20、定义库名的 LIBNAME 语句,然后在所有用到数据集名 C9501的地方换成了两水平名 MYLIB.C9501。要注意生成的数据集是 MYLIB.C9501 后面在用到它的时候(在PROC SORT 中)也必须使用两水平名 MYLIB.C9501 而不能使用单水平名 C9501 ,这两个名字指向的不是同一个 SAS 文件。为了显示现有定义的数据库,只要单击工具栏的 图标,如图 2。 6Libraries 窗口显示了现有定义的所有数据库及其对应的子目录,并在窗口下方显示了选定的数据库中的 SAS文件列表。文件列表第一列是 SAS 文件名称,第二列是其类型,DATA 代表数据集。双击某一数据集名
21、可以打开此数据集到一个数据显示窗口查看。不需编程的 SAS 应用SAS/INSIGHT 介绍 SAS 的使用方法一般是象 1.1.3 那样输入一个程序,运行,修改,最后在输出窗口得到结果。随着图形界面、用户友好等程序思想的发展,SAS 也逐渐提供了一些不需要学习 SAS 编程就能进行数据管理、分析、报表、绘图的功能,其中做得比较出色的一个是 SAS/INSIGHT 模块。 SAS/INSIGHT 是在基本的 SAS 系统基础上添加的一个模块,提供了数据交互输入、数据探索、分布研究、相关分析、各种图形等功能。这里我们初步介绍 SAS/INSIGHT 的使用。要启动 SAS/INSIGHT,选 G
22、lobals | Analyze | Interactive data analysis 菜单,首先出现图 3 那样的选择数据集的窗口: 7这是 SAS/INSIGHT 必须先选择一个要分析、观察的数据集。如果要生成新数据集,按 New 按钮,如果要打开已有数据集,按 Open 按钮。图 4 是 SAS/INSIGHT 运行时的样子。数据窗口 SAS/INSIGHT 提供了一个类似于电子表格的数据窗口来管理数据集。图 5 为显示了数据集 SASUSER.CLASS的数据窗口: 此数据集是一个班 19 个学生的一些情况,包括姓名、性别、年龄、身高、体重。我们看到,数据窗口标题行显示了打开的数据集
23、的名字,标题行下左上角有一个 向右的小三角,这是数据窗口的菜单,见图 6: 8三角下方的 19 是观测行数,右方的 5 是变量个数。窗口内每行最左边的方块是观测的绘图标记,用于在图形中标记观测;然后是观测序号;再往右是各变量的值。数据窗口中的各变量用作列标题,如图 5 中的NAME、SEX、AGE 、HEIGHT、WEIGHT 就是数据集 SASUSER.CLASS 中的五个变量的名字。在每一个变量名的上面有两个标签,右边一个代表变量的量测水平,分为区间变量(Int)和名义变量(Nom)。区间变量是取连续值的变量,只能为数值;名义变量是取离散值的变量,一般为字符型,也可以取数值。变量名上面左边
24、的标签代表变量在分析中的缺省用途,比如 NAME 上面的 Label 表示此变量的值(学生姓名)在绘图中用来标记观测,SEX 上面的 Group 表示此变量(性别)用来分组,等等。数据窗口可以用来建立新数据集。在 SAS/INSIGHT 内用“File | New”菜单或在启动 INSIGHT 的窗口(图 3)按“New” 按钮,将出现一个空的数据窗口。这时,可以直接向第一行输入数据,比如要输入 1.1.3 中的 C9501数据集,就可以在第一行的前四列中分别输入李明、男、92 、98,这时各列自动取变量名为 A、B、C、D,而且量测水平自动定为前两个字符型是名义变量(Nom),后两个数值型是
25、区间变量(Int)。为了修改变量名和变量的用途,从数据窗口的菜单(图 6)选 Define Variables,出现图 7 的定义变量窗口: 在这里可以修改变量名,给变量加标签(Label),可以选择变量的量测水平,可以规定变量的用途。变量的标签是对变量的一个可以长达 40 个字符的描述,可以用于以后的输出,可以用汉字。定好变量名等属性后就可以继续输入其它数据行,每输入一行后回车,直至把全部数据输完。为了使回车时光标从前一行尾部进到下一行第一格,可以从数据窗口菜单(图 6)中选 “Data Options”,在弹出的对话框中(图 9): 9选择回车的方向(Direction of Enter)
26、为左下(Down and Left)。为了保存输入的数据集,选“File | Save | Data”菜单,出现图 8 那样的输入数据集的窗口: 可以选择数据集放在哪一个数据库,可以输入一个数据集名,把这里的 A 改成 c9501,按 OK 钮就可以保存数据集。对于比较小的数据集(几个、十几个变量,几十个观测),用 SAS/INSIGHT 的数据窗口可以迅速而直观地输入。对于更大量的数据,一般从其它格式转换而得。在数据窗口中如果需要修改某一个值,只要直接用鼠标点到其单元格修改,然后把输入光标离开其所在行就实现了修改。在单元格之间移动可以用鼠标单击、制表键、回车、上下光标键等方法。要保存所作的修
27、改还需要用“File | Save | Data”菜单。当数据窗口中变量较多时,可以用滚动条滚动窗口内容来查看。如果某个变量比较重要,可以考虑把它放到第一列的位置,这只要先单击该变量的名字选中它,然后在图 6 的菜单中选 Move to First。要把某列移到最后,选中它后用 Move to Last 菜单。选中一列只要单击其变量名。如果要选中多个列,在选中一个后按住 Ctrl 键单击其它的名字可以添加选中其它变量。选中一个变量后按住 Shift 单击另一个变量名可以选中这两个变量及它们之间的所有变量。选中的多个列也可以用 Move to First 和 Move to Last 移动。要选
28、中一个观测(行),只要单击其观测号(行号)。选多个观测可以用 Ctrl 单击或 Shift 单击的方法。选中的观测也可以用 Move to First 和 Move to Last 移动到最前或最后。还可以选中某些列同时选中某些行。只要在后续的选中操作时用添加选中(Shift 单击或 Ctrl 单击)即可。用鼠标在数据窗口数值显示部分拖出一个方框也可以选定一部分数值。选定了列或者行以后,用“Edit | Delete”菜单可以删除 选定的列或行。 10要取消所有选中,只要单击某一单元格而不是行、列标题即可。 下面简单介绍一下数据窗口菜单(图 6)中各命令: Find Next 在选定了若干个观
29、测 的情况下,把下一个被选定的观测显 示在窗口第一行的位置。 Move to First 把选定的行或列移到最前。 Move to Last 把选定的行或列移到最后。 Sort 在选定了一列的情况下,把数据集按此列从小到大排序;在选定了多列的情况下,按选定的变量次序按这些变量综合排序,比如在 SASUSER.CLASS 窗口中先选定 SEX 然后用 Ctrl 单击附加选定 HEIGHT,然后排序,这样的结果是把数据集先按女、男生排序然后在女生内部和男生内部分别按身高从小到大排序。如果没有选定任何列,则弹出一个菜单,询问按哪些变量排序,比如说对 SASUSER.CLASS 数据,可以先点 SEX
30、,然后单击 Y 按钮,把性别加入了排序变量中,再选 HEIGHT,单击 Y 按钮,把身高作为第二排序变量,再单击排序变量中的HEIGHT, 单击 Asc/Des 按钮(这是要求 对身高值要由高到低排序),按 OK 后数据将按性别分组,然后女生、男生内部分别按身高由高到低排列。 New Observations 用于快速添加若干个空数据行,弹出一个对话框要求输入添加的观测数,缺省是 100 个。添加的空行中字符型数据先填空值,数值型数据先填缺失值(用单独的小数点代表)。 New Variables 用于快速添加若干个新变量。 Define Variables 设定变量的名字、标签、量测水平、缺省
31、分析用途等,见图 7。可以在生成新数据集时定义变量,也可以对已有数据集的变量属性进行修改。 Fill Values 用于自动生成一个等差数列变量。先选定一个数值型变量,然后用此命令,将弹出一个对话框要求输入起始值(Value )和增量(Increment),比如起始值填 100 ,增量填 50,则此变量的在各观测中的值分别填入为 100, 150,200 ,。 Extract 这是一个很强的功能,它可以把选定的部分行、部分列或者部分行列取出到另一个窗口。比如,在SASUSER.CLASS 中先选定所有女生的观测,再用添加选择(Shift 或 Ctrl 单击)的办法选定 NAME 和 HEIGH
32、T 变量,然后用此命令,可以打开一个 SASUSER.CLASS1 数据窗口,此数据窗口中只有姓名和身高两列和女生的 观测行。可以用主菜单中的“File | Save | Data ”把此新数据集保存为 WORK.CLASS1(尽量不用永久数据集存放练习用的数据集)。这样可以由已有数据集挑选部分列、部分行组成新数据集。 Data Options 本数据窗口的一些设置。弹出对话框如图 9,可以选择在数据窗口内按回车时光标是移到下面、左面还是下面最左,按 TAB 是光标是移到下面、右面还是右上。选中“Show Variable Labels”可以用变量的标签作为窗口的列标题,这样有利于理解变量的意
33、义,但无法知道变量的真实名字。前面说过,变量标签允许长达 40 个字符,允许用汉字。标签可以在数据窗口菜单的 Define Variables 窗口(图 7)输入或修改。如果要用较长的汉字标签,需要适当地用空格分开标签中的汉字以利于分行显示标签。 数据探索一维方法 SAS/INSIGHT 提供了十分方便的数据探索功能。对一维数据,可以作直方图、盒形图、马赛克图,对二维数据,可以作散点图、曲线图、散点图矩阵,对三维数据可以作旋转图(三维散点图)。在图上可以选定一些观测,这些选择结果会同时反映在数据窗口和其它图中。以 SASUSER.CLASS 数据集为例。选定变量 HEIGHT,用“Analyz
34、e | Histogram/Bar Charts(Y) ” 菜单可以打开一个图形窗口生成身高的分布 直方图,如图 10。 11直方图的每一个条形代表了绘图变量(HEIGHT)在一个区间的取值情况,比如 70 到 75 之间的条形代表身高在 70 到 75 英寸的人,条形高度为组频数,即取值在这一区间的观测个数,可以看出这一组有一个学生。单击这一条形选中在此范围的观测,可以发现这时数据窗口的相应观测也被选定了,被选中的是 Philip,身高 72 英寸。如果双击某一条形,比如 60 到 65 的条形,就可以在选定相应观测的同时弹出一个检查观测窗口,窗口中显示各被选中的观测序号,以及其中一个观测的
35、各变量值。这样可以很方便地检查图中各部分所对应的观测。为取消选定,只要在图中空白处单击即可。作出的图形有一个方框包围。如果想改变图形大小,可以单击方框使其变粗,然后拖动四个角中的一个,就可以把图形放大或缩小。甚至还可以把一个角向其对角方向拖动一直拖过对角,这样可以改变图形的横纵轴方向。拖动边框可以把图形移动到窗口内其它位置。图形中提供了一个设置菜单,可以单击图形边框角上的向右箭头或在图形内右键单击来打开。菜单内容包括Ticks,可以设置坐标轴的具体画法;Axes 用来指定画不画坐标轴; Observations 用来指定是否画观测;Values 指定是否标出各条形高度值。对连续数据(Int 型
36、)作直方图可以反映其分布情况,对离散数据(Nom 型)作直方图同样可以反映其分布,即取每一个离散值的比例大小(频数分布)。比如,在作了身高的直方图后,选定变量 SEX,对其作直方图,则结果打开一个新图形窗口作出只有两个条形的条形图,一个标记为 F,另一个标记为 M,高度分别为 9 和10,即有 9 个女生,10 个男生,男女比例为 10 :9。单击标 F 的条形,可以看到数据窗口中所有女生的观测被选定,另外还可以看到已作的身高的直方图也发生了变换,身高的每一个条形都分成了颜色不同的两部分,其中下面的一部分代表女生。12在用 Analyse 菜单中的作图命令作图时如果没有选定的变量则弹出一个对话
37、框提问用哪一个变量作图,如果对身高作图,只要选 HEIGHT 然后按 Y 钮即可。盒形图是另一种表现数值型变量分布的图形。比如,要画身高分布的盒形图,选定变量 HEIGHT 然后用“Analyse | Box Plot/Mosaic Plot”可以作出图 12。 从图形菜单中选 Values 可以标出图中重要数据值。可以看出,此盒形图的横轴没有用处,纵轴代表身高的取值范围。盒形的中间有一条粗线,这是身高分布的中位数的位置,盒子上边线是分布的四分之三分位数,下边线是分布的四分之一分位数,盒子上下边线包含了分布的中间 50%的观测。盒子的长度叫做分布的四分位间距,其作用类似于标准差,可以反映数据分
38、布的分散程度。从盒子边线向外画了两条线叫做触须线,最长可以延伸到四分位间距的 1.5 倍,但是如果已经到了数据的最小值或最大值处就不再延伸。如果触须线没有达到数据的极端值,则这些数据点用触须线以外的点来画出,一般认为这样的点是异常点。从盒形图可以看出数据的偏斜情况,比如我们看到盒子的下半部比上半部长,而且下触须线比上触须线长,说明身高分布略左偏。用盒形图菜单中的“Means”选项可以在盒形图上加画一个菱形,菱形的中间代表分布的平均值,菱形端点到中间距离为两倍标准差。如果是变量服从正态分布,菱形上下端点之间应该包含大约 95%的观测。平均值和中位数的比较也能反映变量的偏斜情况,平均值低于中位数可
39、能左偏。单击或双击盒形图的某一部分(盒子上半部或下半部、触须线、极端值)可以选定观测。盒形图可以方便地比较按某分组变量分组后的分布情况。比如,如果我们想看一看男女的身高分布有何异同,不选任何变量启动“Analyze | Box Plot/Mosaic Plot”菜单,弹出选择变量的对话框如图 13。 13选身高为 Y 变量,选性别为 X 变量,画出的图见图 14。 图中有两个盒形图,女生一个,男生一个。从图中看出,男生身高普遍高于女生,且女生身高分布左偏较男生严重。这种并排盒形图可以十分直观地比较两个相关的分布。作盒形图时指定多个 Y 变量也可以作出并排的盒形图,比如,同时指定身高和体重作为
40、Y 变量作盒形图就可以生成身高和体重的并排的盒形图。Analyze 菜单的“Box Plot/Mosaic Plot”命令对连续型变量作盒形图,对离散型变量将作 马赛克图。比如,对性别变量作图得图 16。 选“Values”菜单后标出了男女的人数、百分比。马赛克图一般不对单个变量作,而是对两个离散变量来作。比如,先把 SASUSER.CLASS 中变量 AGE 的量测水平由 Int 改为 Nom,然后取消所有变量的选定,启动“Box Plot/Mosai Plot ”,选 SEX 为 Y 变量,选 AGE 为 X 变量,作图如图 15。 14这种图的好处是直观显示了两个变量每种取值组合的观测个
41、数和比例。单击或双击其中一个方块可以迅速选中一个分组,比如双击年龄为 11 性别为女(F)的方块可以看到这一组的学生。数据探索二维 SAS/INSIGHT 可以作曲线图、散点图、散点图矩阵,可以在散点图中刷亮观测。曲线图有一个取值由小到大的 X 变量,有一个或几个 Y 变量,以 X 变量为横坐标对 Y 变量画曲线。为了演示曲线图,打开 SASUSER.AIR 数据集(用“File | Open”菜单)。这个数据集是德国某城市一周的每小时记录的空气污染情况。变量 DATETIME 是记录的日期时间,为特殊 SAS 格式数据,变量 DAY 为星期几,HOUR为几点钟,CO、O3、SO2、NO、DU
42、ST 分别为一氧化碳、臭氧、二氧化硫、一氧化氮、粉尘的浓度,WIND为风速。要画一氧化碳的曲线图,可以在未选任何变量的情况下用“Analyse | Line Plot”,弹出变量对话框(图 17)。 选 DATETIME 为 X 变量,CO 为 Y 变量,可以画出 CO 的时间序列曲线图。 单击曲线上某一个点可以显示其观测序号,双击可以检查观测。如果想单击曲线上点时不显示观测序号而显示记录时间是几点,可以在曲线图窗口中选主菜单的“Edit | Window | Renew”,可以再弹出变量窗口,选HOUR 并按 Label 钮把时间指定为标签变量。这时在作的 CO 的曲线图上单击一个点显示的就
43、是记录时间了。可以看出 CO 的高峰一般在早晨 8 点和晚上 17 点21 点。用图形菜单(右键或单击向右三角)中的Observations 可以画出各个数据点的符号。可以在图上同时画出多条曲线。比如,想考察风速对污染的影响,在图形窗口中再用主菜单的“Edit | Window | Renew”,把 WIND 也作为 Y 变量,画出的图就有两条不同颜色的曲线,单击外面的 CO 变量符号和 WIND变量符号可以加重显示对应的曲线以区分这两条曲线。见图 18 。图中被选的点是风速的最高值,时间是 1115点。注意在一条曲线中被选在另一条曲线中也被选。从此图可以看出风速对污染有较明显的影响,风大时污
44、染较轻。散点图也有一个 X 变量和一个 Y 变量,但不要求 X 变量有从小到大的次序,画图不用连线而是用散点画出每一对 X、Y 坐标。比如对 SASUSER.CLASS,我们希望通过画图了解身高和体重的关系。在数据窗口中先选定体重(Y 轴变量)再附加选定身高(X 轴变量),启动菜单 “Analyze | Scatter Plot”,就可以生成以体重为纵轴以身高为横轴的散点图(见图 19)。 从图可以看出体重与身高有明显的线性相关关系。为了解哪一个点代表哪一个学生,单击一个点可以显示其观测序号,双击可以检查观测。为了在单击时可以显示学生名字而不是观测序号,需要把 NAME 指定为标签变量。这可以
45、在生成散点图时先不在数据窗口选X、Y 变量而是直接启动“Analyze | Scatter Plot”菜单,弹出变量对话框,在其中选 X、Y 变量并把 NAME 指定为 Label 变量。这时,单击散点图中最左下角的那个点可以显示名字 Sandy,单击最右上角的那个点可以显示 Philip。选多个点可以用附加选中的办法(Shift 或 Ctrl 单击)。为了在散点图中选定多个点,SAS/INSIGHT 还提供了一种称为 “ 刷亮(Brushing)”的操作。在图中拖动鼠标光标可以拖出一个小长方形,在这个长方形中的点都被选中,称它为刷子。选中的点在数据窗口也被选中,可以在数据窗口翻页查看,或用数
46、据窗口的 Find Next 菜单命令查看,或在数据窗口用 Move to First 菜单命令把选中的点移到最前查看。双击长方形(刷子)可以弹出检查观测窗口,在那里可以逐个查看选中的观测内容。拖动刷子的角可以改变其大小。拖动刷子内部可以移动它的刷亮位置,使进入刷子的点被选中,而离开了刷子的点被取消选中。可以同时用附加选中(Ctrl 单击)的办法加选不在刷子内的点,这些点还可以显示标签。在拖动刷子时如果同时按住 Shift 或 Ctrl 键则为附加选定,即进入刷子的点被选中而离开刷子的点仍保持被选中。可以按住 Shift 或 Ctrl 键拖出第二个刷子,这时第一个刷子不再显示但它刷亮的点仍保持
47、刷亮,移动第二个刷子时如果按住 Shift 或 Ctrl 键仍可保持已有选定。为了取消所有选定,只要点击图内空白处。散点图矩阵画出多个变量两两间的散点图以考察多变量关系。以 SASUSER.CLASS 为例,比如说我们想了解年龄、身高、体重间的关系。先把年龄的量测水平设为连续型(Int),在数据窗口选定年龄、身高、体重,可以作出图 20。 16我们看到三个变量两两组合有三种组合,每种组合有两个图形(横纵轴对换)。散点图矩阵对角线为变量标记和变量取值范围,该变量是其所在行的纵轴变量,是其所在列的横轴变量。比如第二行第一列的图纵轴变量是 HEIGHT ,横轴变量是 AGE,为身高对年龄的散点图。其
48、对称位置(第一行第二列)是年龄对身高的散点图,两者只是把横纵坐标旋转对调。散点图矩阵除了可以同时看到多个散点图的优点外主要是在一个散点图中被选中的点在其它散点图和数据窗口中也同时被选中。这样,我们可以在一个图中选一个极端点,看它在其它图中是否也处于极端位置。在一个散点图中刷亮的点在其它散点图中也同时被刷亮,这样,我们可以观察,年龄和身高都比较小时,体重是否也比较低。可以移动刷子,同时其它散点图中被选中的点也在变化。从图 20 可以看出,年龄由小到大变化时身高、体重一般也变大,但同一年龄的学生的身高、体重差距较大。SAS/INSIGHT 提供了自动移动刷子的功能。在拖动刷子时松开鼠标按钮,类似于
49、“抛出” 刷子,刷子就可以按抛出的方向继续移动并反弹。不过现在还较难控制自动移动的速度,有时移动过快。数据探索三维 SAS/INSIGHT 对三维数据可以作称为旋转图的三维散点图。比如,要对 SASUSER.CLASS 中的学生年龄、身高、体重作三维散点图,在数据窗口依次选定 AGE、HEIGHT、WEIGHT,然后启动菜单“Analyze | Rotating Plot”,可以生成一个三维散点图。图 21 是经过旋转后的图形。17这种三维散点图之所以称为旋转图,是因为坐标系可以在三维空间绕原点任意旋转。图形的左侧有一个小工具栏,其中有向上、下、左、右、逆时针、顺时针旋转的图标,再往下有一个滚动条,用它来规定自动旋转的速度。左下