《深入解析SAS:数据处理、分析优化与商业应用》
前言
Preface
第一篇 SAS编程和数据处理
第1章 Base SAS基础 2
1.1 SAS系统简介 2
1.2 启动SAS软件 4
1.2.1 SAS窗口环境模式 4
1.2.2 非交互模式 5
1.2.3 批处理模式 6
1.2.4 交互式行模式 7
1.2.5 配置文件和AUTOEXEC文件 7
1.3 SAS窗口环境 8
1.3.1 SAS资源管理器 10
1.3.2 程序编辑器 10
1.3.3 日志 10
1.3.4 结果 11
1.3.5 输出 11
1.4 SAS文件和逻辑库 11
1.5 一个简单的SAS程序 13
1.6 SAS Studio 17
1.7 本章小结 18
第2章 读取外部数据到SAS数据集 19
2.1 SAS编程基本概念 20
2.1.1 SAS逻辑库 20
2.1.2 SAS数据集 23
2.1.3 SAS逻辑库和数据集管理 31
2.1.4 SAS系统选项 33
2.1.5 SAS程序结构 37
2.2 通过DATA步读取数据 38
2.2.1 DATA步处理 38
2.2.2 读取外部文本文件中的数据(初级) 42
2.2.3 读取外部文本文件中的数据(高级) 52
2.3 通过IMPORT过程读取外部文件数据 62
2.4 访问关系型数据库系统中的数据 65
2.5 SAS程序错误及处理 68
2.5.1 良好的SAS编程风格 68
2.5.2 常见错误及处理 69
2.6 本章小结 73
第3章 对单个数据集的处理 74
3.1 选取部分变量 74
3.2 操作数据集的观测 78
3.2.1 SAS表达式 78
3.2.2 选取部分观测 84
3.2.3 操作所选取的观测 88
3.2.4 分组与排序 92
3.3 创建新变量 96
3.3.1 数据集选项RENAME=和RENAME语句 96
3.3.2 赋值语句创建新变量 97
3.3.3 对多个观测求和 99
3.4 循环和数组 103
3.4.1 循环 103
3.4.2 SAS数组 106
3.5 SAS常用函数 109
3.5.1 函数语法 109
3.5.2 数值函数 110
3.5.3 字符操作函数 110
3.5.4 数值与字符转换函数 113
3.5.5 与日期时间相关的函数 115
3.6 将数据集写出到外部文件 116
3.7 本章小结 119
第4章 对多个数据集的处理 120
4.1 数据集的纵向串接 120
4.1.1 使用SET语句实现纵向串接 120
4.1.2 使用APPEND过程实现纵向串接 127
4.1.3 SET语句与APPEND过程的比较 129
4.2 数据集的横向合并 130
4.2.1 不使用BY语句实现横向合并 130
4.2.2 使用BY语句实现横向合并 133
4.2.3 使用数据集选项IN=操作观测 140
4.3 数据集的更新 141
4.4 数据集的更改 143
4.4.1 单个数据集的更改 143
4.4.2 两个数据集的更改 145
4.5 数据集处理的一点补充 146
4.5.1 使用数据集选项END= 146
4.5.2 使用自动变量FIRST.与LAST. 148
4.5.3 使用SET语句中的选项POINT= 和NOBS= 149
4.5.4 使用多个SET语句 150
4.5.5 使用HASH对象处理多个数据集 151
4.6 本章小结 156
第5章 数据汇总与展现 157
5.1 通过PRINT过程制作报表 157
5.1.1 制作简单报表 157
5.1.2 制作增强型报表 161
5.1.3 改进报表显示 163
5.2 通过TABULATE过程制作汇总报表 168
5.2.1 制作基本汇总报表 168
5.2.2 制作高级汇总报表 172
5.2.3 改进报表显示 175
5.3 通过GPLOT过程制作图形 180
5.3.1 制作散点图 180
5.3.2 制作连线图 184
5.3.3 制作多幅图形 188
5.3.4 制作气泡图 195
5.4 通过GCHART过程制作图形 196
5.4.1 制作柱状图 196
5.4.2 制作分组柱状图 203
5.4.3 制作饼图 206
5.5 ODS输出传送系统 210
5.5.1 选择或剔除输出对象 211
5.5.2 创建多种格式输出文件 216
5.6 本章小结 223
第6章 SAS SQL语言 224
6.1 SQL语言概述 224
6.2 使用SQL检索数据 225
6.2.1 SQL的基本结构 225
6.2.2 使用SQL对列进行操作 226
6.2.3 使用SQL对行进行操作 227
6.2.4 使用SQL对报表加工与生成数据集 232
6.2.5 子查询 233
6.3 使用SQL对表进行横向合并 234
6.3.1 使用SQL对表进行内连接 234
6.3.2 使用SQL对表进行外连接 236
6.4 使用SQL对表进行纵向合并 237
6.4.1 使用关键字EXCEPT对表进行纵向合并 238
6.4.2 使用关键字INTERSECT对表进行纵向合并 240
6.4.3 使用关键字UNION对表进行纵向合并 241
6.4.4 使用关键字OUTER UNION对表进行纵向合并 243
6.5 使用SQL管理表 245
6.5.1 使用SQL复制、创建与删除表 245
6.5.2 使用SQL插入行 247
6.5.3 使用SQL删除部分行 248
6.5.4 使用SQL修改表的列 249
6.5.5 使用SQL更新列的值 250
6.6 本章小结 252
第7章 SAS宏语言 253
7.1 SAS宏语言概述 253
7.2 宏变量 254
7.2.1 宏变量的定义 254
7.2.2 宏变量的调用 255
7.2.3 宏变量的查看 257
7.2.4 宏变量的分类 258
7.2.5 宏变量的删除 259
7.3 宏函数 259
7.3.1 在宏语言中调用SAS函数 259
7.3.2 用宏函数处理算术与逻辑表达式 260
7.3.3 常见的处理文本的宏函数 261
7.4 宏 263
7.4.1 宏的定义与调用 263
7.4.2 宏的存储 264
7.4.3 宏的参数 266
7.4.4 宏与宏变量 269
7.5 宏语言与其他SAS语言 272
7.5.1 宏语言的编译过程 272
7.5.2 宏语言与DATA步 274
7.5.3 宏语言与SQL语言 277
7.6 宏编程 278
7.6.1 条件语句 278
7.6.2 循环语句 280
7.7 本章小结 283
第8章 开发多语言支持的SAS程序 284
8.1 多语言支持的基本概念 284
8.1.1 语言/区域 285
8.1.2 字符集和编码 285
8.2 NLS相关的SAS选项 288
8.2.1 语言/区域选项LOCALE= 288
8.2.2 编码选项ENCODING= 290
8.2.3 时区选项TIMEZONE= 295
8.2.4 语言切换选项 296
8.3 NL格式和NL输入格式 297
8.4 字符串和字符处理函数 302
8.5 文本字符串外部化 303
8.6 本章小结 309
第二篇 SAS统计分析和时间序列预测
第9章 描述性统计分析 312
9.1 基本概念 313
9.1.1 总体、个体和样本 313
9.1.2 简单随机抽样 313
9.1.3 连续变量和分类变量 313
9.1.4 参数、统计量和自由度 314
9.1.5 随机变量及概率分布 314
9.2 描述性统计量 318
9.2.1 描述数据集中趋势 319
9.2.2 描述数据离散程度 320
9.2.3 描述数据分布形态 322
9.3 MEANS过程的补充 334
9.3.1 统计量列表 334
9.3.2 选项WEIGHT=和WEIGHT语句 335
9.3.3 输出SAS数据集 336
9.3.4 WAYS语句和TYPES语句 338
9.4 本章小结 340
第10章 参数估计与假设检验 341
10.1 参数估计 341
10.1.1 点估计 341
10.1.2 区间估计 343
10.2 假设检验 346
10.2.1 基本原理 346
10.2.2 T分布与T检验 348
10.2.3 TTEST过程 350
10.2.4 单样本均值T检验 352
10.2.5 独立双样本均值T检验 354
10.2.6 配对样本均值T检验 360
10.3 非参数假设检验 362
10.4 分布拟合假设检验 365
10.5 本章小结 368
第11章 方差分析 370
11.1 方差分析的基本原理 370
11.1.1 方差分析的模型 370
11.1.2 方差分析的基本思想 371
11.1.3 方差分析的假设 373
11.2 单因素试验的方差分析 374
11.2.1 TTEST过程、ANOVA过程与GLM过程的区别 374
11.2.2 使用ANOVA过程进行方差分析 374
11.2.3 使用GLM过程进行方差分析 376
11.3 显著因素下的水平间差异检验 379
11.3.1 LSMEANS语句与MEANS语句的区别 379
11.3.2 利用LSMEANS语句进行水平差异分析 380
11.4 双因素试验的方差分析 382
11.4.1 双因素试验概述 382
11.4.2 利用GLM过程对不均衡数据进行方差分析 383
11.4.3 有交互作用因素的方差分析 385
11.5 本章小结 386
第12章 主成分分析与因子分析 387
12.1 主成分分析概述 387
12.1.1 主成分分析的基本思想 387
12.1.2 主成分的定义、计算与确定 389
12.1.3 主成分分析难点探讨 390
12.2 使用SAS实现主成分分析 392
12.2.1 FACTOR过程与PRINCOMP过程的比较 392
12.2.2 使用PRINCOMP过程进行主成分分析 392
12.2.3 使用FACTOR过程进行主成分分析 396
12.3 因子分析概述 399
12.3.1 公共因子与特殊因子 399
12.3.2 因子分析的计算过程 400
12.3.3 因子分析与主成分分析比较 401
12.4 使用SAS实现因子分析 402
12.5 本章小结 407
第13章 聚类分析 408
13.1 聚类分析的概述 408
13.1.1 聚类分析方法介绍与比较 408
13.1.2 相似性的度量 409
13.2 划分法与层次法 412
13.2.1 使用过程FASTCLUS实现K均值聚类法 412
13.2.2 使用过程CLUSTER实现层次法 416
13.3 本章小结 422
第14章 判别分析 423
14.1 判别分析概述 423
14.1.1 判别分析的基本概念及应用 423
14.1.2 判别分析的假设条件 424
14.1.3 判别分析常见的方法 424
14.2 判别分析在SAS中的实现 426
14.2.1 使用过程DISCRIM实现一般判别分析 427
14.2.2 使用过程CANDISC实现典型判别分析 432
14.2.3 使用过程STEPDISC实现逐步判别分析 436
14.3 本章小结 440
第15章 回归分析 441
15.1 变量关系探索 442
15.1.1 皮尔逊相关系数 442
15.1.2 相关性检验 444
15.1.3 CORR过程 444
15.2 线性回归 448
15.2.1 基本原理 449
15.2.2 假设检验 451
15.2.3 模型拟合 453
15.2.4 模型选择 457
15.2.5 模型预测 464
15.3 自变量间的共线性诊断 466
15.4 本章小结 468
第16章 LOGISTIC回归分析 470
16.1 基本原理 470
16.1.1 线性概率模型 470
16.1.2 LOGISTIC回归模型 471
16.1.3 LOGISTIC回归模型的估计 473
16.1.4 LOGISTIC回归模型的假设条件 474
16.2 运用LOGISTIC过程拟合模型 475
16.2.1 基本语法 475
16.2.2 假设检验 477
16.2.3 参数估计和解释 478
16.2.4 模型评价 480
16.3 LOGISTIC过程的其他语句 482
16.3.1 CLASS语句 482
16.3.2 ODDSRATIO语句 483
16.3.3 UNITS语句 484
16.4 建立模型 491
16.4.1 自变量与Logit值的关系 491
16.4.2 自变量的互动作用 494
16.4.3 模型选择 494
16.5 本章小结 500
第17章 时间序列分析 501
17.1 时间序列基本概念 501
17.1.1 了解时间序列 501
17.1.2 时间序列的数字特征 503
17.1.3 常见平稳和非平稳模型 506
17.1.4 SAS时间序列分析软件简介 511
17.2 平稳时间序列分析 511
17.2.1 数据准备 512
17.2.2 平稳性和白噪声检验 516
17.2.3 模型识别 521
17.2.4 参数估计和诊断检验 532
17.2.5 预测 537
17.3 趋势时间序列分析 546
17.3.1 确定性时间趋势 546
17.3.2 随机时间趋势 550
17.3.3 运用ARIMA过程建立趋势模型 554
17.3.4 异常点检测 564
17.3.5 运用其他过程建立趋势模型 565
17.4 季节时间序列模型 574
17.4.1 确定性季节因素 574
17.4.2 随机季节模型 578
17.4.3 季节性诊断 579
17.5 本章小结 585
第18章 SAS数据挖掘的一般流程 586
18.1 SAS数据挖掘概述 586
18.2 确定业务问题和数据准备 587
18.2.1 确定业务问题 587
18.2.2 数据准备 588
18.3 数据抽样、探索与加工 590
18.3.1 数据抽样 590
18.3.2 数据探索 591
18.3.3 数据加工 601
18.4 数据建模 605
18.4.1 模型的建立 605
18.4.2 模型的评估 609
18.4.3 模型的实施 614
18.5 本章小结 615
第三篇 SAS优化建模
第19章 运筹学概述 618
19.1 运筹学发展简介 618
19.2 优化模型的基本概念 621
19.3 优化模型的分类 623
19.4 优化建模步骤 624
19.5 SAS/OR简介 627
19.6 一个简单的OPTMODEL程序 627
19.7 本章小结 631
第20章 线性规划 632
20.1 数学模型 632
20.1.1 问题的提出 632
20.1.2 线性规划问题 634
20.1.3 图解法 636
20.2 单纯形法 638
20.2.1 线性规划问题的标准型 638
20.2.2 单纯形法的导出和运用 641
20.2.3 两阶段单纯形法 645
20.3 对偶理论和灵敏性分析 649
20.3.1 对偶问题的导出 649
20.3.2 对偶问题的基本性质 650
20.3.3 对偶单纯形法 651
20.3.4 对偶问题的经济解释 653
20.3.5 灵敏性分析 656
20.4 内点法 657
20.5 本章小结 658
第21章 运用PROC OPTMODEL建立线性规划模型 659
21.1 基本概念 659
21.1.1 参数 659
21.1.2 索引和索引集 660
21.1.3 数据类型 660
21.1.4 名称 661
21.1.5 表达式 661
21.1.6 标识表达式 662
21.1.7 函数表达式 662
21.1.8 索引集的补充 662
21.2 基本结构 664
21.3 建立模型 667
21.3.1 参数的声明 667
21.3.2 变量的声明 671
21.3.3 目标函数的声明 672
21.3.4 约束条件的声明 672
21.3.5 求解器的调用 673
21.3.6 数据输出 673
21.4 读取SAS数据集 678
21.5 创建SAS数据集 686
21.6 本章小结 688
第22章 PROC OPTMODEL程序设计 689
22.1 PROC OPTMODEL中的流程控制方法与集合运算 689
22.1.1 常见的流程控制方法 689
22.1.2 常见的集合运算处理 695
22.2 模型的更新 702
22.2.1 使用预求解器 702
22.2.2 决策变量的增加、固定与限制 704
22.2.3 约束的改变与放松 709
22.3 网络流模型 712
22.3.1 网络流模型概述 712
22.3.2 使用OPTMODEL求解网络流模型 714
22.4 本章小结 717
第23章 整数线性规划和混合整数线性规划 718
23.1 整数线性规划和混合整数线性规划概述 718
23.1.1 分支定界法 719
23.1.2 割平面法 722
23.2 使用PROC OPTMODEL求解混合整数线性规划 725
23.3 使用0-1变量建模 728
23.3.1 问题的提出 728
23.3.2 数学模型 728
23.3.3 输入数据 731
23.3.4 PROC OPTMODEL代码和输出 733
23.4 本章小结 737
第24章 优化建模实例 738
24.1 集装箱问题 738
24.1.1 问题的提出 738
24.1.2 数学模型 739
24.1.3 输入数据 740
24.1.4 PROC OPTMODEL代码和输出 741
24.1.5 功能与技巧汇总 747
24.2 运输排程问题 748
24.2.1 问题的提出 748
24.2.2 数学模型 751
24.2.3 输入数据 755
24.2.4 数据验证 759
24.2.5 PROC OPTMODEL代码和输出 764
24.2.6 功能与技巧汇总 773
24.3 本章小结 773
第四篇 SAS智能平台架构体系
第25章 SAS智能平台及行业解决方案 776
25.1 SAS智能平台 777
25.1.1 数据层 778
25.1.2 SAS服务器 778
25.1.3 中间层 780
25.1.4 客户端 780
25.2 SAS商业智能 781
25.2.1 SAS Office Analytics 781
25.2.2 SAS Enterprise BI Server 784
25.3 SAS数据管理和集成 790
25.3.1 SAS数据集成 791
25.3.2 SAS数据质量管理 792
25.3.3 DataFlux数据管理平台 792
25.3.4 SAS主数据管理 794
25.4 SAS商业分析 796
25.4.1 SAS Enterprise Miner 796
25.4.2 SAS Text Miner 798
25.4.3 SAS商业分析解决方案 799
25.5 SAS高性能分析 801
25.5.1 SAS内存分析 801
25.5.2 SAS In-Database 804
25.5.3 SAS网格计算 804
25.6 本章小结 805
第26章 SAS应用的架构规划 806
26.1 SAS应用的架构规划 806
26.1.1 SAS应用的架构 806
26.1.2 SAS Grid Manager架构 811
26.1.3 SAS库内产品架构 812
26.1.4 SAS内存分析产品架构 812
26.1.5 SAS部署在高可用集群中的架构 814
26.2 SAS应用的I/O系统规划 815
26.2.1 SAS应用的I/O特性 815
26.2.2 SAS文件系统考虑 816
26.3 本章小结 818
第27章 SAS智能平台安全管理 819
27.1 身份标识 819
27.1.1 用户 819
27.1.2 组 822
27.1.3 角色 823
27.2 认证 824
27.2.1 认证机制 824
27.2.2 凭证管理 826
27.2.3 认证到元数据服务器 832
27.2.4 认证到计算服务器 833
27.2.5 认证到数据服务器 833
27.2.6 单点登录 833
27.3 授权 834
27.3.1 元数据授权 834
27.3.2 访问元数据文件夹 838
27.3.3 访问数据 838
27.3.4 访问SAS对象 839
27.3.5 数据的细粒度控制 842
27.4 加密 843
27.4.1 加密提供方 843
27.4.2 加密ODS PDF文件 844
27.4.3 SAS加密系统选项 844
27.4.4 PWENCODE过程 844
27.5 安全性审计 845
27.5.1 SAS安全性报告宏 845
27.5.2 SAS日志模块 846
27.5.3 Web应用程序的日志 847
27.5.4 SAS审计性能测量包 848
27.6 本章小结 850
第28章 SAS智能平台的高可用性 851
28.1 高可用性相关概念 851
28.2 SAS高可用性方法概述 853
28.2.1 高可用集群 853
28.2.2 动态迁移 854
28.2.3 SAS环境备份和恢复 854
28.3 SAS元数据服务器 855
28.3.1 元数据服务器集群 856
28.3.2 提高元数据服务器可用性 856
28.3.3 公共组件 857
28.4 SAS计算层 857
28.4.1 SAS计算服务器负载均衡 857
28.4.2 SAS网格计算 858
28.4.3 提高计算层组件可用性 858
28.4.4 作业运行选项 859
28.5 SAS中间层 860
28.5.1 SAS Web Application Server集群 860
28.5.2 提高中间层组件的可用性 861
28.6 数据层 862
28.7 本章小结 863
↑折 叠
前言
为什么要写这本书
数据和模型描述着世界,而SAS恰恰就是关于数据和模型的技术。SAS技术在全球的数据处理和分析领域举足轻重。在国内,SAS的应用日趋广泛,自然,对掌握SAS技术的人才需求也日益旺盛。
但是当大家谈及SAS的时候,普遍的一个感受是,掌握SAS比较难。这使我记起在2000年刚刚加入SAS中国公司几天后的一个下午,时任SAS中国区技术总监的栾世武博士问我:“怎么样?SAS难学吗?”其实,在SAS公司的同事当中,大家并不会认为SAS有多难。究其原因,不过是如下几个:
在SAS公司,有着明确的路线图,大家可以清楚地知道学习SAS某个领域的顺序和步骤是什么。对于系统性非常强而且知识范围又较广的SAS而言,这是很重要的。
对于路线图中的每一个阶段,SAS公司都提供了详尽的资料供阅读和学习。
有实际的项目去实践和锻炼。
上面所提到的因素,也正是大部分期望学习SAS技术的从业者快速有效掌握SAS的“窍门”。基于这样的经历和思考,几年以来我一直在构思这样一本书:
1)以书中的章节结构来体现学习SAS核心内容的路线图。
2)在每个章节的内容中,包含路线图中对应部分的必要学习资料,并且使得读者在读完相应的内容之后,有能力并且了解如何去学习更加深入和广泛的知识。
3)提供贴近实际应用项目甚至有些复杂的例子,让读者领会解决实际问题的思路和技巧。
本书就是基于上述构思的一个实现,希望能够帮助大家系统地掌握SAS的专业知识,进而从容地将其应用于商业实际中。
读者对象
本书主要适合于以下读者:
使用SAS进行数据抽取、转换和清洗的技术人员。
需要使用SAS对数据进行深入分析和数据挖掘的分析人员。
需要使用SAS进行时间序列预测和优化决策的建模专家。
使用SAS进行项目规划、实施和管理的系统架构师、系统管理员和项目管理人员。
团队的工作涉及SAS产品与技术的管理人员。
如何阅读本书
本书共4篇,系统介绍了SAS的核心技术模块和架构体系。
↓展开全部内容
媒体评论
SAS引领大数据时代的发展,产品线覆盖了数据分析的各个方面,包括高性能分析、可视化分析和云计算等诸多新领域。但是从何处开始学习SAS、如何在实际工作中使用和部署SAS,却让很多初学者感到困惑,这时如果有长期使用SAS的专业人员把他们的宝贵经验分享出来,将会给大家更多的指导和帮助。而本书的几位作者恰好具有优秀的专业背景和丰富的SAS实践经验,其中,夏坤庄先生有5年多的时间在客户一线从事SAS产品咨询和项目实施工作;且在最近的9年中,他作为SAS研发北京中心客户职能部的总监,在进行产品研发的同时还在对SAS全球客户提供技术支持。而其他几位作者作为夏坤庄先生的同事,同样有着丰富的实践经验。本书的实战指导性非常强,它的结构体现了SAS核心内容的学习路线图,内容包括了SAS的核心技术模块乃至整体架构体系,并运用了很多源自实际应用的案例,非常适合广大数据分析从业者的需要。
—— 刘政博士,SAS软件研究开发(北京)有限公司总经理
我与本书作者之一夏坤庄先生在我行的一个大型项目中有着成功的合作。合作过程中,夏坤庄展现出了卓越的专业能力、项目把握能力及一丝不苟的敬业精神,以至于我团队中那些昔日的成员即使现在已身为分行或支行的行长,仍然会尊敬地回忆当年的夏工是如何手把手教导他们设计和开发的。现在,夏坤庄及其团队通过本书将他们丰富的知识和成功经验进行了总结和提炼,在对简单和优美的追求中,完成了对SAS系统的完整和深入介绍,满足了复杂的数据分析和大数据应用时代的要求。本书是不可错过的优美之作!
—— 张晓波,中国工商银行软件开发中心上海研发支持部总经理、《计算机上的银行》作者
大数据时代的核心是数据的分析和利用,分析利用的关键是模型和挖掘。本书不但通俗易懂地向大家介绍了数据分析的方法和应用案例,而且通过对 SAS高性能及SAS应用架构规划的解析,对如何将数据分析的方法和应用部署到大数据环境中,满足海量数据和大规模运算的要求做了清楚的介绍。是一本难得的好书!
—— 鲁百年博士,SAP大中国区商业创新首席架构师
本书将统计分析和SAS应用成功地结合在了一起,既能够让熟悉统计理论的学习者有信心和能力将统计方法应用到现实中去,也能够让熟悉SAS的人有底气和理论高度在商业环境中选择和运用统计的分析方法。尤为难得的是,本书涵盖了预测及优化的丰富内容,并且结合复杂生动的案例对理论和方法进行了阐述。无论是对数据分析和SAS的初学者来说,还是对有不错基础的从业人员来说,本书都是很好的学习材料!
—— 赵彦云博士,中国人民大学统计学院院长、中国人民大学竞争力与评价研究中心主任
中国统计学会副会长
· · · · · · (
收起)