sas统计分析sas iml简介

sas统计分析sas iml简介

ID:7524384

大小:246.88 KB

页数:17页

时间:2018-02-17

sas统计分析sas iml简介_第1页
sas统计分析sas iml简介_第2页
sas统计分析sas iml简介_第3页
sas统计分析sas iml简介_第4页
sas统计分析sas iml简介_第5页
资源描述:

《sas统计分析sas iml简介》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第55章SAS/IML及其应用有些计算问题,若采用常规方法显得比较复杂,而采用矩阵运算就显得非常简单了。本章将扼要介绍SAS系统中的矩阵运算模块,即SAS/IML,包括SAS的IML概况、IML过程的语法结构和用IML进行实例分析等内容。55.1SAS的IML概况55.1.1什么是IML?由于矩阵(二维数组)概念建立在数组概念基础上,本书在叙述这两章的内容时也采用了相似的写作思路,因此建议在阅读本章前先阅读SAS的数组,以保证阅读的连贯性。SAS的IML过程是以矩阵运算为中心形成的一套内嵌编程语言,并且由于矩阵可以退化为一维矩阵(向量)甚至1×1矩阵(

2、单个变量),故IML过程中可以实现“面向变量、向量和矩阵”的编程,这对于初级SAS只能面向数据集的编程来说是一个不小的进步。55.1.2SAS为什么要开发IML过程?由于SAS的data步编程中采用了自循环的编译规则,使得初级SAS编程呈现出一种“降维”的现象,就是说在初级SAS编程中,可以用变量名操作一列数据的集合,而用一维数组就可以操作二维的数据表。这样的情况使得SAS入门变得更加轻松,回避了通用语言中定义数据结构和集合的步骤。不过data步自循环规则并非没有缺点,它割裂了数据集行与行之间的数据交互,由于一般的医学统计问题中,每行代表一个不同的观测

3、个体,因此这个缺点不会妨碍到数据的整理,但如果数据集表达的不是观测个体而是试验点或者相关矩阵等,这时就无法回避行与行之间的计算了。SAS希望通过在data步定义“临时数组”来曲线救国,可惜效果并不算好,与同类统计编程语言R相比,虽然SAS的内部运算十分快捷,但在可让用户使用的矩阵运算和面向对象编程方面远逊于对手。因此SAS大胆开发了IML过程,几乎完全移植了R语言的设计思路(至少表面上如此),以至于将IML称作SAS的过程步,不如说是SAS内嵌的另外一种语言。纵观SAS的发展历史也可以看出,它的设计理念完全遵循“拿来主义”,SAS的宏、SQL和IML都

4、是借鉴他人的产物,不过也正是这种“海纳百川,有容乃大”的做法使得SAS语言始终走在世界编程语言的前列,不仅在统计编程,同时也在数据库、矩阵运算、数据挖掘等方方面面有所建树。55.1.3SAS的IML过程是即时交互过程SAS的IML过程以quit为结束句,因此它的内部程序可以以单句的形式提交并运行,而不像其他过程步(比如ttest过程)那样只能整体运行,这就是所谓的即时交互过程,我们经常用到的即时交互过程除了SAS的IML之外还有SAS的SQL。prociml;resetprint;m1={45,17};quit;IML过程通过上段代码所示的方式进行编程

5、,当运行prociml后,系统将进入IML编程模式,SAS边框的左上角会提示:PROCIML正在运行;而当运行quit结束句之后,系统将退出IML编程模式。另外,在IML过程中,默认情况下生成的矩阵是不会自动显示到输出窗口的,需要使用print语句手动打印,不过SAS提供了一种便捷方式,就是在IML过程中重置打印模式,也就是上段代码中的resetprint控制语句,一旦提交了该语句,在整个IML过程中将会自动将产生的矩阵打印到输出窗口,比如上段代码中的m1生成时会自动显示在输出窗口中。显示的结果如下:M12rows2cols(numeric)45175

6、5.2IML过程的语法结构55.2.1IML过程中的矩阵英文单词Matrix(矩阵)本意是子宫、母体、孕育生命的地方,同时,在数学名词中,矩阵用来表示统计数据等方面的各种有关联的数据。这个定义很好地解释了Matrix代码制造世界的数学逻辑基础。因为这些数字是有规则地排列在一起,形状像矩形,所以数学家们称之为矩阵,一个m×n矩阵乃一m行n列的矩形阵列。矩阵一般由数值组成,但也可以由字符甚至某种结构组成。通过矩阵的变化,就可以得出方程组的解来。矩阵这一具体概念是由19世纪英国数学家凯利首先提出并形成矩阵代数这一系统理论。1.直接在IML中产生矩阵由于SAS

7、是一种弱语言,故除了个别(比如数组)情况外,SAS中的对象都可以不声明而直接使用,矩阵也不例外。IML过程中的矩阵有两种产生方法,一种是直接赋初值,另一种是由数据集转化而成,我们先来看看如何直接产生IML矩阵。首先运行IML过程步,并使用上节介绍过的resetprint子句将矩阵和输出窗口关联起来。prociml;resetprint;提交系统之后,我们可以看到SAS边框左上角会出现“PROCIML正在运行”的字样,说明系统已经处于IML编程模式,接下来就可以进行实际操作。对于IML矩阵来说,它分为数值型矩阵和字符型矩阵两种,必须强调的是,与数据集不同

8、,矩阵内部要么都是字符型的,要么都是数值型的,不可混杂使用。prociml;resetprin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。