《《研究生SAS教程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《研究生SAS教程》PPT课件.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一次实验第一次实验1.了解了解SAS系统功能系统功能2.熟悉熟悉SAS的页面操作的页面操作3.熟悉熟悉SAS/BASE一些常用的语句一些常用的语句要求要求:(1)掌握数据的输入输出(掌握数据的输入输出(data input put output cards等语句的配合使用)等语句的配合使用);(2)掌握常用的基础统计计算(二项、正态等分布掌握常用的基础统计计算(二项、正态等分布的概率函数值和分位数的计算);的概率函数值和分位数的计算);(3)熟悉数据的图形显示功能熟悉数据的图形显示功能第一讲第一讲 SAS系统概述系统概述一、什么是一、什么是 SAS系统系统二、二、SAS/BASE简介简介一、
2、什么是一、什么是 SAS系统系统SAS系统是一个模块化的集成软件系统,提供数据访问、数据管理、数据分析、数据呈现。包括:1.基本部分(也是核心部分):BASE SAS;2.统计分析:SAS/STAT;3.高级绘图:SAS/GRAPH;4.矩阵运算:SAS/IML;5.运筹学和线性规划:SAS/OR;6.经济预测和时间序列分析:SAS/ETS;7.面向任务的菜单驱动界面:SAS/ASSIST二、二、SAS系统的特点系统的特点2.SAS语言是编程能力强且简洁易学的非过程语言3.SAS系统把数据处理与统计分析融为一体4.适用性强、应用面广二、二、SAS系统的特点系统的特点1.使用灵活方便、功能齐全三
3、、三、SAS/BASE简介简介 主要功能是:可以单独使用,也可以同其它软件产品一起组成一个用户化的SAS系统。3.报表生成和图形显示功能1.数据管理2.基础统计计算功能1.数据管理功能:(1)信息存贮和检索:可用任何格式读入数据值,然后组成SAS数据集。具有很强的与外部文件交换信息的功能,可以用文件操作管理方法把不同数据集的数据组合在一起,供SAS过程分析处理,生成报表.(2)数据修改与程序设计:(3)文件操作:用于对数据进行编辑、整理、连接、合并及更新的功能,还能同时处理多个输入文件,或者对一次输入的数据能够生成几种报表。3.报表生成和图形显示功能2.基础统计计算功能.计算简单的描述性统计量
4、.SAS函数可用于计算概率分布函数、分位数、产生随机数等一、一、SAS显示管理系统显示管理系统(Display Manager System,DMS)第二讲第二讲 SAS使用概述使用概述()编辑窗口(PROGRAM EDITOR):编辑程序和数据文件;()日志窗口(LOG):记录运行情况,显示信息;()输出窗口(OUTPUT):输出运行的结果;()图形窗口(GRAPH):输出图形。点击 Globals 菜单中的 Program editor、Log、Output、Graph 命令可以进入编辑、日志、输出及图形窗口。按功能键F5、F6、F7也可以进入编辑、日志及输出窗口。是用户和是用户和SAS系
5、统交互式会话环境;点击图标后,系统交互式会话环境;点击图标后,即可进入的显示管理系统在中有四即可进入的显示管理系统在中有四个主要的窗口:个主要的窗口:二、的功能键二、的功能键用功能键可以代替对菜单的点击,有时比较方便。最常用的功能键有F1:显示帮助信息();4:显示已经运行的程序();5:进入编辑窗口();6:进入日志窗口();7:进入输出窗口();8:程式提交运行();9:显示功能键();以上功能键的用法熟悉之后,还可以定义或修改功能键。例如,可以定义Ctrl+E为功能键,用来清屏。三、三、SAS语句语句一个一个SAS语句是由语句是由SAS关键词,关键词,SAS名字,特殊字符和运名字,特殊字
6、符和运算符组成的字符串,并算符组成的字符串,并以分号(;)结尾以分号(;)结尾。SAS关键词关键词:如如data语句,语句,proc语句,语句,infile语句语句等等SAS名字名字:最多由最多由1-8个字符组成,首字符必须是字母或下个字符组成,首字符必须是字母或下 下划线下划线(字符包括:字母、数字或下划线)(字符包括:字母、数字或下划线)如:变量名、如:变量名、SAS数据集名、过程名等数据集名、过程名等SAS语句语句 一般形式:一般形式:KEYWORD parameteroption;注:注:SAS规定,每个语句以规定,每个语句以“;”作为该语句结束的标志。作为该语句结束的标志。四、四、S
7、AS程序程序1.DATA语句:产生语句:产生SAS数据集数据集2.PROC语句语句:对对SAS数据集内数据进行分析处理数据集内数据进行分析处理,输出结果输出结果SAS程序:三明治程序:三明治 以以DATA语句开始语句开始(面包面包),告诉程序有关的数据集告诉程序有关的数据集最后是最后是PROC语句语句中间是数据中间是数据(肉肉)一序列语句组成一个一序列语句组成一个SAS程序,完成一定的功能程序,完成一定的功能.SAS程序中语句分为两种:程序中语句分为两种:SAS程序构成:程序构成:一个或多个一个或多个data语句、一个或多个语句、一个或多个proc语句语句一个或多个一个或多个proc语句语句一
8、个或多个一个或多个data语句语句程序示例:data ex;input no$sex$age h w;cards;10 f 47 156.3 47.124 m 38 172.4 61.553 m 41 169.2 64.546 f 52 158.2 53.638 f 39 160.1 48;proc sort;by sex;proc means;by sex;var h w;run;第四讲第四讲 DATA步入门步入门一、什么是一、什么是二、创建二、创建SAS数据集数据集三、三、DATA步语句及其类型步语句及其类型一、什么是一、什么是DATA步步1.检索检索:把输入数据转化为把输入数据转化为SA
9、S数据集;数据集;2.编辑编辑:检查数据中的错误并修改它们,计算新变量检查数据中的错误并修改它们,计算新变量;3.按照用户设计的规格输出报告并存为磁盘文件;按照用户设计的规格输出报告并存为磁盘文件;4.从已经存在的数据集中通过取子集、合并和从已经存在的数据集中通过取子集、合并和 更新原数据的方法来产生新的数据集。更新原数据的方法来产生新的数据集。DATA步是用步是用DATA语句开始的一组或几组语句开始的一组或几组SAS语句。其目的:语句。其目的:1.数据在作业流中:从作业流中输入数据产生数据在作业流中:从作业流中输入数据产生SAS数据集数据集二、创建二、创建SAS数据集数据集Ex.1 data
10、 d1;input x1 x2 x3;y=x1+x2+x3;cards;1 2 3 4 5 6 ;一般形式为:一般形式为:注:注:数据之间以空格隔开;数据行与行之间不用分号。数据之间以空格隔开;数据行与行之间不用分号。data 语句语句;input 语句语句;(用于(用于data步的其它步的其它SAS语句;)语句;)cards;数据行数据行 ;2.数据在磁盘上:从磁盘上读入数据文件产生数据在磁盘上:从磁盘上读入数据文件产生SAS数据集数据集二、创建二、创建SAS数据集数据集Ex.2 data d2;infile e:da1.dat;input x1 x2 x3;y=x1+x2+x3;run;一
11、般形式为:一般形式为:data 语句语句;infile 语句语句;input 语句语句;(用于(用于data步的其它步的其它SAS语句;)语句;)run;3.数据来自其它数据来自其它SAS数据集:从一个或几个已经存在的数据集:从一个或几个已经存在的SAS数据集产生新的数据集产生新的SAS数据集数据集二、创建二、创建SAS数据集数据集Ex.3 data d3;set da2;if x10;run;一般形式为:一般形式为:data 语句语句;set|merge|update|modify语句语句;(用于(用于data步的其它步的其它SAS语句;)语句;)run;Ex.4 data d3;merge
12、 da1 da2;run;4.把把SAS数据集转换为外部数据或输出报表数据集转换为外部数据或输出报表二、创建二、创建SAS数据集数据集一般形式为:一般形式为:data null-;input语句和语句和(cards|infile)语句语句;或者或者set|merge|updata|modify语句语句;file 语句;(语句;(*告诉告诉SAS这里要输出报表或存贮文件)这里要输出报表或存贮文件)put 语句(语句(*用一个或几个用一个或几个put语句输出这张报表或文件的一些行)语句输出这张报表或文件的一些行)(用于(用于data步的其它步的其它SAS语句;)语句;)run;三、三、DATA步语
13、句及其类型步语句及其类型只用于只用于 DATA步的步的SAS语句共有语句共有56个,分为四个,分为四类:文件操作语句、运行语句、控制语句、信类:文件操作语句、运行语句、控制语句、信息语句。息语句。常用的常用的data步语句:步语句:文件操作语句:文件操作语句:data、input、cards、file、infile、by、set、merge等等运行语句:赋值语句、累加语句等运行语句:赋值语句、累加语句等控制语句:循环语句、条件语句等控制语句:循环语句、条件语句等信息语句信息语句:(:(略)略)(1)语句语句 语句的作用是表明数据步的开始并给出数据集的名称。语句的格式为:数据集的名称;数据集的名
14、称;注:1)数据集的名称必须以英文字母开始,最长不超过个字符。2)数据集的名称都是由符号“”分隔的两个部分所组成。第一部分标记数据集所存储的位置,称作一级名或库逻辑名。第二部分标记一个特定的数据集,称作二级名。如果不想把数据集永久储存在指定的磁盘上,可以只使用二级名。例:;系统会自动地把作为数据集的二级名,并添加作为数据集的一级名,因此在日志窗口显示的信息中记该数据集为。但是这个数据集是临时的,它仅仅在程式运行期间有效,过后它就被复盖,不能重新调用。(2)语句语句语句的作用是与“;”呼应,标志数据行的开始与结束。语句的格式为:;数据行数据行 ;注:如果使用语句,在的后面必须紧跟数据行,并且在一
15、个数据步中最多只能有一个语句。(3)语句)语句 语句的作用是描述输入记录中的数据,并把输入值赋给相应的变量。语句的格式为:数据的变量名、顺序及类型;数据的变量名、顺序及类型;注注1:用语句是为了读外部文件的数据或跟在语句后面的数据。除非在语句中的变量名后有串符号或用字符的输入格式表示、或该变量事先已被定义为字符型,否则认定用语句读入的是数值型变量的值。注2.用语句时,外部文件中的数据和语句后面的数据都采取列表输入的方法,各个变量的值由它们之间的空格来分隔。为从一行读入多个观测值,应使用行保持符限制读数指针,使其保持在这一行上读数,直到数据读完为止。Ex.1 data ex1;input x1
16、x2 x3;y=x1+x2+x3;cards;1 2 3 4 5 6 ;Ex.1 data ex1;input x1 x2 x3;y=x1+x2+x3;cards;1 2 3 4 5 6 ;(4)语句语句 语句的作用是指明外部数据文件的名称,并从这个外部数据文件中读取数据。语句的格式为:外部数据文件名外部数据文件名;例如,在驱动器上有一个名称为ex2的数据文件,其中数据排列为:3.12 2.23 3.4 4.12 4.2 .5用语句读取数据的程式为:;:ex2.;$;用语句读取数据时,要求外部数据文件必须是可以在操作系统中用命令打印出全部内容的码文本文件。(5)语句语句 语句的作用是按照指定的
17、条件从指定的数据集中读取数据建立新的数据集或将两个数据集中的观测值纵向连接建立新的数据集。语句的格式为:数据集名表;数据集名表;例如,从数据集中读取数据建立新的数据集,可编辑语句:;将两个数据集和中的观测值纵向连接建立新的数据集,可编辑语句:;data d1;input g$a b;cards;1 5 7 1 7 9 1 3 4 ;data d2;input g$a c;cards;2 4 8 2 6 6 2 8 10 ;data d3;set d1 d2;proc print;run;运行结果Obs g a b c 1 1 5 7 .2 1 7 9 .3 1 3 4 .4 2 4 .8 5
18、2 6 .6 6 2 8 .10(6)语句语句 语句的作用是将两个数据集中的各个观测值横向合并建立新的数据集。语句的格式为:数据集名表;数据集名表;例如,将数据集与中的观测值横向合并建立新的数据集,可编辑语句:;data d1;input a b c;cards;1 5 7 1 7 9 1 3 4 1 2 6 ;data d2;input x y z;cards;2 4 8 2 6 6 ;data d3;merge d1 d2;proc print;run;本程式运行的结果如下:OBS A B C X Y Z 1 1 5 7 2 4 8 2 1 7 9 2 6 6 3 1 3 4 .4 1 2
19、 6 .(7)do语句语句 简单do语句 循环do语句 do while 语句 do until 语句简单do语句:常常用在if-then/else语句里来指定一个语句组根据if条件成立或不成立时被执行,格式为:do;一些sas语句end;例:data a;input x;if x5 then do;y=x*10;put x=y=;end;cards;12 4 11 5;输出结果:输出结果:x=12 y=120 x=11 y=110例:data ex;do x=1.645,1.96,2.576;p=probnorm(x);put x=p=;end;run;在log窗口输出结果:x=1.645
20、p=0.9500150945x=1.96 p=0.9750021049x=2.576 p=0.9950024677循环do语句:格式为:do;一些sas语句end;例:data a;do x=-3 to 3 by 0.25;do y=-3 to 3 by 0.25;p=x*x+y*y;put x=y=p=;end;end;run;第五讲第五讲 PROC步入门步入门一、什么是一、什么是PROC 步?步?二、二、PROC语句语句一、什么是一、什么是PROC 步?步?PROC 步是用步是用PROC语句开始的一组或几组语句开始的一组或几组SAS语句。语句。一般形式为:一般形式为:PROC SAS过程名
21、过程名;(用于(用于proc步的其它步的其它SAS语句;)语句;)run;Ex.4 proc print data=d1;run;注:注:1.不同的不同的SAS过程可以使用的过程可以使用的 也是不同的。也是不同的。2.Proc步中常出现的步中常出现的SAS控制控制语句语句:(1)var 变量名变量名;(2)by 变量名变量名;(要求排序)(要求排序)(3)class 变量名变量名;(4)ID 变量名变量名;二、二、SAS基本输出过程基本输出过程1.proc print;2.或或 proc print data=文件名文件名;Ex.5 data d1;input x1 x2 x3;y=x1+x2
22、+x3;cards;1 2 3 2 3 4 ;proc print data=d1;run;2.proc plot;语法:语法:proc plot 选项;选项;by 变量列表变量列表;plot 选项;选项;选项:如选项:如vpect=33(规定产生的散布图在垂直方向规定产生的散布图在垂直方向占一页的比例占一页的比例 hpct=50 formchar=字符串字符串 plot 选项;选项;plot vertical*horizontal 或或plot vertical*horizontal=字符或变量字符或变量3.proc sort;by variables;run;1.proc means;va
23、r variables;by variables;freq variables;output out=新文件名新文件名 变量名列表(统计关变量名列表(统计关键词键词=)run;三、三、SAS基础统计过程基础统计过程Options:mean std clm alpha t prt 注注1:proc means 可以计算的统计量由可以计算的统计量由21种,种,分别用下述关键词表示:分别用下述关键词表示:n,nmiss,mean,std,max,min,range,sum,var,uss,css,cv,stderr,t,prt,skewness,kurtosis,clm,lclm,uclm注注2:o
24、utput out=新文件名新文件名 变量名列表变量名列表(统计关键词(统计关键词=)Ex:proc means data=ex;var weight height;class sex;output out=result mean=meanweight meanheight std(weight)=stdweight std(height)=stdheight run;proc print data=result;run;偏态与峰度分布的形状左偏分布左偏分布左偏分布左偏分布扁平分布扁平分布扁平分布扁平分布右偏分布右偏分布右偏分布右偏分布与标准正态与标准正态与标准正态与标准正态分布比较!分布比较
25、!分布比较!分布比较!尖峰分布尖峰分布尖峰分布尖峰分布偏态(概念要点)1、数据分布偏斜程度的测度2.偏态系数=0为对称分布3.偏态系数 0为右偏分布4.偏态系数 0为左偏分布5.计算公式为偏态(实例)【例例例例】已已知知19971997年年我我国国农农村村居居民民家家庭庭按按纯纯收收入入分分组组的的有有关关数数据据。试试计计算算偏偏态系数态系数表表4-10 1997年年农村居民家庭纯收入数据农村居民家庭纯收入数据按纯收入分组(元)按纯收入分组(元)户数比重(户数比重(%)500以下以下5001000100015001500200020002500250030003000350035004000
26、40004500450050005000以上以上2.2812.4520.3519.5214.9310.356.564.132.681.814.94户户户户户户数数数数数数比比比比比比重重重重重重(%)(%)(%)25252020151510105 5农村居民家庭村收入数据的直方图农村居民家庭村收入数据的直方图农村居民家庭村收入数据的直方图农村居民家庭村收入数据的直方图偏态与峰度(从直方图上观察)按纯收入分组按纯收入分组按纯收入分组按纯收入分组按纯收入分组按纯收入分组(元元元元元元)100010005005001500150020002000250025003000300035003500400
27、04000 4500450050005000结论:结论:结论:结论:1.1.为右偏分布为右偏分布 2.2.峰度适中峰度适中偏态系数(计算结果)将计算结果代入公式得将计算结果代入公式得将计算结果代入公式得将计算结果代入公式得结论:结论:结论:结论:偏态系数为正值,而且数值较大,说明农村居民家庭纯偏态系数为正值,而且数值较大,说明农村居民家庭纯收入的分布为右偏分布,即收入较少的家庭占据多数,而收入收入的分布为右偏分布,即收入较少的家庭占据多数,而收入较高的家庭则占少数,而且偏斜的程度较大较高的家庭则占少数,而且偏斜的程度较大 峰度(概念要点)1.数据分布扁平程度的测度2.峰度系数=3扁平程度适中3
28、.偏态系数3为尖峰分布5.计算公式为峰度系数系数峰度系数系数(实例计算结果实例计算结果)代入公式得代入公式得 【例例例例】根根据据表表4-104-10中中的的计计算算结结果果,计计算算农农村村居居民民家庭纯收入分布的峰度系数家庭纯收入分布的峰度系数 结结结结论论论论:由由于于=3.43=3.43,说说明明我我国国农农村村居居民民家家庭庭纯纯收收入入的的分分布布为为尖尖峰峰分分布布,说说明明低低收收入入家家庭庭占占有有较较大大的比重的比重 2.proc univariate var variables;by variables;freq variables;output run;Options:
29、normal注:计算分位数、频率表、数据的正态性检验等注:计算分位数、频率表、数据的正态性检验等Options:1.Normal2.Plot (生成一个茎叶图或水平直方图、生成一个茎叶图或水平直方图、一个盒形图、一个正态概率图一个盒形图、一个正态概率图)3.proc ttest class variables;var variables;run;4.proc corr var variables;with variables;by variables;freq variables;run;注:计算注:计算Pearson相关系数和显著性概率以及相关系数和显著性概率以及 单变量统计量单变量统计量第
30、六讲第六讲 全程语句全程语句一、什么是全程语句?一、什么是全程语句?二、二、常用的全程语句常用的全程语句一、什么是全程语句?一、什么是全程语句?全程语句:全程语句:既可以用在既可以用在data步,也可以用在步,也可以用在proc步;步;既可以用在既可以用在data步和步和proc步的步的外部外部,也可以用在也可以用在data步和步和proc步的步的内部内部。这些语句可以用在这些语句可以用在SAS程序的任何地方,称为全程语句程序的任何地方,称为全程语句.二、二、常用的全程语句常用的全程语句1.注释语句:注释语句:*messages;或或 /*messages*/(无需分号)无需分号)2.Titl
31、e语句:规定同语句:规定同SAS输出一起被打印的标题行输出一起被打印的标题行 Title (n=110)e.g.Title2 Annual costs3.run ;4.endsas;应用应用SAS计算二项分布的分位数计算二项分布的分位数probbnml(p,n,k)=而PX=k=probbnml(p,n,k)probbnml(p,n,k1)data ex;do k=1 to 10 by 1;p=probbnml(0.5,10,k)-probbnml(0.5,10,k-1);put p;end;data ex;do k=1 to 10 by 1;do p=0.5;n=10;value=probb
32、nml(p,n,k)-probbnml(p,n,k-1);output;end;end;proc print data=ex;run;应用应用SAS计算标准正态分布的分位数计算标准正态分布的分位数在SAS中有probit(p)函数,用此函数可以求p分位数。SAS程序为data ex;do p=0.025,0.05,0.1,0.9,0.95,0.975;u=probit(p);put u p;end;run;输出的结果如下:-1.959963985 0.025-1.644853627 0.05-1.281551566 0.1 1.2815515655 0.9 1.644853627 0.95 1
33、.9599639845 0.975当=0.10,0.05,0.01时,应用SAS计算双侧分位数的程序为:data ex;do x=0.1,0.05,0.01;p=1-x/2;u=probit(p);put x p u;end;run;输出的结果如下:0.1 0.95 1.6448536270.05 0.975 1.95996398450.01 0.995 2.5758293035应用应用SAS计算卡方分布的分位数计算卡方分布的分位数在SAS中有cinv(p,df)函数,用此函数可以求p分位数。SAS程序为data ex;do df=4;do p=0.025,0.05,0.1,0.9,0.95,
34、0.975;c=cinv(p,df);put p df c;end;end;run;输出的结果如下:0.025 4 0.48441855710.05 4 0.71072302140.1 4 1.06362321680.9 4 7.77944033970.95 4 9.48772903680.975 4 11.143286782应用应用SAS计算计算t分布的分位数分布的分位数在SAS中有tinv(p,df)函数,用此函数可以求p分位数。data ex;do df=4;do p=0.025,0.05,0.1,0.9,0.95,0.975;t=tinv(p,df);put p df t;end;en
35、d;run;结果:0.025 4 -2.776445105 0.05 4 -2.131846786 0.1 4 -1.533206274 0.9 4 1.5332062741 0.95 4 2.1318467863 0.975 4 2.7764451052应用应用SAS计算计算F分布的分位数分布的分位数在SAS中有finv(p,df1,df2)函数,用此函数可以求p分位数。SAS程序为data ex;do p=0.025,0.05,0.1,0.9,0.95,0.975;do df1=3;df2=4;f=finv(p,df1,df2);put p df1 df2 f;end;end;run;结果
36、:0.025 3 4 0.0662208725 0.05 3 4 0.1096830108 0.1 3 4 0.1871732255 0.9 3 4 4.1908604389 0.95 3 4 6.5913821164 0.975 3 4 9.9791985322data ex;do p=0.025,0.05,0.1,0.9,0.95,0.975;do df1=3;df2=4;f=finv(p,df1,df2);output;end;end;run;proc print;run;Obs p df1 df2 f 1 0.025 3 4 0.06622 2 0.050 3 4 0.10968 3 0.100 3 4 0.18717 4 0.900 3 4 4.19086 5 0.950 3 4 6.59138 6 0.975 3 4 9.97920 data ex;input x;if x10 then output;cards;1 2 23 12 34;proc print;run;Obs x 1 23 2 12 3 34