1.5k likes | 1.81k Views
SAS (statistics analysis system) 统计软件简介. 顾世梁 扬州大学农学院 2010 年 3 月. 0 SAS 简介. 0.1 概况 SAS 是美国 SAS 软件研究所研制的一套大型集成应用软件系统,它具有完备的数据存取、管理、分析和展现功能。其创业产品 — 统计分析系统部分,以应有尽有、包罗万象和强大精准的数据分析能力,一直为业界推崇,被视为最权威的统计分析标准软件。 经过 30 多年发展, SAS 已被全世界 120 多个国家和地区的科研机构和人员普遍采用,涉及教育、科研、金融等各个领域。. 0.2 发生发展(历史).
E N D
SAS(statistics analysis system)统计软件简介 顾世梁 扬州大学农学院 2010年3月
0 SAS简介 0.1 概况 SAS是美国SAS软件研究所研制的一套大型集成应用软件系统,它具有完备的数据存取、管理、分析和展现功能。其创业产品—统计分析系统部分,以应有尽有、包罗万象和强大精准的数据分析能力,一直为业界推崇,被视为最权威的统计分析标准软件。 经过30多年发展,SAS已被全世界120多个国家和地区的科研机构和人员普遍采用,涉及教育、科研、金融等各个领域。
0.2 发生发展(历史) SAS(发音sass) 是“统计分析软件” (statistical analysis software) 的首字母缩写,由Jim Goodnight 和北卡罗莱那州立大学的同事(包括John Sall)于上世纪70年代初开始从事农业及生物试验研究数据分析。随着统计软件需求市场增大,于1976年成立了SAS软件研究所,主要从事统计计算软件开发和销售,逐步发展成为全球一流的商业智能软件和服务提供商。
公司大事记 1976:SAS软件研究院(北卡罗莱那州)成立;推出首个产品 - Base SAS软件; 1977:SAS由创业初期的7名员工组成; 1978:SAS的客户数达到了600; 1979:SAS公司软件第一次外销;SAS软件取得技术进步,可以运行在IBM的VM/CMS主机环境下; 1980:SAS欧洲总部在英国开张;公司迁于美国北卡州卡莉市的A座新址;SAS/GRAPH软件和SAS/ETS计量经济学软件以及SAS时间序列分析软件的图形展现模块发布; 1981:SAS软件销售速度加快;3000多个软件安装点上安装SAS 软件; 1982:欧洲总部搬迁到海德堡;亚太(新西兰办事处、澳大利亚分公司)成立;与DEC公司建立合作关系; 1983:E座办公楼竣工使用;SAS软件全球销量增加; 1984:项目管理软件上市;SAS 收购SYSTEM 2000 数据管理软件;SAS 软件扩展,从大型机到微型计算机。
公司大事记(续) 1985:与HP合作;SAS/AF、SAS/DMI和(SAS/IML)软件;首个PC DOS SAS System 版本(Base SAS 和SAS/RTERM 软件)推出;PC的微型机-大型机链接(SAS/C 编译器)上市; 1986:SAS软件研究所收购Lattice有限公司;与微软公司建立合作关系;SAS/QC 、SAS/IML 和SAS/STAT 软件上市; 1987:J座办公楼竣工;与苹果电脑合作;SAS/SHARE、DB2和SQL-DS;用C语言重新编写了SAS系统;6.03版上市; 1988:员工人数达千名;收购NeoVisuals公司;与Sun Microsystems 合作; MultiVendor Architecture(MVA)、SAS/ACCESS、SAS/ASSIST、SAS/CPE上市; 1989:面向Macintosh 的JMP软件上市。
公司大事记(续) 1990:与Intel合作;在中国成立分公司;全新的客户机/服务器计算功能支持先进的分布式计算模式;MVS、CMS 和 OpenVMS 6.06版本上市;SAS/CONNECT 软件和SAS/ACCESS 数据库接口系列上市; 1991:数据可视化功能集成到SAS/INSIGHT 软件覆盖范围越来越广的决策支持工具中; 1992:决策支持功能扩展;SAS垂直市场软件:制药行业的临床分析系统上市;SAS/CALC、SAS/TOOLKIT、SAS/PH-Clinical 和SAS/LAB 软件上市; 1993:R座大厦竣工;EIS上市;MVS、CMS、VMS、VSE、OS/2 和Windows 6.08版本上市。
公司大事记(续) 1994:SAS全球员工人数达3,000人;SAS/SPECTRAVIEW, SAS/SHARE*NET、JMP 上市; 1995:Rapid Warehousing Program;EIS市场领先;SAS for Macintosh(6.10版本)上市。面向Windows95、Windows NT 和UNIX 的Orlando(SAS System 6.11版本)上市; 1996:支持Web,JMP 软件和SAS 软件通过Windows 95 标志认证; 1997:SAS的全球员工人数达5,000人;S座办公楼竣工;SAS 收购生命科学统计软件Stat View;SAS 总裁 Jim Goodnight 荣获1997年 American Academy of Achievements颁发的荣誉;《Fortune》杂志的“美国100强公司”评比中排名第3;SAS/Warehouse Administrator、SAS/IntrNet 软件投入生产; 1998:SAS推出CRM、SAS/ACCESS、OLE-DB for OLAP 和SAS/Enterprise Reporter 和HR Vision 上市; 1999:SAS收入超过10亿美元;T座办公楼开放;SAS支持报刊调查工作;美国食品和药品管理局选择SAS技术,作为分析数据的标准。
公司大事记(续) 2000:SAS 在Intel Developer Forum 中将电子智能集成到64位计算中;SAS 将软件移植到Linux; 2001:SAS 庆贺公司成立25周年;用户评选SAS 为分析软件冠军; 2002:SAS 连续第6年荣登Fortune的“美国100强公司”名单;SAS 成立Rapid Risk Deployment;Sun、FEA初期解决方案合作伙伴; 2003:SAS 收购Marketmax;Bank of America Foundation、DPI、SAS in School 向北卡罗莱纳学校捐赠礼物;收购 OpRisk Analytics;IBM和 SAS成立战略联盟;推出SAS9.10; 2004:SAS CEO Jim Goodnight荣获 StevieTM Award for Best Executive奖;SAS历史上最重要的发布新的SAS9软件对商业智能行业带来革命性的影响;这是一个功能强大的分析软件,能够进行数百万个高质量的、自动化预测。
公司大事记(续) 2005:SAS CEO Jim Goodnight 在2004美国商业大奖中荣获StevieTM最佳企业管理人奖;新推出的SAS Enterprise ETL Server在性能方面无人能及; 2006:SAS实现年销售收入19亿美元; 2007:Ann Goodnight 进入北卡罗莱那大学董事会; 2008:销售收入为22.6亿美元;SAS在全球约有45,000家客户;《财富》全球500强企业前100家企业中有91家是SAS 客户;2007年销售收入的22%用于研发投入;SAS在全球设有400多个办事处。
0.3 SAS的特点 1)功能强大,统计方法齐、新、优 SAS提供了从基本统计数计算到各种试验设计的方差分析,相关回归分析以及多变量分析的各种统计分析过程,几乎囊括了所有的最新统计分析方法,其分析技术先进,可靠。有些机构和杂志只认SAS分析的结果。 2)使用简便,操作灵活 SAS以一个通用的数据步产生数据集,尔后以不同的过程用以完成各种数据分析。其编程语句简洁,短小,通常只需很小的几个语句即可完成一些复杂的运算,得到满意的结果。 3)运算速度快,联机帮助功能强大
4)SAS的模块化结构 SAS系统是一个组合软件系统,它一共由50个左右的功能模块组合而成。 SAS的基本部分是SAS/BASE模块,该模块是SAS系统的核心,承担着主要的数据管理任务,并管理SAS的用户使用环境,进行用户语言的处理,调用其它SAS模块和产品。 在SAS/BASE的基础上,用户还可以增加各种模块而增加不同的功能,如SAS/STAT(统计分析模块)、SAS/GRAPH(绘图模块)、SAS/OR(运筹学模块)、SAS/IML(交互式矩阵程序设计语言模块)等。
0.4 SAS的操作方式 SAS是第四代计算机语言的代表性软件,用户只需清楚干什么,不必清楚怎么做!使用相对方便,用户可以完成所有统计分析、预测、建模和模拟抽样等工作。 此外,SAS还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,用户能方便地实现各类特殊统计要求。
1 SAS系统的工作环境 1.1 SAS的工作界面 菜单栏 工具栏 命令栏 窗体 窗口栏 状态栏
1.2 主要窗口 SAS启动时,默认会打开以下五个窗口: 1)增强型程序编辑器(Enhanced Editor)窗口 2)日志(Log)窗口 3)结果输出(Output)窗口 4)资源管理器(Explorer)窗口 5)结果(Results)窗口
1) 增强型程序编辑(Enhanced Editor)窗口 系统默认提供的程序编辑窗口,编辑SAS应用程序。以不同的颜色显示SAS程序中不同的部分,便于进行语法检查。 如用深蓝色表示数据步/程序步开始; 蓝色表示关键字; 棕色表示字符串; 浅黄色表示数据块; 红色表示可能的错误。 增强型程序编辑器窗口中的内容在保存时被存为SAS程序格式,实际上就是扩展名为“.sas”的纯文本文件。
2) Log窗口 Log窗口显示程序运行有关信息: 程序行,黑色,记录执行过的每一条语句。 提示,蓝色,以Note开始,提供系统或程序运行的一些常规信息,大多数时候我们可以视而不见。 警告,绿色,以Warning开始,一般在程序中含有系统可以自动更正的小错误时出现,此时会提供错误序列号。 错误,红色,以Error开始,当出现该信息说明程序有错误,执行结构必然是不正确的。 窗口内容可保存为扩展名为“.log”的文本文件。
3) 结果输出(Output)窗口 该窗口显示SAS程序输出结果。 结果输出窗口中的内容是分页显示的,页上方显示标题,日期和时间。 当结果输出非常长时,为了能够方便地查阅某一部分结果,可以利用结果(Results)窗口中的目录树进行快速定位。 结果输出窗口中的内容可以保存为扩展名为.lst的纯文本文件。
4) 结果(Results)窗口 结果窗口帮助用户浏览和管理所提交SAS程序的输出结果。 在该窗口中将SAS系统的所有输出结果依次按照目录树的结构加以排列,每一个过程步的结果被表示为一个节点,展开该节点就可进一步看到表示不同输出内容的子节点,使用鼠标右键单击每个节点,就可对输出结果的各部分进行察看、存储、打印、删除等操作。
5) 资源管理器(Explorer)窗口 资源管理器窗口的作用类似于Windows操作系统的资源管理器,用于浏览和管理SAS系统中的各种文件。 6) 其它子窗口 除了增强型编辑器外,SAS还提供了普通的程序编辑(program editor)窗口; 当使用SAS作图时,相应的统计图会在专门的Graph窗口中输出; SAS的数据集显示窗口Viewtable等。
1.3 菜单和工具栏 SAS系统主菜单是动态变化的,随当前激活窗口不同而有不同的组织结构,提供不同的主菜单命令。 其中的主要命令及功能: File(文件)-支持SAS文件的调入、保存及打印。 Edit(编辑)-支持基本编辑操作(例如:清空、复制、剪切等)。 View(浏览)-支持SAS系统用户在多窗口之间切换。 Tools(工具)-提供对各种输出结构进行编辑的工具,如:表格、图形、报告等,并支持进行系统环境和状态的设置。 Run(运行)-用于执行或调用程序。 Solutions(解决方案)-支持用户进行统计分析。
工具栏图标提供了常见任务的快捷操作方式 帮助 打印预览 剪切 建立新库 打开 暂停 保存 撤销 打印 清除 执行 新建 粘贴 复制 资源浏览器窗口
1.3 命令栏 在命令栏可输入一些命令,可方便地实现某些功能。如clear, undo, recall等。 在命令栏内还可输入help,获得即时帮助。 如help anova,即可获得有关anova procedure的帮助信息,对软件的正确操作很有帮助。
2 SAS程序语句基本结构简介 2.1 数据步与过程步 SAS软件就是将数据交给SAS过程(proc)计算分析并显示结果的软件。很多统计分析难度较大,常令非统计专业人士头疼。用SAS软件,你不必清楚怎么做,但需清楚做什么!只需将数据按一定格式准备,交由过程步即可实现相应的统计分析。 在SAS中主要有两种程序步: 数据步(Data Step)创建用于统计分析的数据集。 过程步(Proc Step)将数据集完成相应统计分析。
2.2 SAS语句基本结构 SAS程序由若干条语句组成,多数语句由特定的关键字开始,语句中可包含变数名,运算符等,它们之间以空格分隔。最终以分号“;”结束。 PROC 过程名 <DATA=数据集名> <选项>; <VAR 变数;>,<WHERE 条件表达式;>,<BY 变数;>, <class 变数;>等。 RUN; 注:尖括号内的选项可以省略,过程将按最通常的情况来处理,即:处理最新建立的SAS数据集及其中所有的变数。
2.3 一行多句与多行一句 SAS多句语句可在同一行内出现; 有些语句需多行完成。 如:if … then statement 1; else if … then statement 2;else statement 3; Do … end; Do while … end; Do until … end; select; when (条件1) 执行语句A; when (条件2) 执行语句B; … otherwise 执行语句Z;
2.4 注释 为使长程序清晰易读,在相应程序段间可以使用空行分隔,也可以使用注释加以说明。其基本格式为: 注释语句:使用星号“*”开始,可占多行,以分号“;”结束。 注释段落:用字符组“/*”和“*/”包括起来的任何字符内容,可占多行。 注释语句显示为绿色。
3 SAS的数据(data)步 通俗的讲,SAS软件就是将数据交给SAS过程(proc)计算分析并显示结果的软件。很多统计分析难度较大,常令非统计专业人士头疼。有了SAS软件,你不必清楚怎么做,但应清楚做什么!只需将数据按SAS过程步的格式准备好,交由其完成相应的统计分析。但统计分析大多比较复杂,不同的过程有不同的数据格式要求,数据准备亦有一定的难度。对于复杂的数据准备,拟在稍后再作交代,本节只讨论相对简单的数据准备。
3.1 永久库和临时库 SAS程序运行的数据需存放在逻辑库中的某个数据库中,data 语句(步)生成的数据以数据名的方式驻存在数据库中。 数据库可以分为永久库和临时库两种。 临时库只有1个,名为work,它在每次启动SAS系统后自动生成,关闭SAS时,库中的所有内容自动删除。 永久库通过Libname语句由用户自行定义,永久库的数据文件将被保留,可以重复使用。
3.2 data 语句 DATA语句的功能: 1)标志数据步开始; 2)命名将要创建的SAS数据集; DATA语句一般格式:data数据集名; 如:data new; 此时在临时库work中生成了一个名为new的数据集。若原来就有该数据集,则把其中的内容清除。
若 libname mylib ‘e:\work’; Data mylib.mydata; 则系统逻辑库中建立mylib数据库,其中有mydata数据集(e:\work\mydata.ssd),其中的数据可重复使用。以后若调用该数据集(先需用libname指明路径,并)需使用两级名称来指定,第一级库名,第二级数据集名,中间用“.”隔开。如:data=mylib.mydata。
3.3 Input 语句 Input语句的功能是确定变数的读入模式,即数据域中的数据对应了哪些变数。 基本格式为:input 变数名 <变数类型起止列数>; 例如: Input x y z; *确定x、y、z 三个变数; Input x1-x10; *确定x1-x10 十个变数; Input x$ y @@; *$指明变量x为字符变数,@@表明数据是连续读入的;
数据步实例1(连续性数据读入) data temp; *数据集为work.temp; input x y @@; *输入变数 x,y, @@意指连续输入; cards; *直接输入数据,数据块开始; 34 56 78 90 35 67 89 10 23 65 77 45 *数据块; ; *数据块结束;
数据步实例2(多种变数类型读入) Data class; Input name $1-10 sex $ age height weight; Cards; Zhang Shan F 18 176 75 Li Si M 19 163 55 Wang Wu F 17 169 70 Zhao Liu M 18 173 72 ; Procprint; Run; [eg5],[eg52]
3.4 Cards/datalines语句 Cards语句或datalines语句的功能相同,只是前者适用于任何版本,而后者只在8.0以后的版本中才适用。它们均可用于标志数据块的开始,随后紧跟需要读入的数据。格式为: Cards; 数据块 ; 需要注意的是数据块必须单独占一行或多行,最后表示数据块结束的分号也必须另起一行书写。
3.5 数据文件的读入 Data aaa; Infile ‘e:\work\eg6.txt’; Input x1-x4 @@; 即可将e:\work\eg6.txt中的数据x1-x4读入到aaa数据集中[eg6]。 几点注意:1)该命令只能读入txt文本或dbf文件;2)文本文件必须是纯文本格式(不带逗号、不带制表符或TAB符);3)也不宜有表头等格式。
3.6 导入数据 外部数据文件如 *.xls, *.txt, *.csv, *.dbf等可以通过数据导入的方式导入至数据集,此后即可与其他方式创建的数据集一样使用。 文件 导入数据 文件类型(有些选项) 导入至哪一个数据集(临时?永久?) 应用。这是一种更为常用的建立数据步的方式[eg7]。
4 SAS过程步之描述性统计 4.1 SAS过程步基础 PROC 过程名 <data=数据集名> <其他选项>; <Var 变数序列;>, <Where 条件表达式...;> <By 变数序列;> Run; 注:尖括号内的选项可以省略,过程将按最通常的情况来处理,即:处理最新建立的SAS数据集及其中所有的变数。
Data=数据集 该选项用于指明所需处理的数据集名,无此选项时将处理最后打开的数据集。 Var 语句指明分析一个或几个特定的变数。 如在数据集中有x、y、z三个变数,若只想对个别变数统计处理,则print过程如下: Proc print;*对变数列出显示; var x; *仅对x变数进行处理; Var x, y; *仅对x,y变数进行处理; Run;
Where语句 如果你想处理的不是整个数据集而只是其中符合某种条件的子集,那么where语句将会非常有用。 如上例中我们只想显示大于50的x变数的值,则在print过程中加入where语句如下: Where x>50; 如果条件变为x、y两个变数的值都要大于50,则where语句改为: Where x>50 and y>50;
By语句用于指定分组变数,如果你需要分组处理数据,例如要按(x)类别分组输出统计结果,采用by语句即可。By语句用于指定分组变数,如果你需要分组处理数据,例如要按(x)类别分组输出统计结果,采用by语句即可。 注意:在用by语句时,SAS要求by指定的变数已经按序排列。若原数据未经排序,应使用sort过程对相应的分组变数(x)进行排序。 格式为: Proc sort <data=数据集名>; By x; Proc print; By x; Run; [eg8]
4.2 描述性统计过程 从科研或生产中获得的数据常需计算一些基本的统计数,以反映数据的分布和(/或)变异特性,这可由SAS的一个或几个描述性统计分析过程实现。 这些过程主要有:means, summary, univariate。
MEANS语句的选项 设定结果输出的统计数,如STD, MEAN, VAR等(可选项有CSS, CV, KURTOSIS, MAX, MEAN, MEDIAN, MIN, N, P1, P99, PROBT, Q1, Q3, QRANGE, RANGE, SKEWNESS, STDDEV, STDERR, SUM, SUMWGT, T, VAR等共38项)。 未指定时,输出的统计数只有N, MEAN, STD, MAX和MIN。 NOPRINT,将不输出分析结果。 MAXDEC=n,设定结果输出时的小数位数,缺省为[eg9]。
Means 过程可以再加一个OUTPUT语句,它的作用是将下列统计数以新的变数名输出(利用),以防新的统计数的计算将此前的结果冲掉。 Output out=数据集名(若无指定数据集,自动以data*命名),其后可将下列之一统计数给以新的变数命名,如CSS=aa。这些统计数有:CSS, CV, IDGROUP, IDGRP, KURTOSIS, LCLM, MAX, MAXID, MEAN, MEDIAN, MIN, MINID, N, NMISS, OUT, P1, P10, P25, P5, P50, P75, P90, P95, P99, PROBT, Q1, Q3, QRANGE, RANGE, SKEWNESS, STDDEV, STDERR, SUM, SUMWGT, T, UCLM, USS, VAR.
4.4 SUMMARY过程 SUMMARY过程的使用和MEANS过程类似,差别在于: SUMMARY过程通常不输出计算结果,一般在PROC SUMMARY语句选项中设定print,以给出分析结果。 在默认情况下,即不使用VAR语句指定分析变数时,SUMMARY过程仅进行对观测值的计数工作,其他各种统计数的计算都将被忽略。
4.5 UNIVARIATE过程 univariate过程除可计算基本统计数之外,主要用于计算分位数(Quartile,中位数为一特例,即50%分位数)、绘制分布图、次数表及正态分布测验等。 Univariate 过程的重点在于描述变量的分布。
Univariate 过程提供的描述性统计数有: 基本统计量 N MEAN STD(标准差) CV SUM VAR(方差) RANGE; 百分位数描述 MIN P1 P5 P10 Q1 MEDIAN Q3 P90 P95 P99 MAX; 与假设检验有关的统计量 STDERR(标准误) T; 图形:茎叶图、盒形图及正态概率图。 语句行例: procunivariate data=aaa plot; [eg10]
4.6 SAS/INSIGHT进行描述统计分析 建立所需分析的数据集 选择菜单【Solutions】【Analysis】【Interactive Data Analysis】打开SAS/INSIGHT窗口 打开要分析的数据集 【Analyze】【Distribution】
4.7 窗口的管理 SAS窗口由DMS (display management sysytem) 管理,一般将其分成输出、结果、日志和程序编辑窗等。在运行程序后,输出、日志等窗口的内容将在其中累积,有时影响相关信息的查看,有必要将其清除。 方法一是在命令栏内输入clear命令; 方法二是采用 dm 语句: Dm ‘output; clear; log; clear;’;
5 统计推断 统计推断是统计分析的重要内容,用于显著性测验的SAS过程主要有MEANS和TTEST。 上述两过程均可对总体平均数是否为零或两个平均数是否相等做出测验。 在成对比较时,一般先计算对比差值 d,然后利用MEANS过程进行分析。 组群比较则直接利用TTEST过程完成。