数据分析圣手SAS

Author: 张释月 Date: 1998年 第30期 15版

  在《电脑报》前几期非主流软件栏目中相继介绍了SPSS和STATISTICA/W5.0统计分析软件,在文中提到了世界三大统计分析软件之一SAS——统计分析系统(STATISTICAL ANALYSIS SYSTEM)(^301501^),本文将对SAS系统作一个简单的介绍。SAS发展到今天已经是一个由三十多个专用模块组成的大型集成式软件包。本文着重介绍SAS的界面基本情况和模块功能。有兴趣的读者可以和我(Email: zmzhang@263.net)联系。
#1  一、SAS的功能模块简介
  SAS系统是由众多模块组成的系统。其中Base  SAS模块是SAS系统的核心。其它各模块均在Base SAS提供的环境中运行。用户可选择需要的模块与Base SAS一起构成一个用户化的SAS系统。
  ·Base SAS
  Base SAS作为SAS系统的核心,负责数据管理,交互应用环境管理,进行用户语言处理,调用其它SAS模块。Base SAS 为SAS系统的数据库提供了丰富的数据管理功能,还支持标准的SQL语言对数据进行操作。Base SAS能够制作从简单列表到比较复杂的统计报表。 Base SAS可进行基本的描述性统计及基相关 系数的计算,进行正态分布检验等。
  ·SAS/GHAPH
  SAS/GHAPH可将数据及其包含着的深层信息以多种图形生动地呈现出来,如直方图、圆饼图、星形图、散点相关图、曲线图、三维曲面图、等高线图及地理图等。SAS/GHAPH提供一个全屏幕编辑器,提供多种设备程序,支持非常广泛的图形输出设备以及标准的图形交换文件。
  ·SAS/ASSIST
  SAS/ASSIST为SAS系统提供了面向任务的菜单界面,借助它可以通过菜单系统来使用SAS系统其它产品。它自动生成的SAS程序既可辅助有经验的用户快速编写SAS程序,又可帮助用户学习SAS。
  ·SAS/AF
  SAS/AF是一个应用开发工具。用户使用SAS/AF可将包含众多功能的SAS软件作为方法库,利用 SAS/AF的屏幕设计能力以及SCL语言的处理能力来快速开发各种功能强大的应用系统。SAS/AF也了采用了OOP(面向对象编辑)技术,使用户可方便快速开发各类具有图形用户界面(GUI)的应用系统。
  ·SAS/EIS
  SAS/EIS是决策工具,也是一个快速应用开发工具。SAS/EIS完全采用新兴的面向对象的编程模式(OOP)。EIS以生动直观的方式(图或表)将关键性或总结性信息呈现给使用者。
  ·SAS/ACCESS
  为了对众多不同格式的数据进行查询、访问和分析,SAS/ACCESS提供了与目前许多流行数据库软件的接口,利用SAS/ACCESS,可建立外部其它数据库的一个统一的公共数据界面。SAS/ACCESS提供的接口是透明的和动态的。用户不必将此文件当作真正存储着数据 的SAS数据集一样使用,而只需在SAS中建立对外部的描述(即VIEW)文件,便可将此文件当作真正存储着数据的SAS数据集一样使用。对一些经常使用的外部数据,可以利用SAS/ACCESS将数据真正提取进入SAS数据库。 SAS/ACCESS 提供的接口是双向的,既可将数据读入SAS,也可在SAS中更新外部数据或将SAS数据加载到外部数据库中。目前,SAS/ACCESS支持的数据库主要有:IML-DL/I,SQL/DS,DB2,ADABAS,Rdb,ORACLE,Sybase,INGRES,Informix,DBF/DIF,ODBC等。
  ·SAS/STAT
  SAS/STAT覆盖了所有的实用数理统计分析方法,是国际统计分析领域的标准软件。 SAS/STAT提供了十多个过程,可进行各种不同模型或不同 特点数据的回归分析,如正交回归/面回归、响应面回归、logistic回归、非线性回归等,且具有多种模型选择方法。可处理的数据有实型数据、有序数据和属性数据,并能产生各种有用的统计量和诊断信息。在方差分析方面, SAS/STAT为多种试验设计模型提供了方差分析工具。另外,它还有处理一般线性模型和广义线性模型的专用过程。在多变量统计方面, SAS/STAT为主成分分析、典型相关分析、判别分析和因子分析提供了许多专用过程。SAS/STAT还包含多种聚类准则的聚类分析方法。
  ·SAS/QC
  SAS/QC为全面质量管理提供了一系列工具。它也提供一套全屏幕菜单系统引导用户进行标准的统计过程以及试验设计。SAS/QC提供了多种不同类型控制图的制作与分析。Pareto图(排列图)可用于发现需优先考虑的因素,Ishikawa图(鱼骨图)可用于直观地进行因果分析。
  ·SAS/ETS
  SAS/ETS提供丰富的计量经济学和时间序列分析方法,是研究复杂系统和进行预测的有力工具。它提供方便的模型设定手段、多样的参数估计方法。
  ·SAS/OR
  SAS/OR提供全面的运筹学方法,是一种强有力的决策支持工具。它辅助人们实现对人力、时间以及其它各种资源的最佳利用。 SAS/OR包含通用的线性规划、混合整数规划和非线性规划的求解,也为专门的规划问题提供更为直接的解决办法,如网络流问题、运输问题、分配问题等。
  ·SAS/IML
  SAS/IML提供功能强大的面向矩阵运算的编程语言,帮助用户研究新算法或解决SAS中没有现成算法的专门问题。SAS/IML中的基本数据元素是矩阵。它包含大量的数学运算符、函数和例行程序,用户用很少的语句便可执行很复杂的计算过程。
  ·SAS/WA
  SAS/WA(Warehouse Administrator)是建立数据仓库的集成工具,它在其它SAS软件的基础上提供了一个建立数据仓库的管理层,包括:定义数据仓库和主题,数据转换和汇总,汇总数据的更新,Metadata的建立、管理和查询,Data marts和Info marts的实现。
  ·SAS/MDDB Server
  SAS/MDDB Server是SAS的多维数据库产品,主要用于在线分析处理(OLAP),可将从数据仓库或其它数据源来的数据以立体阵列的方式存储,以便于用多维数据浏览器等工具快速和方便地访问。
  ·SAS/IntrNet
  SAS/IntrNet为SAS Web应用提供了数据服务和计算服务,包括htmSQL,它为一UNIX Web服务器的CGI程序,使得能通过支持Web浏览器动态查询SAS数据或外部的关系型数据库;SAS ODBC Driver使得能通过支持ODBC的Windows Web服务器来访问SAS数据;SAS Driver for JDBC使得可以通过Java applet来查询SAS数据; SAS/IntrNet Application Dispatcher使得可以通过Web浏览器动态地递交SAS程序到SAS应用服务器执行,并将结果返回浏览器。
  ·SAS/GIS
  SAS/GIS集地理位置系统功能与数据的显示分析于一体。它提供层次化的地理信息,每一层可以是某些地理元素,也可与用户定义的主题(例如:人口、产值等)相关联。用户可交互式地缩小或放大地图,设定各层次显示与否,并利用各种交互式工具进行数据显示与分析。
  ·SAS/ITSV
  IT Service Vision(ITSV)是企业的全面IT服务的性能评估和管理的软件,这些IT服务包括计算机系统、网络系统、Web服务器和电话系统等。ITSV将不同来源的数据进行整理和组织,存放于性能数据仓库中,用GUI或批处理的方式产生组织任意层面的报告。系统程序员及网络工程师能借此识别、研究并解决有关问题,业务分析人员能借此制定资源管理的总体策略,CIO和数据中心经理能借此定期地得到所需的IT运作的汇总和分析报告。
  ·SAS/CFO Vision
  SAS/CFO Vision用于财务整合和报告,内部包含了会计知识,为日常财务工作提供了现成的程序,并提供了访问所有主要数据源的接口。它主要用于;访问财务和非财务的有关住处整合财务数据,通过一个财务信息仓库来管理业务结构,通过财务报告和分析帮助理解财务的结果,并在组织内交流关键的业务结果信息。
#1  二、SAS基本运行环境介绍
  SAS的基本运行环境是一个交互式用户界面,被称为显示管理系统(DISPLAY MANAGER),如^301501b^。
  进入显示管理系统(DISPLAY MANAGER)可看到以下三个主要窗口PROGRAM EDITOR窗口:编写SAS程序的文本编辑器;
  LOG窗口:显示有关程序运行的信息;
  OUTPUT窗口:显示有关程序的输出。
  显示管理系统命令可通过直接输入命令、按功能键、使用下拉菜单、工具栏四种来实现。文本编辑行命令:发布在文本编辑器的数字区,进行文字编辑工作,进入这个窗口由显示管理系统命令‘NUM’控制,用‘END’命令可以退出当前窗口。
#1  三、SAS程序运行的一个实例
  准备和提交一个简单的SAS程序。
  1.在PROGRAM  EDITOR窗口中键入程序;
  title '房屋价格低于$150,000';
  proc print data=sasuser.houses;
  var street bedrooms baths price;
  where price<150000 and bedrooms gt2;
  run;
  2.提交此程序,可通过以下办法实现:
  方法一:命令框中输入“SUBMIT”;
  方法二:从LOCALS下拉菜单中选择“SUBMIT”;
  方法三:按下F3(SUBMIT所对应的功能键);
  方法四:按工具栏中与SUBMIT命令对应的图标。
  3.通过查看LOG窗口的信息,检查程序是否出错,如果出错,用RECAL命令重新调回提交的程序并修改它。
  4.在OUTPUT窗口查看运行的结果(如^301501c^)。
  5.存储程序:发布END命令回到PROGRAM EDITOR窗口,再用‘RECALL’调回此程序,在FILE菜单中选择“SEVE AS”。