ch03SAS功能基础_第1页
ch03SAS功能基础_第2页
ch03SAS功能基础_第3页
ch03SAS功能基础_第4页
ch03SAS功能基础_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、第 3 章sas 功能基础教学要求:了解 sas 过程步基本用法及常用语句掌握 sas 的列表报告功能(print 过程)掌握 sas 的汇总表格功能(tabulate 过程)掌握 sas 的数据排序功能(sort 过程)掌握 sas 的数据转置功能(transpose过程)掌握 sas 的描述性统计功能(meansunivariatefreq 过程)掌握 sas 的相关系数计算功能(corr 过程)掌握 sas/graph 的 常见绘图功能(gplotgchartg3d 过程)引言: sas 中数据步用来生成和管理数据,过程步完成分析、报表、绘图。本章我们首先介绍sas 过程步的一般用法,然

2、后介绍简单报表、分析、绘图功能的使用。3.1 sas 过程初步3.1.1 sas 过程用法过程步一般形式为:proc 过程名data=输入数据集选项;过程语句选项;过程语句选项;,run;多么说明:“data=输入数据集”如果省略,表示最近生成的数据集;“选项”是可选的,用来规定过程运行中的一些设置,如果有多个选项,可用空格分开;过程步语句可以有若干个,一般以某个关键字开头,比如var、by、tables 等;通常过程步语句与数据步中的语句不同,数据步的语句不能用在过程步中;注:有些过程步是对数据集进行变换(比如 sort 过程),不生成显示结果,多数过程步是对数据集作分析、报表,结果会出现在

3、output 窗口保存为文本文件(高精度绘图输出到graphics 窗口),也可以生成html格式。3.1.2 sas 过程步常用语句1.var 语句:指定要分析的变量,格式为:var 变量名 1 变量名 2 变量 3, ;2.model 语句:指定统计模型的形式,格式为:model 因变量 =自变量 /选项;3.by 语句:一般用来指定几个分组变量,根据分组变量的取值对观测分组,然后对每一级观测分别进行指定的分析。注意在使用带有by 语句的过程前一般先用sort 过程排序。格式为by 变量名1 变量2 , ;4.class 语句:在某些过程中用来指定一个几个分类变量,而在另一些过程中与by

4、语句类似,可以指定分类变量,将观测按分类变量分类后进行相应分析,它不需要事先按分类变量排序。5.output 语句:指定输出结果存放的数据集,格式为:output out= 输出数据集名关键字 =变量名关键字 =变量名 , ;6.freq 语句: 指定一个重复数变量,每个观测中此变量的值说明这个观测实际代表多少个完全相同的重复观测,它只能取整数值,格式为:freq 重复数变量;7.weight 语句:指定一个权重变量,在某些允许加权的过程中代表权重8.id 语句:指定一个变量用来区分各个观测(称为观测标识),如学号、省市名等。格式为:id 变量名;9.where 语句: 可以选择输出数据集的一

5、个行子集来进行分析,where 后指定挑选行的条件,格式为where 条件表达式;10 label 语句:为变量指定一个临时标签,格式为:label 变量名 1= 标签 变量名 2= 标签 , ;11.format 语句:为变量输出规定一个输出格式, 格式为: format 变量名 1 格式 1变量 2 格式 2, ;注:数据步中也可规定变量的属性,区别是:数据步中规定的变量属性附属于数据集本身,是永久的;在过程步中规定的变量属性只胜于此过程的本次运行。3.2 列表报告( print 过程)3.2.1 基本用法如果在生成一个数据集后,要立马查看数据集变量与值之间是否对应正确,数据输入是否正确,

6、可用:proc print; run; 如程序 prg3.1:在过程内使用var 语句,指定要列出的变量并指定顺序。如proc print data=c9501; var name chinese sex; run; 有时不想输出结果输出中的第一列的观测序号,可在proc print 语句中加入noobs 选项 ,如proc print data=c9501 noobs; run; 如果只列出满足条件的观测,可用where 语句,如:proc print data=c9501; where name in( 李明 , 张聪 ); run; 3.2.2 输出结果的管理(简要提及)1.result

7、 窗口2.文本格式及网页格式注:若要输出结果为html 网页格式,可在输出窗口中点击菜单:工具选项参数选择,在弹出的对话框窗口中选择“结果”页,选中“创建html ”即可。3.2.3 使用中文列标题print 过程默认输出中显示的列标题是变量的英文名称,如果要显示中文标题,可以在proc print 语句中加 label 选项,其中标签可在数据步中用lable 语句或 attrib 语句指定,也可在print 过程步中用lable语句指定。如下程序:注: label 语句在数据步中与过程步中使用方法一样,但attrib 语句是不一样的,细心体会。3.2.4 全程语句 (title 、footn

8、ote 、options语句) 全程语句与一般语句的区别是:一般语句必须用在数据步或过程步内,作为数据步或过程步的一部分,而全程语句即可用在数据步和过程步内,又可单独用在数据步和过程步外;全程语句有持续性,直到退出sas 系统或用另一个同样的全程语句来修改它。下面介绍三个全程语句:1.title 语句 :指定每页输出上面的总标题内容,如:title 数本一班成绩表 ;说明:系统默认的标题为“sas 系统”;title 语句是一个全过程语句,具有持续性。为了取消标题,可用没有规定内容的空title 语句,即 title ;其它全程语句:2.footnote 语句 :可以为每页输出加脚注,如:fo

9、otnote 例子输出 ;3.options 语句 :规定系统运行的一些选项,比如输出是否每有页号、是否有日期、输出的行宽、输出的每一页高度,如options nonumber nodate linesize=64 pagesize=60; 3.2.5 分组处理 (by 语句) 在 print 过程中,用by 语句来指定一个或几个分组变量,根据分组变量的取值对观测分组,然后对每一组观测分别进行指定的分析。注意在使用带有by 语句的过程前一般先用sort 过程排序。例如下面程序是按性别分组输出数据集:输出为:【try】如果上述程序中by sex 改为: by sex math,结果如何呢?3.2

10、.6 计算总计和小结( sum 语句) 1.在 print 过程中,用sum 语句可以计算某一个或几个变量的总计,格式为:sum 变量 1 变量 2, ;例: 9501 班同学购买课外书所用的钱数先建立成sas数据集,并计算全班的总书款。可用如下程序:输出为:2.联合使用by 语句与 sum 语句可以实现分组小计和总计例:在例prg3.4 中如果在列出全班书款总额基础上,还想按男、女分别计算支出,则可用如下程序:(要得到含有性别信息和购书金额的数据集c9501bk,有两种方法:一是按教材p90 将 prg3.3 和 prg3.4 中的数据集横向合并,方法二是:直接输入)或输出为:3.3 汇总表

11、格( tabulate 过程)tabulate 过程制表不是像print 过程那样列出观测,而是计算观测的分类统计量,绘制统计量的表格,其一般格式为:proc tabulate data=数据集名;class 分类变量;var 区间变量;table 页维说明,行维说明,列维说明/选项;run; 说明: class语句给出分类变量,用分类变量可以给观测分类,计算统计量时可以对每一类分别计算;var语句给出区间变量,它们是要计算统计量的分析变量;table 语句规定表格样式。例 1:对 c9501bk 数据集,绘出男、女生的课外支出总和,可用如下程序:说明 1:此程序table 语句说明了两个维:

12、sex 在行维, amount 在列维;说明 2:如果 table语句中只有一个维,则为列维,例如:/* 按性别统计男女生人数*/proctabulatedata=c9501bk; class sex; table sex; run ; 输出为:说明 3: 区间变量默认统计量为总和,分类变量默认统计量为频数,上例中都说明。要计算其它统计量,可采用“变量名*统计量名”。统计量名包括:n:非缺失观测个数(即频数)nmiss:缺失观测数mean:平均值std:标准差var:方差min :最小值max:最大值range:全距sum:总和uss:未校正的平方和css:对均值进行校正的平方和stderr:

13、均值的标准误cv:变异系数t :检验均值为0 的 t 统计量prt: t 统计量的p 值sumwgt :权数变量的和pctn:某类观测占总观测个数的百分比pctsum:某类观测总和占全部观测总和的百分比例如求男、女生的数学、语文成绩的平均值及标准差,可用如下程序:输出为:说明:上表只给出分类计算的统计量,如果要计算总的统计量,只需要把上例2 程序 prg3.7 中的 table 语句换成:table sex all, (mean std)*(math chinese); 输出结果为:说明 4:事实上, 用星号连接分类变量和分类变量可以构成交叉分组,用星号连接分类变量和区间变量可以 分 类 计

14、算 区 间 变 量 的 统 计 量 , 例 如 要 考 察 性 别 的 频 数 分 布 , 可 用 如 下 程 序 :输出结果;注:如果不是对分类变量本身计算n、pctn 这样的统计量而是分类计算其它变量的统计量,则还要指定其它需要统计的区间变量,形成三层的表格。如分别计算男、女生的数学成绩的平均值和标准差,可用如下程序:/* 三层表格:分男女生统计数学的平均值和标准差*/proctabulatedata=c9501bk; class sex; var math; table (sex all)*math*(mean std) ; run ; 输出为:说明 5:可以在 table语句中使用ke

15、ylabel语句指定 各统计量 的标签,如下例中用keylabel指定 mean和 std的标签,又用label语句指定变量的标签:输出为:作业: p117 习题 1 3.4 数据排序( sort过程)功能 :把数据集按某一个或若干个变量的次序进行排序,一般格式为:proc sort data=数据集名;by descending 变量名 1 descending 变量名 2 .;run; 说明 :数据集既是输入数据集也是输出数据集,过程的结果没有显示在输出窗口中;默认为升序排序,若为降序,则在变量名前加关键词descending。如按男、女性别排序,并在男生内部按平均分由高到低排序:proc

16、 sort data=c9501; by sex descending avg; run; 3.5 数据集转置( transpose过程)功能 1:把数据集的行列进行转置例 1:下列程序可以将4 行 3 列的数据集转置为3 行 4 列:输出为:说明:新增变量_name_保存了每一行在原始数据集中的列名(变量名),而原始数据的4 行变成了col1col4 ,共 4 列。功能 2:把数据集的多行观测合并成一行观测(或者说一列拆分为多列)例 2:假设对若干个病人先后试验了a 药和 b 药,药效记录在val 变量中(数据如下) ,为了进行统计分析,需要把两次的药效存入两个变量,即两个观测合并为一个观测

17、,用如下列程序可以实现。输出为:说明: var 语句指定要转置的变量,id 语句指定观测变成变量时的变量名,by 语句规定按分组变量的值分组以后对组内的行、列进行转置,新增变量_name_指出某一观测对应于原数据集的哪一列。功能 3:把数据集的一行观测拆分成多行观测(或者说多列合并成一列)例 3:假设对每一个病人有两个测量值test1 和 test2(数据如下) ,现需要把两次的测量值存入一个变量中,并增加一列来区分观测来源于哪一个变量用如下程序可以实现。输出为:说明: var 语句指定要转置的变量,by 语句规定按分组变量的值分组以后对组内的行、列进行转置,新增变量 _name_指出某一观测

18、对应于原数据集的哪一列。3.6 描述统计( means univariatefreq 过程)3.6.1 means 过程功能 :计算数据集中指定的各变量的一些基本描述性统计量的值(如观测值个数、均值、标准差、方差、偏度、峰度等) 。一般格式 :说明 ::(1)proc means 语句,常用 “ 选项 options” 有:proc means 选项 options ;var 变量名表;by 变量名表;class 变量名表;freq 变量名表; output out=sas 数据集名统计量关键词=变量名表; run; data=sas 数据集名:指明要分析的sas 数据集,缺省为最近建立的sa

19、s 数据集。maxdec=k :规定输出结果小数部分的最大位数, alpha=value :设置置信区间的置信水平。统计量关键词常用的有:n :变量观测值个数mean :均值std:标准差var :方差cv :变异系数 *100% median :中位数min :最小值max :最大值range :全距sum :总和uss:平方和css : 中心化平方和skewness :偏度kurtosis :峰度t:均值是否为零的双边t 检验值prt:检验的 p 值缺省时,该过程输出:n、mean 、std、min 、 max 五个统计量。(2)var 语句, 是指定需计算描述性统计量的变量名称,缺省时除

20、 by 、class 、freq 列出的变量外,所有数值型变量依次计算。(3)by 语句,先按by 变量的取值形成多个观测组,然后按组别分别计算各组对应的描述性统计量。?注:使用by 词句前,需对by 变量排序。(4)class 语句,其作用与by 词句类似,区别在于:不要求class 变量事先已排序。(5)freq 词句。指定一个数值型的频数变量,频数应为正整数,若不是则取整。(6)output 语句。它要求means过程将指定的统计量,以指定的名称输出到新的sas 数据集。【例 1】.对数据集sasuser.gpa中高中数学、科学和英语成绩计算均值、标准差、变异系数、偏度和峰度,程序如下:

21、输出为:【思考】上例中如果要分性别,计算男、女生的平均成绩和中位数,该如何办?提示:procmeansdata=sasuser.gpa meanmedian ; var hsm hss hse; class sex; run ; 注:也可使用by 语句,但要事先排序,输出形式不同。有些数据不是枚举格式,而是频数表的格式,如下例2。【例 2】对下表中的37 张出租车发票,计算发票的总计、平均值、标准差等。面值(元)张数面值(元)张数面值(元)张数10 4 12 6 15 1 16 1 19 5 23 1 24 1 25 1 27 1 32 1 47 1 49 1 52 1 55 1 81 1 输

22、出为:3.6.2 univariate过程功能: 除能完成与means过程类似的基本统计量计算外,还能计算数据的分位数、绘制简单的描述性分析图(如茎叶图、箱形图、qq 图)以及进行正态性检验、wilcoxon 符号秩检验等。一般格式:说明:(1)proc univariate 语句,常用 “ 选择项 options” 有:data=sas 数据集名:指明要分析的sas 数据集,缺省为最近建立的sas 数据集。freq:要求生成包括变量值、频数、百分数和和累计百分数的表。normal :要求对分析的各变量的观测值做正态性检验,并输出p 值。plot:要求生成茎叶图、箱形图、正态qq 图。(2)v

23、ar 语句,同means过程类似,指定需进行描述性分析的变量名称。(3)by 语句,同means过程类似,按组别分别进行分析。proc univ ariate 选项 options;var 变量名表;by 变量名表;freq 变量名表; output out=sas 数据集名统计量关键词=变量名表;run;?注:使用by 词句前,需对by 变量排过序。(4) output 语句。同 means过程类似,统计量关键词除在meansf 过程中的外,还有q3:上四分位数q1:下四分位数qrange :四分位极差p1:1分位数p5:5分位数p10:10分位数p90:90 分位数p95:95分位数p99

24、:99分位数msign :单样本符号检验统计量的值probm :双边符号检验的p 值signrank :单样本wilcoxon 符号秩检验统计量的值probs:wilcoxon 符号秩检验的p 值normal :正态性检验统计量的值probn :正态性检验的p 值【例 3】利用 univariate 过程分析数据集sasuser.gpa中变量 gpa(大学平均学分 )的分布进行分析,程序如下:输出为 7 部分:注: 默认输出为5 部分:矩统计量、基本位置和分散程序统计量、均值等于0 的三种检验结果、各种重要的分位数、5 个最低和5 个最高的值,选项normal 控制四种正态性检验结果的输出,选

25、项plot 是控制三个图(茎叶图、盒子图、正态qq 图)的输出。3.6.3 freq 过程功能 :考察离散变量的分布情况。【例 4】 分析数据集sasuser.gpa中变量 sex 的分布,可用如下程序:输出为3.7 相关系数计算(corr 过程)相关系数: 反映变量间的线性相关程度的系数,有普通的peason相关系数和spearman秩相关系数。功能 :计算 sas 数据集中变量间的相关系数矩阵、协方差矩阵,同时在相关系数矩阵的各元素下给出了检验此相关系数为零的检验p 值。此外,过程还自动产生各变量的一些描述性统计量的值(均值、标准差、中位数及最值)。一般格式 :说明:(1)proc cor

26、r 语句的选项有:data=sas 数据集名:指明所要分析的数据集,缺省时,则对新生成的数据集。pearson : 要求输出 pearson相关系数矩阵, 若没有指定其它类型相关系数,系统默认计算pearson相关系数。spearman :要求输出spearman秩相关系数矩阵。cov :要求计算协方差矩阵。nosimple :指明不输出每个变量的简单描述性统计量的值。(2)var 变量名表:计算变量名表中变量的相关系数矩阵,省略时,系统计算所有变量的相关系数矩阵。【例 1】计算数据集sasuser.pga 中的 3 个变量 hsm、hss和 hse两两间的 pearson相关系数和spearman秩相关系数、协方差矩阵,如下程序:proc corr 选项;var 变量名表; run;输出为:3.8 sas/graph 绘图3.8.1 散点图和曲线图( gplot 过程)【例 1】绘制数据集s

温馨提示

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

评论

0/150

提交评论