本教程基于SAS系统的8.2版本写成,全书分成四大部分,第一部分(前5章)为SAS 8.2的入门篇主要介绍了SAS的基本界面操作、编程基础和数据管理入门等方面的内容;第二部分(6章到第15章)为统计应用篇,介绍了在SAS 中各种基本统计分析和常用高级分析的编程实现方法;第三部分(第16章到第19章)为多元分析篇,介绍了多元统计模型在SAS中的编程实现方法,包括了典型相关与对应分析等近年来应用较广的方法;第四部分(20章到24章)为操作进阶篇,介绍了对专业用户非常重要的SAS系统高级功能,如宏语言、SQL等,其中IML矩阵语言、ODS功能和DDE的自动报表功能在国内均属首次介绍。教程中的部分内容都是几编辑基于对SAS的使用经验与理解编写而成,大都经过实际应用的检验,因此教程内容具有较高的客观性和实用性。
本书既可作为大专院 校统计专业师生的入门教材,也可作为有关数据管理与分析处理专业人员参考用书。
第1章 SAS 8.2使用入门
1.1 SAS系统简介
1.1.1 概况
1.1.2 SAS的模块功能
1.1.3 SAS的操作方式
1.1.4 SAS的功能与运行速度
1.2 界面操作入门
1.2.1 SAS的启动与退出
1.2.2 SAS的主窗口
1.2.3 SAS的子窗口
1.2.4 菜单栏与工具栏
1.3 SAS系统的文件管理
1.3.1 SAS文件和SAS的逻辑库
1.3.2 使用资源管理器窗口管理SAS文件
第2章 SAS8.2编程入门
2.1 SAS程序的使用常识
2.1.1 SAS语句的基本结构
2.1.2 数据步与过程步
2.1.3 SAS程序的书写规则
2.1.4 SAS程序的运行
2.1.5 SAS程序中的注释
2.2 SAS程序的过程步
2.2.1 逻辑库和逻辑文件名
2.2.2 数据步的基本结构
2.3 SAS程序的过程步
2.3.1 过程步的基本结构
2.3.2 过程步的基本结构
2.4 程序的修改与调试
2.5 结构化语句简介
2.5.1 分支(条件)语句
2.5.2 循环语句
第3章 数据管理入门
3.1 SAS数据集的基本格式
3.1.1 数据集的基本结构
3.1.2 数据集的描述部分
3.1.3 数据集的数据部分
3.2 数据集的建立
3.2.1 直接输入方式建立数据集
3.2.2 外部文件读入方式建立数据集
3.2.3 更灵活地建立数据集
3.3 数据的导入和导出
3.3.1 使用向导实现数据的导入和导出
3.3.2 编程实现数据的导入和导出
3.4 数据文件的编辑与整理
3.4.1 SAS数据步中的运算符
3.4.2 数据集内容的拷贝
3.4.3 变量的增加
3.4.4 变量的筛选
3.4.5 变量名称与类型的更改
3.4.6 数据集的排序
3.4.7 数据集的记录筛选
3.4.8 数据集的纵向连接
3.4.9 数据集的横向合并
3.5 DATASETS过程介绍
3.5.1 DATASETS过程的基本格式
3.5.2 语句说明及示例
3.6 利用菜单和窗口操作实现数据管理
3.6.1 数据集的建立
3.6.2 数据浏览格式的更改
3.6.3 数据集的编辑整理
第4章 SAS/ASSIST视窗简介
4.1 ASSIST模块概述
4.1.1 ASSIST模块的启动
4.1.2 ASSIST模块的功能介绍
4.2 ASSIST模块操作入门
4.2.1 打开主对话框
4.2.2 对话框的基本操作
4.2.3 进一步了解ASSIST的界面
第5章 SAS/Analyst模块操作入门
5.1 分析员模块概述
5.1.1 分析员模块的操作界面
5.1.2 分析员模块的菜单分类
5.1.3 分析项目的管理
5.2 使用分析员进行数据管理
5.2.1 新建数据集
5.2.2 数据集的打开和保存
5.2.3 变量列的冻结、隐藏和移动
5.2.4 对数据集排序
5.2.5 对算新变量
5.3 使用分析员进行统计分析
5.3.1 主对话框
5.3.2 子对话框
第6章 数据的统计描述
6.1 执行描述统计功能的SAS过程
6.1.1 MEANS过程
6.1.2 SUMMARY过程
6.1.3 UNIVARIATE过程
6.1.4 TABULATE过程
6.1.5 GCHART过程
6.1.6 GPLOT过程
6.2 分析实例
6.2.1 计量资料描述统计指标的计算
6.2.2 统计图的绘制
6.2.3 计数资料的统计描述
第7章 单组或两 组资料均数的比较
7.1 均数差别比较的SAS过程——TTEST过程
7.1.1 TTEST过程的一般格式
7.1.2 TTEST过程各条语句的用法和功能
7.2 分析实例
7.2.1 单样本均数和已知总体均数比较的t检验
7.2.2 配对设计资料的t检验
7.2.3 成组设计资料两 样本均数比较的t检验
7.2.4 两组均数差别比较的u检验
第8章 多组资料均数比较的方差分析
8.1 有关方差分析的SAS过程
8.1.1 ANOVA过程
8.1.2 GLM过程
8.2 分析实例
8.2.1 完全随机设计资料的方差分析
8.2.2 随机区组设计资料的方差分析
8.2.3 析因设计资料的方差分析
8.2.4 重复测量设计资料的方差分析
第9章 分类资料的统计推断
9.1 处理分类资料的SAS过程——FREQ过程
9.1.1 FREQ过程的一般格式
9.1.2 FREQ过程各条语句的用法和功能
9.2 分析实例
9.2.1 两个率比较(四格表数据)的x²检验
9.2.2 R×C表资料的x²检验
第10章 非参数统计分析方法
10.1 非参数统计分析SAS过程——NPAR1WAY过程
10.1.1 NPAR1WAY过程的一般格式
10.1.2 NPAR1WAY过程各条语句的用法和功能
10.2 分析实例
10.2.1 两独立样本差别比较的秩和检验
10.2.2 配对设计资料的秩检验
10.2.3 完全随机设计多样本差别比较的秩和检验
第11章 相关分析与线性回归分析
11.1相关分析
11.1.1 执行相关分析的SAS过程——CORR过程
11.1.2 相关分析实例
11.2 线性回归分析
11.2.1 执行回归分析的SAS过程——REG过程
11.2.2 线性回归分析实例
第12章 非线性回归
12.1 NLIN过程
12.1.1 NLIN过程的语句格式
12.1.2 NLIN过程中各语句的语法和功能
12.2 非线性回归实例
12.2.1 NLIN过程分析实例
12.2.2 使用多个初始参数值
第13章 LOGISTIC回归
13.1 与LOGISTIC回归有关的SAS过程
13.1.1 LOGISTIC过程的语句格式
13.1.2 LOGISTIC过程中各条语句的用法和功能
13.2 LOGISTIC回归实例
第14章 对数线性模型
14.1 有关对数线性模型的SAS过程
14.1.1 CATMOD过程提供的统计分析类型
14.1.2 CATMOD过程的语法
14.1.3 对数线性模型分析
14.2 对数线性模型实例
14.2.1 两分类变量实例
14.2.2 多个分类变量关联性的分析
14.2.3 含有零频数的数据实例
第15章 生存分析
15.1 有关生存分析的SAS过程
15.1.1 LIFEREG过程
15.1.2 LIFETEST过程
15.1.3 PHREG过程
15.2 分析实例
15.2.1 参数法生存分析
15.2.2 非参数法生存分析
15.2.3 半参数法生存分析
第16章 聚类分析
16.1 有关聚类分析的SAS过程
16.1.1 CLUSTER过程
16.1.2 FASTCLUS过程
16.1.3 ACECLUS过程
16.1.4 VARCLUS过程
16.1.5 TREE过程
16.2 分析实例
16.2.1 样品聚类
16.2.2指标聚类
第17章 判别分析
17.1 有关判别分析的SAS过程
17.1.1 DISCRIM过程
17.1.2 CANDISC过程
17.1.3 STEPDISC过程
17.2分析实例
第18章 主成分分析与因子分析
18.1 主成分分析
18.1.1 有关主成分分析的SAS过程——PRINCOMP过程
18.1.2 主成分分析实例
18.2 因子分析
18.2.1 有关因子分析的SAS过程——FACTOR过程
18.2.2 因子分析实例
第19章 典型相关分析和对应分析
19.1 典型相关分析
19.1.1 有关典型相关分析的SAS过程——CANCORR过程
19.1.2 分析实例
19.2 对应分析
19.2.1 有关对应分析的SAS过程——CORRESP过程
19.2.2 分析实例
第20章 SASSQL简介
20.1 SQL过程的语句格式
20.1.1 PROCSQL语句
20.1.2 ALTERTABLE语句
20.1.3 CREATEINDEX语句
20.1.4 CREATETABLE语句
20.1.5 CREATEVIEW语句
20.1.6 DELETE语句
20.1.7 DESCRIBE语句
20.1.8 DROP语句
20.1.9 1NSERT语句
20.1.10 RESET语句
20.1.11 SELECT语句
20.1.12 UPDATE语句
20.1.13 VALIDATE语句
20.2 SQL过程应用实例
20.2.1 统计输出功能
20.2.2 数据表的合并
第21章 SAS矩阵运算语言(1ML)
21.1 1ML中矩阵运算的基础知识
21.1.1 1ML内容概述
21.1.2 矩阵的性质
21.1.3 矩阵的命名
21.1.4 矩阵的元素
21.1.5 矩阵的创建
21.1.6 矩阵的运算
21.1.7 矩阵下标的运用
21.1.8 矩阵的标题
21.1.9 矩阵中缺失值的处理
21.2 1ML程序设计语言
21.2.I IF-THEN/ELSE语句
21.2.2 模块的定义与实施
21.2.3 DOEND语句
21.2.4 8e转语句
21.2.5停止语句
21.3 1ML中矩阵与SAS数据集的相互转换
21.3.1 打开SAS数据集
21.3.2 显示数据集的属性信息
21.3.3 创建永久数据集
21.3.4读取并转换SAS数据集
21.3.5 将矩阵转换为数据集
21.4 在IML环境中对SAS数据集的操作
21.4.1 在IML中对SAS数据集排序
21.4.2 在IML中对SAS数据集的统计运算
21.4.3 小结
21.5 1ML矩阵运算与DATA步运算的联系与区别
第22章 SAS的宏功能
22.1 宏变量
22.1.1 简介
22.1.2 SAS系统定义的宏变量
22.1.3 用户定义的宏变量
22.2 宏
22.2.1 简介
22.2.2 宏语言中的元素
22.2.3 包含SAS程序的宏
22.2.4 宏参数
22.2.5 宏表达式
22.3 宏应用实例
22.3.1 用宏变量替代文本串
22.3.2 用宏产生SAS代码
22.3.3 用宏参数在宏中传递信启
22.3.4 根据条件产生SAS代码
22.3.5 用循环语句%DO产生重复的文本
22.3.6 为宏变量引用产生后缀
22.4 如何捉高宏的运行效率
22.4.1 根据需要使用宏
22.4.2 使用宏名调用
22.4.3 避免使用嵌套的宏定义
22.4.4 将宏函数的值赋给一个宏变量
第23章 SAS输出传送系统
23.1 ODS概述
23.1.1 简介
23.1.2 示例
23.1.3 ODS基本概念和功能
23.1.4 ODS语句
23.2 常用ODS输出目标介绍
23.2.1 SAS格式目标
23.2.2 第三方格式目标
第24章 SAS/DDE技术的应用
24.1 DDE入门
24.1.1 将SAS数据集写入EXCEL
24.1.2 读取EXCEL文件到SAS数据集
24.1.3 从SAS发送命令控制EXCEL的运行
24.1.4 从SAS到WORD简介
24.2 使用DDE自动产生统计报告
24.2.1 统计报表的自动化生成
24.2.2 统计自动化中DDE技术和ODS技术的联合应用
24.2.3 统计图的自动绘制
附录1 SAS常用选项设置一览
附录2 SAS常用函数介绍
附录3 SAS常用模块一览
参考文献
自从有了人类的生产活动,就有了统计。自从有了统计,就有了统计计算。统计计算工具从古时的“结绳记事”,经历了笔、纸张、算盘、对数表、乘方开方表、计算尺、手摇式机械计算机和电子计算器(Calculator)等数千年的发展过程,今天已发展到网络化计算机时代。
统计计算的历史,也折射出统计学发展的历史。独立发现正态分布的德国数学家Gauss(1777-1855), 在其孩提时代回答过一道数字计算题:1+2+3++100=?他巧妙地把计算过程看作50个101,即1+100=101,2+99=101,50+51=101,快速做出答案5050,表现出他极高的统计计算天赋。
最先提出“相关与回归”的英国人类学家Galton,在人类学和优生学研究中萌发的统计学思想,其中一个重要思想是“在任何时候你都可以做的事——计数”(Wheneveryoucan,count)。小样本均数Student-t检验的发现者、英国生物统计学家Gosset(1876-1937)为了解决t检验的理论和应用问题,通过使用卡片进行抽样试验和计算统计量得出t分布曲线,成为Monte-Carlo计算方法的先行者。现代实验设计方法和统计分析技术的奠基者、英国生物统计学家Fisher(1890-1962)在20世纪20年代撰写他的实验设计和统计方法专著时,因不可能计算出所有小概率对应的t分布和F分布的临界值,只好给出了a=0.05,0.01时所对应的t分布和F分布的临界值表。令Fisher未曾想到的是,这种因统计计算方法限制而人为设定的两个数字,至今仍然被许多人当作小概率的惟一数量标准。因此,Fisher的同事、x-检验“Yates校正”公式的提出者Yates(1902-1994)强烈主张统计学家使用电子计算机,并且说:“优秀的理论统计学家必须学会计算,并且需要最好的计算工具”(To be a good theoreticalstatistician one must also compute,and must therefore have the best computingaids.)。Yates对20世纪60年代初英国建立计算机学会发挥了重要的作用,并且还担任了两年的英国计算机学会主席。
将计算机用于统计计算,主要通过统计软件实现,其中最具有代表性和全球用户最多的统计软件是SAS软件。经过近半个世纪的发展,SAS已经由单一的统计软件发展为大型决策支持系统,由大型计算机的专用软件发展为家庭和办公室普及的PC机软件。利用SAS软件进行数据处理和统计分析,不仅能得到各种检验统计量对应的确切概率值(不必再查Fisher和Yates等制定的界值表),而且许多复杂的统计计算通过轻点鼠标就可以完成。SAS软件的发展和普及为各个领域统计方法的运用开辟了更广阔的天地,相信本书的出版发行对提高各个领域、特别是医学研究领域研究人员SAS的应用水平起到积极的促进作用。
本书主要介绍了SAS软件的使用方法。严格按照各章介绍的操作步骤,可以很快得到数据的处理结果。但要真正“用好、用活”SAS,把SAS作为数据处理和统计分析的工作平台,一方面要掌握基本的统计知识,理解各种计算步骤和统计指标的含义;另一方面要理论结合实际,把电脑里资料的研究背景和设计方法搞清楚。有“用”的需求,才会有“学’’的愿望。本书的编者大多是因研究工作和教学工作的需要才接触SAS;使用SAS和钻研SAS的,所以本书的内容贴近实际、编排合理、便于检索,不仅可以作为学习SAS的A门书,对于已经熟悉SAS的读者,还可以作为手册和工具书使用。
SAS系统是大型集成的应用信息系统,拥有完备的数据访问、数据管理、数据分析和数据呈现功能。尤其是数据分析这一方面,SAS以其强大完善的数据管理与统计分析功能被公认为国际上标准的统计分析软件,在某些领域,比如新药临床试验中SAS已经成为数据处理的首选工具。有关于SAS的种种优点,这里我们不再多说,相信随着读者对SAS的理解和应用的加深,每个人都会有自己的体会。
在中国,SAS系统的使用者近些年增长彳艮快,有关SAS的教程近几年来也纷纷面世,但是多数介绍的都是其6.12版,内容上也大多以基础操作和基本的统计分析方法为主,而每次版本的升级,SAS都会加入许多新的功能。鉴于此,编者决定结合自身的使用与教学经验,为使用SAS的专业统计分析人员提供一本内容全面又简单易懂的参考书。
本教程基于SAS系统的8.2版本写成,全书分成四大部分,第一部分(前5章)为SAS 8.2的入门篇,主要介绍了SAS的基本界面操作、编程基础和数据管理入门等方面的内容;第二部分(第6章到第15章)为统计应用篇,介绍了在SAS中各种基本统计分析和常用高级统计分析的编程实现方法;第三部分(第16章到第19章)为多元分析篇,介绍了多元统计模型在SAS中的编程实现方法,包括了典型相关与对应分析等近年来应用较广的方法;第四部分(第20章到第24章)为操作进阶篇,介绍了对专业用户非常重要的SAS系统高级功能,如宏语言、SQL等,其中IML矩阵语言、ODS功能和DDE的自动报表功能在国内均属首次介绍。教程中的大部分内容都是几位编者基于对SAS的使用经验与理解所编写而成,大都经过实际应用的检验,因此教程内容具有较高的客观性和实用性。
本书既可作为大专院校统计专业师生的入门教材,也可作为有关数据管理与分析处理专业人员的参考资料。
由于在国内SAS的用户多数为医学统计学背景,本教程的绝大部分实例均来自于医学统计学教材,特别是徐勇勇主编的教育部面向21世纪课程教材——《医学统计学》和孙振球主编的研究生规划教材——《医学统计学》,有关实例的详细情况,各位读者可参考这两本教材的相应内容。但是本书对其他行业需要使用SAS进行统计分析的用户仍然具有非常强的参考价值。
本教程由薛富波、张文彤、田晓燕共同主编,参编人员分别来自第四军医大学卫生统计学教研室(薛富波,刘丹红,杨鹏)、复旦大学公共卫生学院社会医学与卫生统计学教研室(张文彤)、上海日新医药发展有限公司(田晓燕,张子豹)以及第三军医大学卫生统计学教研室(陆健,曹阳,贺宪民),均为SAS系统的长期使用者与教学者。各编委所在单位对本书的编写给予了热情帮助,在此谨代表本教程全体编写人员对他们表示诚挚的谢意。作为SAS 8.2的正版用户,上海日新医药发展有限公司大力支持了本书的编写工作,编者在此特致谢忱。
本教程的主审徐勇勇教授,现任第四军医大学预防医学系卫生统计学教研室主任、博士生导师、中国卫生信息学会常务理事、中华预防医学会卫生统计学专业委员会副会长、解放军医学会和陕西省医学会卫生统计学专业委员会主任委员等职。他在百忙之中主审了本教程的全部内容并为本书作序,在此谨代表全体编写人员对徐勇勇教授表示诚挚谢意。
为方便读者使用本教程,凡书中涉及的数据及示例程序,我们将全部放在笔者共同开设的医学统计之星网站(http://www.MedStatStar.com)的相应板块中,以便于各位读者下载使用。
由于编者水平所限,难免存在错误与疏漏,请各位读者多多提出宝贵意见。相应的意见和建议可以直接发表在“医学统计之星”网站论坛相应的版面,我们会及时回复。
作者