SAS数据统计分析与编程实践
书 号:9787113272746
丛 书 名:
作 者:马文豪,李翔宇
译 者:
开 本:16开
装 帧:平装
正文语种:汉文
出 版 社:中国铁道出版社有限公司
定 价:99元
-
内容简介
本书源自作者5年来的项目和工作实践经验,力求对SAS编程与数据分析做一个较为完整的梳理,除了从技术架构方面细致地梳理了SAS数据分析中的关键技术和实用知识点,例如数据集,宏编程。图表生成等,更在讲解中埋藏了一条关于行业实践分析的案例辅线,包括嵌入其中的大量实践案例和单独成章的综合案例,帮助读者将关键技术和行业实践相辅相成,让读者能身临其境地了解SAS数据分析行业的精髓。本书并不想陷于具体技术问题的解决方案中,而是希望通过一些关键技术点、模型以及实例的关联讲解来帮助读者梳理清楚SAS编程的开发思路,继而学会解决一类问题。 -
前言
数据分析,这是一个令人熟悉而又陌生的工作。
随着互联网等科技的发展,很多行业和企业愈发认识到数据的重要性,招聘数据分析师对收集的数据进行处理、分析、统计、建模。更多行业专家也已经发现,数据并不仅仅是资源,它更像土壤,从数据中就可以生长出一个优秀的企业。因此,数据分析行业对于从业者的要求也越来越高,除了过硬的数据分析能力以外,还要求分析师具有跨部门协作能力、大局观和组织能力等。
当前主流的数据分析工具有SAS、Python语言和R语言等,其中Python语言和R语言的使用较为广泛,SAS因为其非开源、付费、授权制等特点,主要应用在诸如医药、金融、市场分析等行业,成为这些行业中数据分析师的必备技能。
SAS经验谈
SAS语言的特点是功能复杂、上手有难度和特定领域应用。
自20世纪60年代诞生以来,历代SAS版本的更新都会加入最新统计分析理论的研究成果,将它们通过简单的SAS语句来实现。时至今日,SAS已经有近千个函数和上百种proc以帮助数据分析师完成各种统计分析工作。每个函数和proc的语法与功能都有差别,这使得SAS构成一个复杂的功能体系,在数据分析中扮演着不可替代的角色。
与一般语言不同,SAS对于新手并不是很友好。SAS的语法比较特殊,将所有与数据处理和分析的功能放到了data步和proc的程序块中,分析师不仅要掌握这些程序块的语法,还需要根据所建立的模型使用不同的语句。很多人在初学SAS的时候发现很难把其他语言的使用经验套用到SAS上,于是花了过多的精力却没有找到重点。
SAS的第三个特点就是其只在特定领域应用,这些领域包括医药、金融、银行、交通等,往往都是资本密集型和技术密集型行业。以笔者所在的医药行业为例,2018年被称为中国的制药元年,从这一年起,中国的制药领域已经摆脱了传统的仿制药研发和制药原材料出口的模式,真正走上了创新药研发的路径。2020年初爆发的新冠疫情,虽然让全世界的经济都蒙上了一层阴影,但也让很多人看到了医药行业发展的潜力。
虽然以上这些行业都是使用SAS作为分析工具,但不同行业的侧重各有不同,例如医药行业会更多使用SAS的数据处理和统计分析功能,金融行业则需要建模功能,如果一开始没有确定自己的行业,很可能导致学习SAS很久后发现很多功能并不会用到。
写作缘起
基于数据分析行业和SAS 的特点,笔者萌生出了创作一本SAS 进阶提升读物的想法,幸而找到了李翔宇老师合作,共同完成了本书。我一直从事临床试验数据分析工作,与SAS打了多年交道。李翔宇老师在新能源、通信、教育等行业都有过相当成功的项目经验。我们二人的经验也保证了本书既具有专业的深度,也具有视野的广度。
虽然本书只专注于SAS和数据分析行业,但它的创作难度并不低,因为本书不仅仅要帮助读者建立起SAS语法的基本框架,更希望建立起知识体系的逻辑架构,这对于SAS这门发展了数十年、代码系统盘根错节的语言来说绝非易事。更重要的是,笔者与李翔宇老师在本书中提出了优秀数据分析师的“士”型人才模型以及自我提升途径,笔者坚信这是对所有读者更重要的职业发展指导。
另外,笔者在创作时既考虑了行业应用,也着力弱化它。在技术方面,力求讲解SAS中一部分通用的语句和功能,它们在很多工作场景中都会被用到。同时笔者也准备了大量工作中的实战案例,让读者不仅“知道”怎么做,还要真正“学会”怎么做。
本书组织架构
在结构上分为三篇,按照递进的关系讲解SAS和数据分析。
第一篇,首先了解SAS的技术特点、历史等,然后从最简单的data步和proc开始,逐步建立SAS学习的基础框架。
第二篇是在第一篇的基础上,展开学习SAS中相对复杂的功能,包括宏编程、统计分析与假设检验、创建统计图表等,并在该篇最后一章使用一个大型临床试验数据分析案例对所有编程技巧进行总结提升。
第三篇,我们将视野展开,从SAS编程技术上升到数据分析师这个职业和数据分析行业,了解行业全貌,掌握必备技巧。笔者在本书最后一章还提出数据分析师的“士”型人才模型,帮助所有数据分析从业者建立起自我提升的正确途径。
本书读者对象
所面向的读者对象主要包含三类人:
l 初入数据分析行业的新人;
l 就业多年希望转行到数据分析岗位的人才;
l 在校学生。
以上三类读者的需求、现状、自身条件均不相同。初入数据分析行业的从业者往往需要快速提升以适应职场节奏;转行人才则需要对行业整体现状有所了解,才能更好地指导自己的学习工作;在校学生除了技术,更需要掌握一些数据分析经验。
针对这三类读者,笔者在书中除了编程知识的讲解,也将数据分析行业工作流程、技巧和行业发展融汇在本书之中,力求让所有读者在读过之后不仅学会数据分析技术,还能成为一名合格的数据分析师。
源代码下载包
为了方便读者更好地学习本书,笔者将书中源代码整理成下载包,读者可通过以下链接下载获取。
http://www.m.crphdm.com/2020/1119/14297.shtml
备用网盘链接:
https://pan.baidu.com/s/1nGp3RzZV0vbDr6KmI3UpgQ
提取码:rmjp
交流与感谢
本书的内容大都来源于笔者的工作经验,难免存在遗漏或不准确之处。若各位读者在阅读本书的过程中有任何的意见或者建议,欢迎发邮件到笔者的工作邮箱iwenhaoma@gmail.com,笔者会在第一时间给出回复。
感谢中国铁道出版社有限公司全体工作人员为本书出版所做的努力,尤其感谢策划编辑老师长达数个月的付出,为本书做出持续的指导。笔者与编辑老师交流的过程中,经常说到的一句话就是:好的图书一定是经过长期打磨而成的作品,这个道理笔者认为同样适用于数据分析师。一名好的数据分析师不一定一帆风顺、一路坦途,更多的是一路披荆斩棘、奋勇前进。只有沥血的手指,才能弹出不朽的乐章!
愿风雨和青山常伴各位的数据分析之路。 -
目录
第一篇 小扣柴扉——成为SAS编程高手
第1章 SAS——统计分析的专用语言
1.1 SAS程序员——一个一点也不酷的职业... 3
1.1.1 稳定性... 3
1.1.2 行业前景... 4
1.1.3 职业前景... 5
1.2 Python这么火,我为什么要学SAS. 7
1.2.1 R语言:统计分析专业户... 7
1.2.2 Python:成功“出圈”的编程语言... 8
1.2.3 SAS:非开源的强大数据分析工具... 10
1.3 SAS的行业应用... 12
1.3.1 医药行业... 12
1.3.2 金融行业... 14
1.3.3 营销行业... 15
第2章 跟SAS交个朋友
2.1 SAS的安装和版本介绍... 17
2.1.1 先聊聊SAS的发展脉络... 17
2.1.2 SAS三种不同版本的安装方式... 18
2.1.3 到底该用哪一版... 29
2.2 每个窗口都有用:日志、结果、输出... 30
2.2.1 桌面版... 31
2.2.2 SAS Studio版... 34
2.3 编写你的第一个SAS程序... 36
2.4 养成编程好习惯... 41
2.4.1 缩进——六合刀法... 42
2.4.2 关注日志——三分剑术... 43
2.4.3 善用注释——太极剑法... 48
2.4.4 帮助文档——北冥神功... 50
第3章 data步——数据集处理小能手
3.1 逻辑判断与数据集合并... 52
3.1.1 SAS的基本语法特点... 52
3.1.2 data步与proc. 53
3.1.3 逻辑判断语句... 53
3.1.4 数据集的合并... 56
3.2 数值型变量与字符型变量... 59
3.2.1 两种变量的概念... 60
3.2.2 数值型变量的相关函数... 62
3.2.3 字符型变量的相关函数... 64
3.3 数据格式... 69
3.3.1 创建、改变和删除数据格式... 70
3.3.2 数值型变量的格式... 74
3.3.3 字符型变量的格式... 75
3.3.4 自定义数据格式... 76
3.3.5 字符型变量与数值型变量的转换... 77
3.4 日期和时间的处理... 80
3.4.1 日期和时间变量的数据格式... 81
3.4.2 IOS8601格式... 84
3.4.3 日期和时间变量相关函数... 87
3.5 实战案例:多种方法计算药物副作用持续时间... 89
3.5.1 案例背景... 90
3.5.2 案例分析... 90
第4章 proc是个筐——数据分析往里装
4.1 data步力所不及?proc迎难而上... 94
4.1.1 怎么学习proc. 95
4.1.2 从proc append说开去... 96
4.2 数据清理第一步——排序与查重... 99
4.2.1 排序... 99
4.2.2 查重... 104
4.3 数据的转置与输出... 107
4.3.1 数据转置... 107
4.3.2 数据输出... 111
4.4 读取和存储外部文件... 116
4.4.1 数据输入... 116
4.4.2 data步与infile. 120
4.4.3 数据输出... 123
4.5 读取数据集和库的信息... 125
4.5.1 proc contents——一眼看穿数据集... 126
4.5.2 proc datasets——万能proc. 129
4.6 好风凭借力:在SAS中使用SQL. 136
4.6.1 SQL与proc——强强联合的数据分析工具... 137
4.6.2 操作变量与值... 138
4.6.3 数据集的合并... 143
4.6.4 使用proc SQL的正确姿势... 145
4.7 实战案例:使用proc sql进行副作用与伴随用药数据多对多合并... 146
4.7.1 案例背景... 146
4.7.2 数据明晰... 147
4.7.3 需求实现... 148
4.7.4 总结思考... 151
第二篇 登堂入室——掌握数据分析技巧
第5章 宏——重复的事情交给程序
5.1 宏编程概念初探... 155
5.1.1 什么是宏?三个字概括:自动化... 155
5.1.2 宏的好处千千万... 156
5.1.3 宏编程注意事项... 159
5.2 编写第一个宏程序... 160
5.2.1 宏程序的结构... 160
5.2.2 变量与宏变量——同名而不同姓的一对... 161
5.2.3 宏参数——让你的宏程序“活起来”. 163
5.2.4 宏相关的选项... 166
5.3 宏的三要素:宏变量、宏逻辑和宏函数... 169
5.3.1 宏变量——百变游戏房... 170
5.3.2 宏逻辑——穿针引线的书房... 175
5.3.3 宏函数——宏程序的起居室... 179
5.4 SAS语句无法实现?宏程序来帮你... 181
5.4.1 %sysfunc引用SAS函数... 181
5.4.2 %sysfunc处理文件... 183
5.4.3 %sysfunc获取系统信息... 186
5.5 实战案例:自动创建包含变量参数的数据集模板... 188
5.5.1 项目背景... 188
5.5.2 项目拆解... 190
5.5.3 编程实现... 191
5.5.4 调试反馈... 193
第6章 统计分析并不难
6.1 数据分析的本质:从数据到知识... 197
6.1.1 三级火箭与数据分析... 198
6.1.2 统计方法... 198
6.2 获取各种统计量... 205
6.2.1 proc means——常用的数值型变量统计量获取方式... 205
6.2.2 另一条道路... 211
6.2.3 proc freq——字符型变量我擅长... 212
6.3 实战案例:异常值处理... 216
6.3.1 什么是异常值... 217
6.3.2 异常值的影响与处理方法... 217
6.3.3 异常值出现的原因... 218
6.3.4 使用统计相关proc去除异常值... 219
6.3.5 使用proc sql找出异常值... 221
6.4 带你走进p value. 225
6.4.1 显著性检验... 225
6.4.2 P值、拒绝域和置信区间... 226
6.4.3 常见的分布类型... 228
6.4.4 从proc ttest说开去... 230
6.4.5 proc freq是箩筐,各种p值里面装... 232
6.5 实战案例:药物到底灵不灵... 234
6.5.1 随机双盲对照试验概念... 235
6.5.2 数据概览... 236
6.5.3 分析与实践... 237
6.5.4 案例总结... 240
6.6 其他统计分析功能常用模型... 240
6.6.1 生存分析... 241
6.6.2 回归分析... 244
6.6.3 相关性分析... 250
6.6.4 主成分分析... 252
第7章 生成统计报表
7.1 数据可视化——数据分析的最终目的... 255
7.1.1 数据可视化概念... 255
7.1.2 可视化方式的选择... 257
7.1.3 从SAS到各种输出格式——ODS是一座桥... 260
7.2 使用proc report生成数据报表... 266
7.2.1 proc report的基础知识... 267
7.2.2 define语句调整每一列的参数... 269
7.2.3 让表格更易懂:表头、脚注与分行... 275
7.2.4 proc report重要选项一览... 279
7.2.5 如何学好proc report 281
7.3 实战案例:生成层级化计数报表... 283
7.3.1 案例背景... 283
7.3.2 数据与需求分析... 284
7.3.3 创建数据集... 286
7.3.4 创建输出文件... 290
7.3.5 总结与思考... 293
7.4 变身艺术家:使用SAS绘图... 294
7.4.1 proc gchart——方便的绘图工具... 295
7.4.2 proc gplot——研究趋势和变化... 301
7.4.3 自定义你的图形——goption、symbol和其他语句... 306
7.4.4 其他常用的绘图proc. 308
7.5 实战案例:绘制生存曲线... 312
7.5.1 什么是生存分析... 313
7.5.2 案例背景与资源分析... 314
7.5.3 实战操作... 316
7.6 美化统计图表... 321
7.6.1 输出结果与模板... 322
7.6.2 模板的设计与封装... 326
7.6.3 如何成为proc template高手... 329
第8章 玩转数据——常用数据分析与处理技巧
8.1 设置基准线(Baseline)... 331
8.1.1 基准线的概念与定义方法... 332
8.1.2 SAS中定义基准线的方法... 333
8.1.3 常见问题和处理方法... 336
8.1.4 基准线与变化量统计图表... 338
8.2 缺失值的处理方法... 342
8.2.1 缺失不一定是错误... 342
8.2.2 均值法——最简单的填补方法... 344
8.2.3 特殊场景——末次观测值结转法(LOCF)... 348
8.2.4 日期时间的缺失与部分缺失... 350
8.3 数据的时间窗口... 352
8.3.1 什么是时间窗口... 352
8.3.2 SAS中实现日期窗口化的方法... 354
8.3.3 使用宏程序实现窗口化... 358
8.4 自动设置图表表头和脚注... 361
8.4.1 回顾与思考——如何创建表头和题注... 361
8.4.2 优秀的数据分析师应该“懒”一点... 364
8.4.3 创建自动批量设置表头和脚注的宏程序... 364
8.4.4 关于模块化和文档化编程的思考... 368
第9章 大型实战——从数据到图表的临床试验分析
9.1 药物上市流程全揭秘... 370
9.1.1 临床试验与审批... 371
9.1.2 随机双盲对照试验... 372
9.2 办事要按规矩来——CDISC标准浅析... 373
9.2.1 CDISC组织与CDISC标准——没有王冠的王者... 373
9.2.2 CDISC中包含什么... 375
9.2.3 SDTM——数据标准化... 376
9.2.4 ADaM——拿来就用的分析数据集... 379
9.2.5 如何学习SDTM与ADaM... 380
9.3 创建分析用数据集... 380
9.3.1 从分析结果入手的逆向思维... 380
9.3.2 从spec开始... 382
9.3.3 SDTM数据集的结构... 386
9.3.4 创建ADSL数据集... 388
9.4 创建分析图表... 393
9.4.1 项目分析... 393
9.4.2 数值型变量的统计量... 394
9.4.3 字符型变量的统计量... 396
9.4.4 创建宏程序... 399
9.4.5 创建输出图表... 407
第三篇 炉火纯青——深入数据分析行业
第10章 进入数据分析行业
10.1 从头开始进入数据分析行业... 413
10.1.1 数据分析的背后... 413
10.1.2 从零开始,逐步提升... 417
10.1.3 百尺竿头,更进一步... 418
10.1.4 重整旗鼓,梅开二度... 420
10.2 求职—面试—入职,每一步都先人一步... 421
10.2.1 任尔东西南北风——全面的求职准备... 421
10.2.2 把酒祝东风,且共从容——面试一本通... 423
10.2.3 春风得意,不如润物无声——入职全指南... 425
10.3 善用神兵利器,提升工作效率... 426
10.3.1 数据分析师的事,怎么能算抄... 427
10.3.2 宏程序已加载:工作量减50%.. 430
10.3.3 日常积累,终有大用... 431
10.3.4 沟通交流,必不可少... 432
第11章 是真名士自风流
11.1 什么是“士”型人才... 434
11.1.1 已破产的理论——“|”型人才和“一”型人才... 435
11.1.2 理论合并——“T”型人才的诞生... 436
11.1.3 更进一步——“十”型人才... 437
11.1.4 并非简单加一横——“士”型人才... 438
11.2 左右逢源——了解数据分析全流程... 439
11.2.1 为什么选择临床试验数据分析行业... 440
11.2.2 每个流程都要懂... 441
11.2.3 建立良好的人际关系... 443
11.3 上食埃土,下饮黄泉——从程序到项目... 444
11.3.1 让人又爱又恨的工作经验... 445
11.3.2 到底什么是工作经验... 446
11.3.3 从程序到项目的思维... 448
11.4 单点突破,方圆掌握——数据分析师的心法与身法... 450
11.4.1 扎稳下盘——了解数据分析在公司中的地位... 451
11.4.2 保持灵活,伺机而动... 452
11.4.3 八方来袭,岿然不动... 453
11.4.4 九层之台,起于累土... 453
-
作者介绍
-
编辑推荐
-
书评书荐
-
附件下载
图书推荐