“公共管理定量方法学习”微信公众号
SAS系统概述
SAS(Statistical Analysis System)是一个集成软件系统,可用来解决多种问题:数据管理和数据挖掘,数据的报表和图形呈现,统计分析,业务规划、预测和决策支持,运筹学和项目管理,质量管理,应用程序开发,数据仓库,平台独立和远程计算。
SAS系统是一个由三十多个专用模块组成的大型集成式软件包。各模块之间既相互独立又相互联系,可分为四大部分:
1. SAS数据库
主要功能:数据管理、数据访问
主要组成模块:Base SAS模块
2. SAS分析核心
主要功能:数据分析
主要组成模块:
(1)SAS/STAT
SAS经典统计分析工具,提供了全面的统计工具以实现广泛的统计分析,包括方差分析、回归分析、属性数据分析、多元分析、生存分析、聚类分析和非参数分析等。它由50多个过程组成,每个过程分别实现某一种或一类统计方法。
(2)SAS/ETS
时间序列和经济计量分析工具,提供丰富的计量经济学和时间序列分析方法,是研究复杂系统和进行预测的有力工具。
(3)SAS/IML
交互式矩阵语言开发程序,提供了一种功能强大而灵活的矩阵编程语言,具有动态和交互式的特点,可以处理各种复杂的矩阵运算。
(4)SAS/OR
运筹管理分析工具,基于运筹学方法的决策支持工具。它包括一般与特殊的线性规划,并且包含用于项目管理的一整套方法。
(5)SAS/QC
质量控制和实验设计分析工具,提供了根据产品观测数据进行产品质量管理的一系列分析工具。
(6)SAS/INSIGHT
交互式数据探索和分析工具,SAS系统下一个完整的进行数据分析的子系统。用户可通过图形操作实现数据探索,也可以通过多重窗口将分析连接起来。
3. SAS开发及呈现工具
主要功能:数据呈现、应用开发
主要组成模块:
(1)SAS/GRAPH
SAS图形引擎,可将数据信息以多种图形生动地呈现出来。
(2)SAS/ASSIST
一个面向任务、菜单驱动的用户界面,集成了SAS系统的其他模块的各种功能。
(3)SAS/AF
一系列开发工具,帮助用户创建定制应用程序。SAS系统提供了交互式的开发环境和大量的面向对象的类,用户可快速地开发和部署应用程序。
(4)SAS/EIS
一个提供企业信息系统开发、运行和维护功能的快速开发工具和菜单驱动系统。企业信息系统可看作应用程序的集成,是用户能够通过图形或报告的形式方便的展现有关业务的重要信息。
4. SAS对分布处理模式的支持及数据仓库的设计
主要功能:分布式计算、数据仓库管理
主要组成模块:
(1)SAS/ACCESS
提供了目前许多流行数据库软件的接口,使用户能够透明访问其它类型的数据库文件。
(2)SAS/CONNECT
一个SAS对SAS的客户/服务器工具集,提供了远程计算服务使得应用逻辑可以在本地和远端分布执行,以及远端数据服务。
(3)SAS/SHARE
该模块实现了对数据库操作的并发性控制。
(4)SAS/WA
可视化数据仓库管理工具。它在其它SAS软件的基础上提供了一个建立数据仓库的管理层。
SAS系统界面
SAS应用工作空间(SAS Application Workspace)运行界面由以下部分组成:
1. 标题条:显示所在窗口名称或标题。
2. 系统菜单:提供了对于系统或当前激活的子窗口可直接操作的菜单项。
3. 命令框:用于输入并提交交互命令,提交命令点击左边的对号按钮或按回车键。
4. 工具栏:以按钮的形式提供了命令的快速执行方式。
5. 状态条:左边是消息栏,显示系统运行的当前状况;右边是当前文件夹,是所有读写文件的默认存放位置。
6. 子窗口区:
SAS资源管理器(Explorer):用于查看和管理SAS文件。
结果窗口(Results):以树型结构显示并管理结果目录。
程序编辑器(Editor):用于对程序进行文本编辑。
日志窗口(Log):显示SAS进程和提交的SAS程序的运行信息。
输出窗口(Output):显示提交的程序的输出结果。
打开指定窗口的两种方式:
1. 通过“View”菜单选择相应的项;
2. 在命令框输入相应的命令并提交。
保存当前窗口内容:
通过“File-Save或Save As”菜单。
SAS编程基础
SAS语言的编程规则与其它过程语言基本相同,一个SAS语句是由SAS关键词、SAS名字、特殊字符和运算符组成的字符串,并以分号(;)结尾;SAS注释语句的形式为:/*注释内容*/或 *注释内容。
SAS程序是SAS语句的集合,包括程序步和环境设置语句。程序步(Step)又分为数据步(Data Step)和过程步(Proc Step);环境设置语句不执行具体的操作,仅改变系统运行环境,对其后的程序产生影响。
数据步(Data Step)用于创建、修改数据集,以DATA语句开头,一般形式为:
DATA 语句; /*给出要产生的数据集的名字*/
INPUT 语句; /*对每个变量给出名字及类型*/
(用于DATA步的其它SAS语句)
CARDS; /*标志数据行开始*/
[数据行]
;
下面看一些简单的数据步(DataStep)编程案例:
1. DATA语句和SET语句
DATA语句表示一个数据步的开始,并给出正在创建的数据集的名字。SET语句给出用来创建新的数据集的已存在的数据集的名字。例如:
data year1999 year2000 year2001;
set year qtr month;
if year=1999 then outputyear1999;
else if year=2000 thenoutput year2000;
else if year=2001 thenoutput year2001;
run;
2. MERGE语句
MERGE语句是把两个或两个以上的数据集中的观测合并为新生数据集中的一个观测。例如:
data data3;
merge data1(in=in1) data2(in=in2);
by x1; /*数据集必须先按变量x1排序*/
if in1 and in2; /*变量x1取当前值的观测在data1和data2中都存在*/
run;
3. UPDATE语句
UPDATE语句是用一个修改数据集中的观测来修改一个主数据集。例如:
data new;
update oldmaster trans;
by id; /*数据集必须先按变量id排序*/
run;
4. BY语句
BY语句在DATA步中用以控制SET,MERGE,UPDATE或MODIFY语句的操作,并且建立特殊的分组变量。例如:
proc sort data=degress;
by state city;
run;
5. WHERE语句
从输入数据集中读满足条件的观测进行处理。例如:
data out;
set in;
where sex=’F’;
run;
6. OUTPUT语句
OUTPUT语句告诉SAS系统输出当前的观测到正被创建的数据集。例如:
data out1 out2;
set in;
if sex=’F’ then outputout1;
if sex=’M’ then outputout2;
run;
过程步(Proc Step)实现面向数据集的操作,包括处理、计算、分析、呈现等功能,以PROC语句开头,一般形式为:
PROC过程名 DATA=输入数据集 选项;
过程语句/选项;
过程语句/选项;
……
RUN;
下面看一些简单的过程步(ProcStep)编程案例:
1. TTEST过程
用于两样本均数检验,一般格式为:
PROC TTEST DATA=数据集;
CLASS分组变量;
VAR分析变量;
RUN;
2.ANOVA过程
用于方差分析,一般格式为:
PROC ANOVA DATA=数据集;
CLASS因素;
MODEL指标=因素;
RUN;
3. NPAR1WAY过程
当方差分析的正态分布假定或方差相等假定不能满足时,对单因素问题,可以使用非参数方差分析的Kruskal-Wallis检验方法。一般格式为:
PROC NPAR1WAYDATA=数据集 WILCOXON;
CLASS因素;
VAR指标;
RUN;
4. GPLOT过程
绘制散点图和曲线图,一般格式为:
PROC GPLOT DATA=数据集;
PLOT 变量*变量/选项;
RUN;
5. REG过程
用于回归分析,一般格式为:
PROC REG DATA=输入数据集选项;
VAR 可参与建模的变量列表;
MODEL 因变量=自变量表/选项;
PRINT 输出结果;
PLOT 诊断图形;
RUN;
6. MEANS过程、UNIVARIATE过程和FREQ过程
这三个过程用于简单的数据汇总。MEANS和UNIVARIATE过程对区间变量计算均值、标准差等数字特征,而FREQ过程对离散变量计算取值频数分布。
SAS程序运行
这里写一个简单的SAS程序,展示其如何在SAS中运行。例如,有100组学生的身高数据,完成以下操作:输入数据、查看数据、数据描述、绘制直方图,步骤如下:
1. 在Editor窗口输入代码:
data a1;
input x @ @;
cards;
173
165
……
168
175
;
proc print;
run;
proc univariate;
var x;
run;
proc gchart;
vbar x;
run;
2. 提交程序
提交程序有四种途径,可任选其一:在命令框直接键入命令SUBMIT并点击“对号”;敲击快捷键F3或F8;通过系统菜单“Run-Submit”提交;点击工具栏上的“小人”按钮。
3. 查看程序运行信息和输出结果
Output窗口显示输出结果,Log窗口显示程序运行信息:
领取专属 10元无门槛券
私享最新 技术干货