统计分析软件基础教程 数据文件管理PPT课件

上传人:深*** 文档编号:102457751 上传时间:2022-06-07 格式:PPTX 页数:170 大小:1MB
收藏 版权申诉 举报 下载
统计分析软件基础教程 数据文件管理PPT课件_第1页
第1页 / 共170页
统计分析软件基础教程 数据文件管理PPT课件_第2页
第2页 / 共170页
统计分析软件基础教程 数据文件管理PPT课件_第3页
第3页 / 共170页
资源描述:

《统计分析软件基础教程 数据文件管理PPT课件》由会员分享,可在线阅读,更多相关《统计分析软件基础教程 数据文件管理PPT课件(170页珍藏版)》请在装配图网上搜索。

1、1掌握掌握SAS数据步语言数据步语言掌握掌握SAS数据集的创建数据集的创建掌握掌握SAS数据集的加工整数据集的加工整理理内容与要求内容与要求第1页/共170页2SASSAS语言语言数据步入门数据步入门数据集整理数据集整理创建数据集创建数据集第2页/共170页3SAS语言 在在Windows环境下运用环境下运用SAS系统进行常用系统进行常用的统计分析时,虽然前面介绍的两个菜单系统可的统计分析时,虽然前面介绍的两个菜单系统可让用户不必编写程序而方便地使用让用户不必编写程序而方便地使用SAS系统的数系统的数据管理和一些统计分析功能,但目前并不是所有据管理和一些统计分析功能,但目前并不是所有的统计方法

2、的统计方法 都可以通过菜单系统来实现,如都可以通过菜单系统来实现,如“应应用多元统计分析用多元统计分析”中将介绍的一些统计方法以及中将介绍的一些统计方法以及一些特殊或较深入的分析功能必须用编程实现一些特殊或较深入的分析功能必须用编程实现.编编程是功能最强的使用程是功能最强的使用SAS系统进行统计分析的方系统进行统计分析的方法法.第3页/共170页4 SAS语言是一种专用的数据处理、统计计算语语言是一种专用的数据处理、统计计算语言,但是它也包含一般的高级语言编程能力并扩充言,但是它也包含一般的高级语言编程能力并扩充了许多数学、统计等方面的函数。下面我们先介绍了许多数学、统计等方面的函数。下面我们

3、先介绍一些一些SAS函数,然后结合函数,然后结合SAS要完成的操作来介绍要完成的操作来介绍SAS语言,如用来进行一般编程计算的功能及其独语言,如用来进行一般编程计算的功能及其独特的数据处理功能。特的数据处理功能。 SAS数据步的数据输入、整理功能很强,以下数据步的数据输入、整理功能很强,以下只能介绍常用的功能。希望进行复杂的数据管理的只能介绍常用的功能。希望进行复杂的数据管理的读者可以参考读者可以参考Base SAS的使用手册。的使用手册。第4页/共170页5 SAS语言也是一种计算机语言语言也是一种计算机语言,常称为非过程语常称为非过程语言或第四代语言言或第四代语言. 过程语言一般是指过程语

4、言一般是指 : BASIC语言语言, C语语言言,Fortran 语言语言 等需要给出计算过程的语言等需要给出计算过程的语言. 第一代至第四代语言是指第一代至第四代语言是指:机器语言机器语言,汇编语言汇编语言,高高级语言级语言(如如Fortran 语言等语言等),非过程语言非过程语言.第5页/共170页6 同其他计算机语言一样,同其他计算机语言一样,SAS语言也有它自己的语言也有它自己的语汇和句法语汇和句法-关键词和连结关键词与关键词和连结关键词与 其他辅助信息其他辅助信息的规则的规则. 用户使用用户使用SAS语言来生成数据集并规定对数据怎语言来生成数据集并规定对数据怎样做统计分析的问题样做统

5、计分析的问题 . 一个一个SAS语句是由语句是由SAS关键词、关键词、SAS名字、特殊名字、特殊字符和运算符组成的字符串,并以分号(;)结尾,字符和运算符组成的字符串,并以分号(;)结尾,它要求它要求SAS系统执行一种操作或给系统执行一种操作或给SAS系统提供信系统提供信息息.第6页/共170页7SAS语句语句 许多许多SAS语句都是以关键词开始并用它识别语句语句都是以关键词开始并用它识别语句的类型的类型.如如DATA语句、语句、PROC语句、语句、INPUT语句等语句等. SAS语句中可能出现的语句中可能出现的SAS名字种类很多名字种类很多,如变如变量量名名SAS数据集名、格式名、过程名、数

6、组名、语句标数据集名、格式名、过程名、数组名、语句标号名、以及作为文件标记和库标记的特殊名字号名、以及作为文件标记和库标记的特殊名字. SAS名字最多可由名字最多可由32(V6为为8)个字符组成个字符组成,第一个第一个字符必须是字母字符必须是字母(A,B,Z)或下划线或下划线( _ ),后面的字符后面的字符可以是字母可以是字母,数字数字(0,1,2,9)或下划线或下划线. 每个每个SAS语句都用分号语句都用分号(;)结束结束,出现在出现在SAS语句语句中的其他特殊字符和算符有圆括号中的其他特殊字符和算符有圆括号( ),美元符号美元符号(),小小数点号数点号(),等号等号(),冒号冒号(: )和

7、加号和加号().第7页/共170页8 SAS语句书写的格式较为灵活语句书写的格式较为灵活: 语句可以在某一行的任何位置开始和结束语句可以在某一行的任何位置开始和结束; 词间可任意加入空格和换行词间可任意加入空格和换行; 一个语句可以写成几行,只要语句中的关键词不一个语句可以写成几行,只要语句中的关键词不被断开就可以;被断开就可以; 多个语句可写在一行;多个语句可写在一行; SAS语句用大写字母、小写字母或两者混合书写语句用大写字母、小写字母或两者混合书写均可以均可以.但但字符型数据值要区分大小写字符型数据值要区分大小写,比如,比如Beijing 和和BEIJING被认为是不同的数据值被认为是不

8、同的数据值. 第8页/共170页9SAS程序程序 一序列一序列SAS语句组成一个语句组成一个SAS程序程序.SAS程序中的程序中的语句分别属于两类步骤:语句分别属于两类步骤:DATA步和步和PROC步步.这两类这两类步骤是所有步骤是所有SAS程序的组成部分程序的组成部分.每一步是一段相对每一步是一段相对完整的可以单独运行的程序。完整的可以单独运行的程序。 通常用通常用DATA步产生步产生SAS数据集,而用数据集,而用PROC步步对对SAS数据集中的数据进行分析处理并输出结果数据集中的数据进行分析处理并输出结果. 一个一个SAS程序可由一个程序可由一个DATA步或一个步或一个PROC步步组成;或

9、者由组成;或者由DATA步和步和PROC步两部分组成;也可步两部分组成;也可由多个由多个DATA步和步和PROC步组成步组成.第9页/共170页10 用户提交的用户提交的 SAS 程序由许多程序步构成。程序由许多程序步构成。数据步数据步DATA步步过程步过程步PROC步步原始原始数据数据SAS表SAS表报告报告数据步常用于创建数据集过程步常用于处理数据集(生成报表、图形和实现数据分析功能)SAS编程基本概念编程基本概念第10页/共170页11 数据步以数据步以DATA语句开始语句开始, RUN语句结尾语句结尾,用于创用于创建和加工建和加工SAS数据集数据集. 在数据步中使用的在数据步中使用的S

10、AS语句包括语句包括: 文件操作语句文件操作语句-要求要求SAS创建一个或几个新的创建一个或几个新的SAS数据集的语句数据集的语句,如如DATA、INPUT、CARDS、INFILE、SET、MERGE等语句等语句; 运行语句运行语句-对创建数据集所必须进行的运算语对创建数据集所必须进行的运算语句,如赋值、累加、句,如赋值、累加、Where等语句等语句; SAS数据步(数据步(DATA步)步)第11页/共170页12 控制语句控制语句实现从程序的一部分转移到另一部分实现从程序的一部分转移到另一部分的语句的语句,如如DO、IF、GO TO、SELECT、LINK等语句等语句; 信息语句信息语句给

11、出关于数据集或正被生成的数据给出关于数据集或正被生成的数据集的附加信息集的附加信息,如如ARRAY、INFORMAT、FORMAT、LENGHT、ATTRIB、KEEP、DROP等语句等语句.第12页/共170页13常用的数据步文件管理语句常用的数据步文件管理语句 第13页/共170页14DATA语句格式语句格式 DATA data-set-name-1 .data-set-name-n ; DATA view-name data-set-name-1 . . .data-set-name-n / VIEW=view-name (); DATA data-set-name / PGM=prog

12、ram-name (); DATA PGM=program-name (); REDIRECTREDIRECT INPUT | OUTPUT old-name-1 = new-name-1 ; DATA VIEW=view-name (); DESCRIBE; 第14页/共170页15选项说明选项说明 这里只给出常用选项的说明,其它选项说明可以这里只给出常用选项的说明,其它选项说明可以从从SASSAS系统帮助中查找。系统帮助中查找。 第15页/共170页16 例例4.1 规定要创建的规定要创建的SAS数据集。数据集。 data a; /*创建临时数据集创建临时数据集a */ data fdat

13、a.capital; /*创建永久数据集创建永久数据集fdata.capital */ data data1 data2; /*创建两个临时数据集创建两个临时数据集data1和和data2 */ data _null_; /*特殊名,不创建特殊名,不创建SAS数据集,用于输出数据集,用于输出 */ d a t a ; / * 系 统 自 动 规 定 数 据 集 名系 统 自 动 规 定 数 据 集 名 , data1, ,datan * / 例例4.2 数据集选项举例。数据集选项举例。 data new (drop=var1); /*去掉数据集去掉数据集new中变量中变量var1*/ data

14、 new (keep=_numeric_); /*保留数据集保留数据集new中所有中所有数值变量数值变量*/ data new (label=股票价格股票价格); /*规定数据集规定数据集new标签名为标签名为”股票价格股票价格”*/ data new (rename=(var1=u var2=v); /*将变量将变量var1和和var2更更名为名为u和和v*/ data book(index=(author); /*数据集数据集book对变量对变量author建立建立索引索引*/ 第16页/共170页17 例例4.3 创建创建DATA步数据视窗文件。步数据视窗文件。 data class/

15、view=class; set fdata.class; run; 例例4.4 存贮被编辑程序。存贮被编辑程序。 data .class1(keep=name age weight)/pgm=.cl; /*cl是被存贮是被存贮的的SAS程序程序*/ set fdata.class; run; 例例4.5 用用DATA步执行一个被存贮的编辑程序。步执行一个被存贮的编辑程序。 data pgm=fdata.cl; run;第17页/共170页18特殊数据集名特殊数据集名 _ _data_ (data_ (省略数据集名省略数据集名) )datadata _data_data_; ; / /* *等价

16、于语句等价于语句data;data;* */ /系统自动为数据集赋名:系统自动为数据集赋名:data1, data2,data1, data2, datan., datan.第18页/共170页19 _ _null_null_ 一般和一般和PUTPUT语句一起用。由语句一起用。由PUTPUT输出结果,只输出到输出结果,只输出到LOGLOG窗口,不窗口,不会产生会产生SASSAS数据集。数据集。 例例4.6 4.6 不产生数据集。不产生数据集。 datadata _null_null_; ; x=exp(x=exp(5 5);); y=log(y=log(1010);); putput x= y

17、=; x= y=; runrun; ;第19页/共170页20 _ _last_last_ _last_last_是是SASSAS系统的一个自动变量,取值为最新创建的系统的一个自动变量,取值为最新创建的SASSAS数据集名。数据集名。 例例4.7 4.7 查看最新创建的查看最新创建的SASSAS数据集。数据集。 datadata a; a; setset _last_last_; ; runrun; ;第20页/共170页21 过程步以过程步以PROCPROC语句开始,用于分析处理语句开始,用于分析处理SASSAS数数据集中的数据。据集中的数据。 从过程库中调出一个过程并执行这个过程,以从过程

18、库中调出一个过程并执行这个过程,以SASSAS数据集作为输入数据,数据集作为输入数据,PROCPROC语句开始的一组或几语句开始的一组或几组组SASSAS语句完成一个语句完成一个SASSAS过程,以另一个过程,以另一个“PROCPROC”、“ DATA DATA”或或“ RUN RUN”语句结束语句结束. . 指定指定PROCPROC步调用的步调用的SASSAS程序,选择项指明分析的程序,选择项指明分析的数据集,分析结果的输出要求,以及分析过程中需数据集,分析结果的输出要求,以及分析过程中需要用到的一些参数要用到的一些参数. .SAS过程过程步(步(PROC步)步) 第21页/共170页22

19、若干数据步和几个过程步构成一个若干数据步和几个过程步构成一个SAS程程.SAS程程序一般在序一般在PGM窗口采用全屏幕编辑方式输入窗口采用全屏幕编辑方式输入.当程序当程序输入完毕,检查修改后就可以输入完毕,检查修改后就可以 提交给提交给SAS系统执行系统执行. 在程序执行的过程中,日志(在程序执行的过程中,日志(LOG)窗口显示)窗口显示程序执行中记录的信息;它包括执行哪个语句;生程序执行中记录的信息;它包括执行哪个语句;生成的数据集中变量个数及观测个数是多少成的数据集中变量个数及观测个数是多少;每一步的每一步的时间及出错信息等等时间及出错信息等等. SAS过程产生的输出显示在过程产生的输出显

20、示在OUTPUT窗口窗口.第22页/共170页23 数据步程序中的计算由表达式来完成。表达式把数据步程序中的计算由表达式来完成。表达式把运算对象(常数,变量,函数调用等)用一系列算符运算对象(常数,变量,函数调用等)用一系列算符(如特殊的运算符、括号等)连接起来,被执行后得(如特殊的运算符、括号等)连接起来,被执行后得到一个目标值到一个目标值. 表达式分为简单表达式表达式分为简单表达式(仅用一个算符仅用一个算符)和复合的和复合的表达式表达式(使用多个算符使用多个算符). 在数据步为了对变量作变换在数据步为了对变量作变换,建立新变量、条件建立新变量、条件处理、计算新数值及指定新数值时使用表达式来

21、编写处理、计算新数值及指定新数值时使用表达式来编写程序语句程序语句.第23页/共170页24 SAS常量主要有数值型、字符型两种,并且还提供常量主要有数值型、字符型两种,并且还提供了用于表达日期、时间的数据类型。例如了用于表达日期、时间的数据类型。例如 数值型:数值型:12,7.5,2.5E10 字符型:字符型:Beijing,Li Ming,李明李明 日期型:日期型:13JUL1998d 时间型:时间型:14:20t 日期时间型:日期时间型:13JUL1998:14:20:32dt 因为因为SAS是一种数据处理语言,而实际数据中是一种数据处理语言,而实际数据中经常会遇到缺失值,比如没有观测到

22、数值,被访问人经常会遇到缺失值,比如没有观测到数值,被访问人不肯回答等等。不肯回答等等。SAS中用一个单独的小数点(中用一个单独的小数点( .)来)来表示缺失值常量。表示缺失值常量。(sasLan11.sas)SAS表达式表达式第24页/共170页25 SAS变量的基本类型有两种:数值型和字符型。日变量的基本类型有两种:数值型和字符型。日期、时间等变量存为数值型。期、时间等变量存为数值型。 SAS的数值型变量可以存储任意整数、定点实数、的数值型变量可以存储任意整数、定点实数、浮点实数,一般不关心其区别。数值型变量在数据集浮点实数,一般不关心其区别。数值型变量在数据集中的存贮一般使用中的存贮一般

23、使用8个字节。个字节。 SAS的字符型变量缺省的长度是的字符型变量缺省的长度是8个字符,但是个字符,但是如果在如果在INPUT语句中输入字符型变量时指定了长度则语句中输入字符型变量时指定了长度则不受此限制。不受此限制。 可以用可以用LENGTH语句直接指定变量长度。语句直接指定变量长度。 如如 LENGTH name $ 20 ;第25页/共170页26 SAS运算符包括算术、比较、逻辑等运算符。运算符包括算术、比较、逻辑等运算符。 算术运算符算术运算符为为 ,*,/,*,运算优先级按通常的,运算优先级按通常的优先规则。优先规则。 比较运算符比较运算符用于比较常量、变量的值大小、相等,用于比较

24、常量、变量的值大小、相等,包括包括 = 1000) AND (salary 2000) 表示工资收入在表示工资收入在10002000之间(不含之间(不含2000);); (age = 1000) AND (salary 2000)表示工资收入不在表示工资收入不在10002000之间。之间。第27页/共170页28 其它的运算符还有用于连接两个字符串的其它的运算符还有用于连接两个字符串的|(两个(两个连续的连续的|号),用于取两个运算值中较大一个的号),用于取两个运算值中较大一个的(比如(比如35结果为结果为5),用于取两个运算值中较小一),用于取两个运算值中较小一个的个的5结果为结果为3)。)

25、。 比较运算符得到比较运算符得到“真真”(赋值赋值)或或“假假” (赋值赋值) 的结果,主要用于需要条件的分支、循环等语句的结果,主要用于需要条件的分支、循环等语句中。中。 若比较表达式的值为或缺失值若比较表达式的值为或缺失值,称为表达式不成立称为表达式不成立(“假假” );否则表达式成立否则表达式成立(“真真”).第28页/共170页29 在在SAS系统系统9.1版本版本,SAS函数分为二十五种类型函数分为二十五种类型,它们是算术函数、截取函数、数学函数、概率和密度它们是算术函数、截取函数、数学函数、概率和密度函数、分位数函数、非中心函数、样本统计函数、随函数、分位数函数、非中心函数、样本统

26、计函数、随机数函数、财政金融函数、字符函数、日期和时间函机数函数、财政金融函数、字符函数、日期和时间函数、洲和数、洲和Zip码码(邮政编码邮政编码)换算函数和特殊函数等等换算函数和特殊函数等等(在在SAS系统系统6.12版本,版本,SAS函数分为十七种类型共函数分为十七种类型共有有178个个,SAS系统系统8.1版本,版本,SAS函数分为二十二种函数分为二十二种类型共有类型共有319个函数个函数).SAS函数函数第29页/共170页30 SAS系统提供的系统提供的SAS函数比一般高级语言的标函数比一般高级语言的标准函数多得多准函数多得多.如此丰富的如此丰富的SAS函数,对用户编写函数,对用户编

27、写SAS程序带来极大的方便,尤其是概率函数、分位数程序带来极大的方便,尤其是概率函数、分位数函数、非中心函数、样本统计函数函数、非中心函数、样本统计函数 、随机数函数、随机数函数,这这几类函数是一般高级计算机语言所没有的几类函数是一般高级计算机语言所没有的,它们为统它们为统计分析计算提供更大的方便。计分析计算提供更大的方便。 下面我们分类介绍一些下面我们分类介绍一些SAS函数,主要介绍用函数,主要介绍用于统计计算的于统计计算的SAS函数函数.第30页/共170页31 第31页/共170页32 测试函数功能的一个简单的程序:测试函数功能的一个简单的程序:data _null_; y=sqrt(3

28、); put y= ;run;程序提交后将在程序提交后将在LOG窗口给出窗口给出SQRT(3)的结果为)的结果为Y=1.7320508076 。3第32页/共170页33 SAS语言作为一种统计计算语言,它提供了语言作为一种统计计算语言,它提供了多种概率分布的有关函数。其中分布密度、概多种概率分布的有关函数。其中分布密度、概率、累积分布函数等可以通过几种统一的格式率、累积分布函数等可以通过几种统一的格式调用,格式为调用,格式为 分布函数值分布函数值 = CDF(分布分布, x ); 密度值密度值 = PDF(分布分布, x ); 概率值概率值 = PMF(分布分布, x ); 对数密度值对数密

29、度值 = LOGPDF(分布分布, x ); 对数概率值对数概率值 = LOGPMF(分布分布, x );第33页/共170页34 CDF计算由计算由分布分布指定的某种分布的分布函数,指定的某种分布的分布函数,PDF计算分布密度函数计算分布密度函数值,值,PMF计算离散分布的分布概率,计算离散分布的分布概率,LOGPDF为为PDF的自然对数,的自然对数,LOGPMF为为PMF的自然对数的自然对数. 例如,例如,PDF(NORMAL, 1.96) 计算标准正态分布在计算标准正态分布在1.96处的密度值(处的密度值(0.05844);); CDF(NORMAL,1.96) 计算标准正态分布在计算标

30、准正态分布在1.96处的分布函数值(处的分布函数值(0.975) PMF(NORMAL,1.96)=PDF(NORMAL,1.96) 即即PMF对连续型分布即为对连续型分布即为PDF。 除了用上述统一的格式调用外,除了用上述统一的格式调用外,SAS系统还单独提供了用系统还单独提供了用 于计算常用分布的密度、分布函数。于计算常用分布的密度、分布函数。第34页/共170页35 PROBNORM(x):计算标准正态的分布函计算标准正态的分布函数数. 即计算服从标准正态分布的随机变量即计算服从标准正态分布的随机变量U小于等于小于等于 给定给定x的概率的概率(PU=x). PROBCHI(x,df,nc

31、):计算自由度为计算自由度为df,非中非中心心 参数为参数为nc的卡方分布的分布函数的卡方分布的分布函数.如果如果nc没有规没有规定定 或取为或取为0,那么被计算的就是中心卡方分布那么被计算的就是中心卡方分布.自由自由度度 df允许不是整数允许不是整数.例如例如: p=1-probchi(31.264,11); 的结果为的结果为1-0.999=0.001.第35页/共170页36 PROBGAM(x,a):计算形状参数计算形状参数a(a0)的的伽马伽马 分布的分布函数分布的分布函数.例如例如: p=probgam(7.5,5.2);的结果为的结果为0.84885. PROBBETA(x,a,b

32、):计算贝塔分布的分布计算贝塔分布的分布函数函数 (其中其中:,,).例如例如: p=probbeta(0.75,4,2.5);的结果为;的结果为0.7467. PROBF(x,ndf,ddf,nc):计算计算F分布函数分布函数(其其中中ndf 为分子自由度为分子自由度,ddf为分母自由度为分母自由度,nc是非中心参是非中心参数数).当当 分布是中心分布是中心F分布时分布时,取取nc=0或不规定这项自变或不规定这项自变量量.自自 由度可以是非整数由度可以是非整数.例如例如: p=1probf(3.32,2,30);的结果是的结果是0.04983.第36页/共170页37 PROBT(x,df,

33、nc):计算计算t分布分布函数分布分布函数(其中其中df为自为自 由度由度,nc为非中心参数为非中心参数).若参数若参数nc没有规定或取为没有规定或取为0,那那 么被计算的就是中心么被计算的就是中心t分布分布.自由度自由度df允许非整数允许非整数. PROBBNML(p,n,m)(0p1,n1,0mn):计:计 算二项分布的概率分布函数算二项分布的概率分布函数. POISSON(lambda,n)(其中其中 lambda,n): 计算柏松分布的概率分布函数计算柏松分布的概率分布函数. PROBNEGB(p,n,m)(其中其中0p1,n0,m0): 计算负二项分布的概率分布函数计算负二项分布的概

34、率分布函数. 第37页/共170页38 PROBHYPR(nn,k,n,x,r)(其中其中nn1,0knn, 0nnn,max(0,k+nnn)xmin(k,n) ):计算:计算 超几何分布的概率分布函数超几何分布的概率分布函数. 设设nn个产品中有个产品中有K个不合格品,抽取个不合格品,抽取n个样个样品,品, 其中不合格品数小于等于其中不合格品数小于等于x的概率为此函数值。可的概率为此函数值。可 选参数选参数r是不匀率,缺省为是不匀率,缺省为1,r代表抽到不合格品代表抽到不合格品 的概率是抽到合格品概率的多少倍。的概率是抽到合格品概率的多少倍。 PROBBNRM(x,y,r) 标准二元正态分

35、布的分标准二元正态分布的分布布 函数,函数,r为相关系数。为相关系数。(sasLan13.sas)第38页/共170页39 设连续型随机变量设连续型随机变量X的分布函数为的分布函数为F(x),对给定对给定的的p (0p1),若有若有xp使得使得F(xp)=p,则称则称xp为随机变量为随机变量X 的分位数的分位数(或称分布或称分布F(x)的的p分位数分位数).SAS系统提系统提供供 计算六种常见连续分布分位数的函数计算六种常见连续分布分位数的函数. CINV(p,df,nc)(其中其中 0p1,自由度自由度df0,非非 中心参数中心参数nc0)计算卡方分布的分位数计算卡方分布的分位数.例如例如:

36、 data; q1=cinv(0.95,3);put q1=q1; q2=cinv(0.95,3.5,4.5);put q2=; run; 结果是结果是q1=7.8147,q2=17.505 (在在LOG窗口显示窗口显示).第39页/共170页40 BETAINV(p,a,b)(其中其中:0p1,a0,b0): 计算贝塔分布的分位数计算贝塔分布的分位数.例如例如: x=betainv(0.001,2,4);的结果为;的结果为0.0101. FINV(p,ndf,ddf,nc)(其中其中 0p1,分子自由分子自由度度 ndf0,分母自由度分母自由度ddf0,非中心参数非中心参数nc0): 计算计

37、算F分布的分位数分布的分位数.例如以下例如以下DATA步计算步计算的的 结果为结果为 q1=4.1028,q2=7.5838. data _null; q1=finv(0.95,2,10); put q1=; q2=finv(0.95,2,10,3.2); put q2=; run;第40页/共170页41 TINV(p,df,nc)(其中其中0p1,自由度自由度df0 ): 计算计算t分布的分位数分布的分位数.若若nc没有规定或取没有规定或取nc=0,计算计算 的是中心的是中心t分布的分位数分布的分位数.若若nc的绝对值很大的绝对值很大,使用使用的算的算 法可能失败法可能失败.这种情况函数得

38、到一个缺失值这种情况函数得到一个缺失值. PROBIT(p)(0p1):计算标准正态分布的分:计算标准正态分布的分位位 数数.是概率函数是概率函数PROBNORM的逆函数的逆函数.如果随机如果随机变量变量 XN(0,1),则则 PXprobit(z)=z,这个函数产生,这个函数产生的的 结果在结果在5和和5之间之间. GAMINV(p,a)(其中其中:0p1,a0):计算伽马:计算伽马分布分布 的分位数的分位数.例如例如:x=gaminv(0.75,3.5);的结果为的结果为4.51857.第41页/共170页42 设有一组观测数据设有一组观测数据:x1,x2,xn(存放在变量存放在变量X1

39、Xn或或X、Y、中中).SAS系统为我们提供一类函系统为我们提供一类函数数(共共 15个个),用于计算这组样本值的有关统计量用于计算这组样本值的有关统计量.这类这类函数函数 要求自变量是数值要求自变量是数值.它们是它们是: ( 1 ) 均 值 :均 值 : M E A N ( o f x 1 - x n ) 或) 或MEAN(x,y,z,).例如例如 x=mean(2,6);结果为;结果为4. x=mean(1,2,3,2); 结果为结果为2. (2)最大值:最大值:MAX(of x1-xn)或或 MAX(x,y,). (3)最小值:最小值:MIN(of x1-xn)或或 MIN(x,y,).

40、样本统计样本统计函数函数第42页/共170页43 (4) 非缺失数据的个数:非缺失数据的个数: N(of x1-xn)或或 N(x,y,). (5) 缺失数据的个数:缺失数据的个数: NMISS(of x1-xn) 或或 NMISS(x1,x2,). (6)求和:求和:SUM(of x1-xn) 或或 SUM(x1,x2,). (7)方差:方差:VAR(of x1-xn) 或或 VAR(x1,x2,). (8)标准差:标准差:STD(of x1-xn)或或 STD(x1,x2,). 例如例如 x=std(2,6);和;和x=std(2,6); 的结果都是的结果都是2.828427. x=std

41、(2,4,6,3,1);的结果为;的结果为1.923538.第43页/共170页44 ( 9 ) 标 准 误 :标 准 误 : S T D E R R ( o f x 1 - x n ) 或或STDERR(x1,x2,). 例如例如: x=stderr(2,6,3,4);或;或 x=stderr(2,6,3,4,);的结果都是;的结果都是0.8539126。 (10) 变异系数:变异系数:CV(of x1-xn)或或 CV(x1,x2,). ( 1 1 ) 极 差 :极 差 : R A N G E ( o f x 1 - x n ) 或或RANGE(x1,x2,). (12)偏差平方和偏差平方

42、和(校正平方和校正平方和): CSS(of x1-xn)或或 CSS(x1,x2,). 该函数计算非缺失自变量关于均值的偏差平方和该函数计算非缺失自变量关于均值的偏差平方和. (13) 未校正的平方和:未校正的平方和: USS(of x1-xn) 或或 USS(x1,x2,). 该函数计算非缺失自变量的该函数计算非缺失自变量的(未校正未校正)平方和平方和.第44页/共170页45 (14)偏度:偏度: S K E W N E S S ( o f x 1 - x n ) 或或SKEWNESS(x1,x2,). 该函数计算非缺失自变量的偏斜度该函数计算非缺失自变量的偏斜度. (15) 峰度:峰度:

43、 K U R T O S I S ( o f x 1 - x n ) 或或KURTOSIS(x1,x2,). 该函数产生非缺失自变量的峰度统计量该函数产生非缺失自变量的峰度统计量.它要求它要求至至 少有少有4个非缺失自变量个非缺失自变量. ORDINAL(k,x1,x2,xn)返回数值列表返回数值列表x1, x2,xn中第中第k小的值小的值. (saslan10.sas)第45页/共170页46 设随机变量设随机变量的分布函数为的分布函数为F(x),称随机变量称随机变量的的 抽样序列抽样序列1,2,为为F(x)分布随机数分布随机数.产产生生 各种常用分布的随机数是随机模拟方法的基各种常用分布的

44、随机数是随机模拟方法的基础础.SAS 系统提供产生系统提供产生11种常见分布随机数的函数种常见分布随机数的函数. 均匀分布随机数函数均匀分布随机数函数: UNIFORM(seed)和和RANUNI(seed). 标准正态分布随机数函数:标准正态分布随机数函数: NORMAL(seed)和和RANNOR(seed).随机数随机数函数函数第46页/共170页47 利用这个函数经变换还可以得到一般正态利用这个函数经变换还可以得到一般正态分布随机数及对数正态随机数分布随机数及对数正态随机数.例如记例如记 X=M+sqrt(SQ)rannor(seed) Y=exp(M+sqrt(SQ)rannor(s

45、eed)=exp(X) 那么那么X是均值为是均值为M、方差为、方差为SQ的正态随机变量;的正态随机变量; Y是对数正态变量是对数正态变量,均值为均值为exp(M+SQ/2),方差方差为为 exp(2M+SQ)*(exp(SQ)1). 指数分布随机数函数:指数分布随机数函数:RANEXP(seed). 伽马分布随机数函数:伽马分布随机数函数: RANGAM(seed,alpha) (其中其中 alpha0).第47页/共170页48 三角分布随机数函数三角分布随机数函数: RANTRI(seed,h)(其中其中0h1). 柯西分布随机数函数柯西分布随机数函数:RANCAU(seed). 二项分布

46、随机数函数二项分布随机数函数: RANBIN(seed,n,p)(其中其中n0为整数为整数,0p1). 泊松分布随机数函数:泊松分布随机数函数: RANPOI(seed,lambda) (其中其中lambda0 ). 离散分布随机数函数离散分布随机数函数: RANTBL(seed,p1,pi,pn) (其中其中0pi1(,),pi=1)第48页/共170页49 CEIL(x)-取取自变量自变量x的最小整数的最小整数.CEIL(4.5)=5. FLOOR(x)-取取自变量自变量x的最大整的最大整数数.Floor(4.5)=4. INT(x)-取取x的整数部分的整数部分.如如INT(4.5)=4.

47、 ABS(x)-求求x的绝对值的绝对值. MOD(x,y)-求求x除以除以y的余数的余数. SQRT(x)-求求x的平方根的平方根. DIGAMMA(x)-对自变量对自变量x计算计算GAMMA函数函数对数的对数的 导数导数. GAMMA(x)-对自变量对自变量x计算完全计算完全GAMMA函数函数.其他其他函数函数第49页/共170页50 LOG(x)-对自变量对自变量x求以求以e为底的自然对数为底的自然对数. LOG2(x)-对自变量对自变量x求以求以2为底的对数为底的对数. LOG10(x)-对自变量对自变量x求以求以10为底的对数为底的对数. ERF(x)-计算误差函数计算误差函数. EX

48、P(x)-计算计算e的的x次幂次幂.EXP(x)=ex. SIN(x),COS(x),TAN(x)-求求x的正弦,余弦和正切的正弦,余弦和正切. SINH(x),COSH(x),TANH(x)-求双曲正弦,余弦求双曲正弦,余弦和正切和正切 UPCASE(s)-把字符串把字符串s转化为大写字母。转化为大写字母。 LOWCASE(s)-把字符串把字符串s转化为小写字母。转化为小写字母。 SUBSTR(s,p,n)-从字串从字串s中第中第p个字符开始取个字符开始取n个个字符的子串连字符的子串连第50页/共170页51 LAGn(x)返回该自变量返回该自变量x前前n条观测条观测(记录记录)中该中该变变

49、 量的值量的值. DIFn(x)得到该自变量得到该自变量x的值减去前的值减去前n条观测条观测(记记录录) 中该变量的值中该变量的值. 例如数据集例如数据集AIR: date airdate airJAN49 112 JAN49 112 FEB49 118 FEB49 118 MAR49 132 MAR49 132 DEC49 118DEC49 118 JAN50 115 JAN50 115 FEB50 126 FEB50 126 MAR50 MAR50 14141 1 . . 第51页/共170页52 (1)(1)计算每月乘客数较上月增加的百分数计算每月乘客数较上月增加的百分数; ; (2)(

50、2)计算逐月乘客数较去年同期增加的百分数计算逐月乘客数较去年同期增加的百分数 Data lagdif; set dst.air_2; pct1=dif(air)/lag(air); pct2=dif12(air)/lag12(air);run;Proc print data=Lagdif; id date; var air pct1 pct2;Run;(sasLan14.sas)第52页/共170页53112112118112112115第53页/共170页54SASSAS日期常数和函数日期常数和函数 日期时间直接作为数字型常数:日期时间直接作为数字型常数: ddMMMyy D(例如例如 :

51、12JAN96d ) 日期操的函数:日期操的函数: DATE()取今天的日期作为取今天的日期作为SAS日期值日期值, TODAY()-取当日的日期作为取当日的日期作为SAS日期值日期值, DATETIME()-取当日的日期和时间作为取当日的日期和时间作为SAS日期时间值日期时间值, TIME()-取今天的时间作为取今天的时间作为SAS时间值时间值, HOUR(time | datetime)由由SAS的时间或日期时间得到小时,的时间或日期时间得到小时, MINUTE(time | datetime)-由由SAS的时间或日期时间得到分钟的时间或日期时间得到分钟, SECOND(time | da

52、tetime)-由由SAS的时间或日期时间得到秒钟的时间或日期时间得到秒钟, 第54页/共170页55 YEAR(date)-由由SAS日期日期date得到年得到年, MONTH(date)-由由SAS日期日期date得到月得到月, DAY(date)-由由SAS日期日期date得到日得到日, WEEKDAY(date)-由由SAS日期日期date得到星期几得到星期几(周日周日) QTR(date)-由由SAS日期日期date得到季度值得到季度值, MDY(month,day,year)-生成生成year年年month月月day日的日期值日的日期值, HMS(hour,minute,secon

53、d)-由小时由小时hour,分钟分钟minute,秒秒second生成时间值生成时间值, DHMS(date,hour,minute,second)-生成日期时间值,生成日期时间值, DATEPART (datetime)-取取SAS日期时时间值日期时时间值datetime的日期部分的日期部分,(sasLan15.sas)第55页/共170页56 INTNX(interval,from,n)-计算从计算从from开始经过开始经过n个间隔后的个间隔后的SAS日期。其中日期。其中interval可以取可以取YEAR、QTR、MONTH、WEEK、DAY等。比等。比如,如, INTNX(MONTH,

54、 16Dec1997d,3) 结果为结果为1998年年3月月1日。注意它总是返回一个周期的开始值。日。注意它总是返回一个周期的开始值。 INTCK(interval,from,to)-计算从日期计算从日期from到日期到日期to中间经过的中间经过的interval间隔间隔的个数,其中的个数,其中interval取取MONTH等等.比如,比如, INTCK(YEAR, 31Dec1996d, 1Jan1998d) 计算计算1996年年12月月31日到日到1998年年1月月1日经过的年间隔的个数,日经过的年间隔的个数, 结果得结果得2,尽管这两个日期之间实际只隔,尽管这两个日期之间实际只隔1年。年

55、。第56页/共170页57练习题练习题 1. 计算标准正态分布在计算标准正态分布在x=-3,-2,-1, 0, 1,2,3 时的分布函数时的分布函数F(x)和密度函数和密度函数 (x)的值的值; 2. 设随机变量设随机变量t(n),计算计算t分布的分位分布的分位数数tp(n),其中其中n=1,5,10,20; p=0.10,0.90, 0.95, 0.975; 3. 当日期值当日期值date=14JUL2010d时时,试问这一天是星期几试问这一天是星期几?第57页/共170页58数据步入门数据步入门 SAS语言是一种专用的数据管理、分析语言,它语言是一种专用的数据管理、分析语言,它提供了很强的

56、数据操作能力。这些数据操作能力表现提供了很强的数据操作能力。这些数据操作能力表现在它可以容易地读入任意复杂格式的输入数据,并可在它可以容易地读入任意复杂格式的输入数据,并可以对输入的数据进行计算、子集选择、更新、合并、以对输入的数据进行计算、子集选择、更新、合并、拆分等操作。另外,拆分等操作。另外,SAS系统还提供了用来访问其它系统还提供了用来访问其它数据库系统如数据库系统如Sybase、Oracle的接口,访问各种微的接口,访问各种微机使用的数据库文件,如机使用的数据库文件,如FoxPro、Excel的接口及向的接口及向导,并提供了一个导,并提供了一个SQL过程来实现数据库查询语言过程来实现

57、数据库查询语言SQL的功能。的功能。 SAS语言直接、间接用于数据管理的语句很多,本语言直接、间接用于数据管理的语句很多,本章只能介绍最常用的一些语句。章只能介绍最常用的一些语句。第58页/共170页59 SAS语言的编程计算功能主要在数据步实现。一语言的编程计算功能主要在数据步实现。一个个 SAS数据步相当于一个单独运行的程序。但是,数据步相当于一个单独运行的程序。但是,SAS语言又是一个专用数据处理语言,所以语言又是一个专用数据处理语言,所以SAS数据数据步有其它语言所没有的特点。我们以下面的简单例子步有其它语言所没有的特点。我们以下面的简单例子说明这一点:说明这一点:data a; pu

58、t x= y= z= ; input x y ;z=x+y; put x= y= z= ;cards; 10 20 100 200;run; (sasLan21.sas)第59页/共170页60 X=. Y=. Z=.X=10 Y=20 Z=30X=. Y=. Z=.X=100 Y=200 Z=300X=. Y=. Z=.NOTE: The data set WORK.A has 2 observations and 3 variables.运行后在运行后在LOG窗口显示如下记录:窗口显示如下记录:这个程序的运行流程是这样的:这个程序的运行流程是这样的: DATA语句标志了数据步开始,并指定了

59、数据步语句标志了数据步开始,并指定了数据步结束时要生成的数据集名字为结束时要生成的数据集名字为A(实际是(实际是WORK.A)第60页/共170页61 第一个第一个PUT语句要输出变量语句要输出变量X、Y、Z的值的值,但它们还都没但它们还都没有定义有定义,所以所以LOG窗口的结果显示为三个缺失值窗口的结果显示为三个缺失值. 下面是下面是INPUT语句,它从语句,它从CARDS语句后面的数据行中读语句后面的数据行中读取变量取变量X的值的值10,变量,变量Y的值的值20。 下一个赋值语句计算变量下一个赋值语句计算变量Z的值得到的值得到30。因此,。因此,LOG窗窗口中的第二行输出显示三个变量的值分

60、别为口中的第二行输出显示三个变量的值分别为10、20、30。 从从CARDS语句开始到空语句(;)的各行是非执行的,语句开始到空语句(;)的各行是非执行的,程序运行到程序运行到RUN语句,发现这是本数据步的最后一个语句,按语句,发现这是本数据步的最后一个语句,按一般的程序语言的规则,程序到这里就应该结束了一般的程序语言的规则,程序到这里就应该结束了,程序中的第程序中的第二行数据二行数据100 200就不能被读入就不能被读入.第61页/共170页62 但但SAS是一个专用的数据处理语言,所以,这个程序运是一个专用的数据处理语言,所以,这个程序运行到行到RUN语句后,先把读入的观测(这是第一个观测

61、)写入语句后,先把读入的观测(这是第一个观测)写入输出数据集输出数据集;并继续执行下面步骤。并继续执行下面步骤。 又返回到又返回到DATA语句后的第一个可执行语句开始执行,语句后的第一个可执行语句开始执行,并先把所有的变量置初值为缺失值并先把所有的变量置初值为缺失值.于是于是,第一个第一个PUT语句的结语句的结果显示三个变量均为缺失值,而不是上一步的果显示三个变量均为缺失值,而不是上一步的10、20、30。 下一个下一个INPUT语句从数据行中读入下一个观测,把变语句从数据行中读入下一个观测,把变量量X、Y赋值赋值100、200。读取位置由运行时设置的一个数据指。读取位置由运行时设置的一个数据

62、指针指示。然后计算变量针指示。然后计算变量Z的值得的值得300。 于是于是PUT语句输出的语句输出的X、Y、Z值分别为值分别为100、200、300。 第62页/共170页63 然后,运行控制跳过然后,运行控制跳过CARDS语句到空语句,到数据步语句到空语句,到数据步结尾,把第二个观测输出到数据集,结尾,把第二个观测输出到数据集, 再返回到数据步开头,把变量值赋初值为缺失值,所以再返回到数据步开头,把变量值赋初值为缺失值,所以第一个第一个PUT语句输出的三个变量值为缺失值。语句输出的三个变量值为缺失值。 然后运行到然后运行到INPUT语句,应该读入下一个观测,但是查语句,应该读入下一个观测,但

63、是查询数据指针发现已经读完了所有数据,所以本数据步结束,并询数据指针发现已经读完了所有数据,所以本数据步结束,并把两个观测写入数据集把两个观测写入数据集WORK.A中。中。 提交提交PROC PRINT;RUN;显示此数据集的内容如下:显示此数据集的内容如下: OBS X Y ZOBS X Y Z 1 10 20 30 1 10 20 30 2 100 200 300 2 100 200 300第63页/共170页64 从这个例子可以看出从这个例子可以看出SASSAS数据步程序和普通程序的一个重大数据步程序和普通程序的一个重大区别:区别:SASSAS数据步如果有数据输入数据步如果有数据输入,

64、,比如用比如用INPUTINPUT、SETSET、MERGEMERGE、UPDATEUPDATE、MODIFYMODIFY等语句读入数据等语句读入数据, ,则数据步中隐含了一个循环则数据步中隐含了一个循环, ,即数据步程序执行到最后一个语句后即数据步程序执行到最后一个语句后, ,会返回到数据步内的第会返回到数据步内的第一个可执行语句开始继续执行一个可执行语句开始继续执行, ,直到读入数据语句(直到读入数据语句(INPUTINPUT、SETSET、MERGEMERGE、UPDATEUPDATE、MODIFYMODIFY等)读入了数据结束标志为止才等)读入了数据结束标志为止才停止执行数据步停止执行

65、数据步, ,并把读入的各个观测写入在并把读入的各个观测写入在DATADATA语句中指定语句中指定的数据集内。如果没有数据输入而只是直接计算的数据集内。如果没有数据输入而只是直接计算, ,则数据步程则数据步程序不需要此隐含循环。数据步因为有这样一个隐含循环序不需要此隐含循环。数据步因为有这样一个隐含循环, ,所以所以也提供了用来查询某一步是第几次循环的特殊变量也提供了用来查询某一步是第几次循环的特殊变量_N_,_N_,它的值它的值为数据步循环计数值。为数据步循环计数值。 第64页/共170页65数数据据步步流流程程图图 第65页/共170页66创建创建SAS数据集数据集 使用使用SAS系统分析处

66、理数据系统分析处理数据,或者使用或者使用SAS过程分析数据之前过程分析数据之前,首先必须将这首先必须将这些数据转化为些数据转化为SAS数据集数据集. 用数据步输入数据可以直接输入;由文本文件读入;也可从已经形成的用数据步输入数据可以直接输入;由文本文件读入;也可从已经形成的SAS数数据集用许多不同的方法,根据需要整理后生成新数据集;然后使用一些据集用许多不同的方法,根据需要整理后生成新数据集;然后使用一些SAS过程进过程进行分析处理行分析处理.第66页/共170页67在在DATA步直接输入数据的步直接输入数据的一般形式一般形式:DATA DATA SAS-data-setSAS-data-set ; ; 变量属性设定语句; ; INPUT INPUT 语句; ; 其它语句; ; CARDS; CARDS; 数据行; ; RUN; RUN; data da1; input x y z; sum=x+y+z; cards; 1 3.1 5 3 2.3 7 6 3.4 6 ; run; 在在DATA步直接输入数据的步直接输入数据的 例子例子直接输入数据创建直接输入数据创建SAS数据集数据集第

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!