编辑推荐
1.浓缩十年R统计分析、数据分析与R包开发经验。
2.统计分析理论与实践并重,知道怎么用,更懂其来龙去脉。
3.通俗易懂,注释一目了然,插图清新,双色阅读好体验。
内容简介
《R数据分析:方法与案例详解(双色)》是一本R语言和数据分析的入门教材,循序渐进、深入浅出,每个知识点尽量从实际的应用案例出发,以问题为导向,在解决问题中学习统计方法、R语言的基本使用以及编程技巧。 《R数据分析:方法与案例详解(双色)》内容涵盖R数据结构、函数与优化、抽样模拟、统计分析、假设检验、回归分析、统计绘图和R包制作等内容。 《R数据分析:方法与案例详解(双色)》的定位是为业界数据分析人员、经济管理类、医学的学生提供方法和程序上的参考,在写作过程中尽量删去比较理论的数学原理,这样能够帮助读者轻松上手学习。作者简介
方匡南,厦门大学经济学院统计系副教授、博士生导师、美国耶鲁大学博士后。主要研究大数据与数据挖掘、计量经济学等。主持过多项国家自然科学基金、国家社会科学基金以及企业横向课题。精通R语言并编写过多个R软件包。
朱建平,厦门大学经济学院统计系教授、博士生导师、教育部新世纪优秀人才、国家社科基金重大项目首席专家,福建省哲学社会科学领军人才。现任厦门大学数据挖掘研究中心主任,中国统计学会副会长、国务院学位办统计专业学位研究生教育指导委员会委员、教育部高等学校统计学类专业教学指导委员会秘书长。
姜叶飞,厦门大学统计学硕士,现任某软件公司资深数据分析师。精通R语言、数据库、统计图形、数据挖掘等,具有多年移动互联网、金融数据分析等经验。
精彩书评
★该书深入浅出、通俗易懂、案例详实,从数据分析角度讲解R在实际数据分析中的使用,是难得的一本R和数据分析入门的好书。
——谢邦昌,教授,台湾辅仁大学统计资讯系
★该书的每一章以实际问题启发的方式引出统计方法,再介绍数据分析和R软件的使用,辅以详细、恰当的案例,这样让枯燥乏味的数据分析和软件课程变得生动活泼,这是一本很好的数据分析入门教材,值得推荐。
——马双鸽,副教授,美国耶鲁大学生物统计系
★方老師在R领域着墨多年,今將多年的教学及研究成果整理成册,对读者而言乃是一大福音。
《R数据分析:方法与案例详解(双色)》浅显易懂,理论与实务兼具,是非常实用的书籍!
——李御玺,教授、系主任,台湾铭传大学计算机工程学系
★我很喜欢这《R数据分析:方法与案例详解(双色)》的编写体例,从问题出发,然后介绍方法和R语言的实现,非常适合需要用R来解决实际分析问题的读者。
——李舰,MangoSolutions,中国区数据总监
目录
第1章 初识R语言1
1.1 什么是R语言1
1.2 为什么用R语言2
1.3 安装R4
1.4 R扩展包4
1.4.1 R扩展包的安装与载入5
1.4.2 R包的使用6
1.5 R编辑器7
1.6 工作空间11
第2章 数据结构与基本运算13
2.1 数据类型13
2.2 数据对象14
2.2.1 向量15
2.2.2 矩阵21
2.2.3 数组31
2.2.4 因子32
2.2.5 列表33
2.2.6 数据框34
2.3 习题36
第3章 函数与优化38
3.1 常用的R内置函数38
3.2 条件控制语句38
3.2.1 if/else语句38
3.2.2 ifelse语句39
3.2.3 switch语句39
3.3 循环语句40
3.3.1 for循环40
3.3.2 while循环40
3.3.3 repeat语句41
3.4 编写自己的函数41
3.4.1 函数名42
3.4.2 关键词function42
3.4.3 参数42
3.4.4 函数体和函数返回值44
3.5 程序调试45
3.6 程序运行时间与效率46
3.7 用R做优化求解47
3.7.1 一元函数优化求解48
3.7.2多元函数优化求解48
3.7.3 约束条件下的优化求解50
3.8 习题52
第4章 随机数与抽样模拟54
4.1 一元随机数的产生54
4.1.1 均匀分布随机数54
4.1.2 正态分布随机数56
4.1.3 指数分布随机数57
4.1.4 离散分布随机数的生成58
4.1.5 常见分布函数表59
4.2 多元随机数的生成61
4.2.1 多元正态分布随机数61
4.2.2 多元正态分布密度函数、分位数与累积概率63
4.2.3 多元t分布随机数64
4.3 随机抽样65
4.3.1 放回与放回抽样65
4.3.2 bootstrap重抽样66
4.4 统计模拟67
4.4.1 几种常见的模拟方法67
4.4.2 模拟函数的建立方法70
4.5 习题73
第5章 数据读写与预处理74
5.1 数据的读入74
5.1.1 直接输入数据74
5.1.2 读R包中的数据75
5.1.3 从外部文件读入数据75
5.2 写出数据79
5.3 数据预处理80
5.3.1 变量预处理81
5.3.2 变量重编码82
5.3.3 变量重命名84
5.3.4 变量类型的转换85
5.3.5 日期变量的变换86
5.4 缺失数据处理87
5.4.1 缺失数据的识别87
5.4.2 缺失数据的探索与检验88
5.4.3 缺失数据的处理89
5.5 数据集的合并与拆分90
5.5.1 数据框的合并与拆分90
5.5.2 数据集的合并92
5.5.3 数据集的抽取92
5.6 习题93
第6章 探索性数据分析94
6.1 主要分析工具94
6.1.1 探索性数据分析的工具94
6.1.2 数据的类型98
6.2 单变量数据分析99
6.2.1 分类型数据99
6.2.2 数值型数据101
6.2.3 离群值探索106
6.3 双变量数据分析109
6.3.1 分类数据对分类数据109
6.3.2 分类数据对数值型数据111
6.3.3 数值型数据对数值型数据112
6.4 多变量数据分析115
6.4.1 访问数据框数据115
6.4.2 多变量数据的分析.118
6.5 习题124
第7章 参数假设检验126
7.1 假设检验的思想与步骤126
7.1.1 假设检验的基本思想126
7.1.2 假设检验的基本步骤128
7.2 正态总体单样本参数假设检验129
7.2.1 均值的检验130
7.2.2 方差检验132
7.3 正态总体双样本参数假设检验134
7.3.1 双样本方差的检验(方差齐性检验).134
7.3.2 两样本均值检验135
7.4 比例假设检验139
7.4.1 单样本比例检验139
7.4.2 两样本比例检验141
7.5 习题142
第8章 非参数假设检验144
8.1 图示法144
8.2 卡方检验146
8.2.1 卡方分布(χ2distribution)147
8.2.2 卡方拟合优度检验.148
8.2.3 卡方独立性检验151
8.2.4 卡方两样本同质性检验151
8.3 秩和检验152
8.3.1 秩的概念153
8.3.2 单样本符号秩检验.153
8.3.3 两独立秩和检验154
8.3.4 多个独立样本的秩和检验155
8.3.5 多个相关样本的秩和检验158
8.4 K-S检验160
8.4.1 K-S单样本总体分布验证160
8.4.2 K-S两独立样本同质检验160
8.5 常用正态性检验162
8.5.1 偏度、峰度检验法.162
8.5.2 Shapiro-Wilk(W检验)163
8.5.3 其他常用正态检验.165
8.6 习题167
第9章 方差分析169
9.1 单因素方差分析170
9.2 双因素方差分析174
9.2.1 不考虑交互作用的双因素方差分析174
9.2.2 考虑交互作用的双因素分析178
9.3 习题183
第10章 线性回归模型184
10.1 问题提出184
10.2 一元线性回归185
10.2.1 一元线性回归概述186
10.2.2 一元线性回归的参数估计188
10.2.3 一元线性回归模型的检验195
10.2.4 一元线性回归的预测197
10.2.5 一元线性回归综合案例201
10.3 多元线性回归分析205
10.3.1 多元线性回归模型及假定206
10.3.2 参数估计207
10.3.3 模型检验209
10.3.4 预测211
10.3.5 多元线性回归综合案例213
10.4 习题218
第11章 线性回归模型的扩展220
11.1 多重共线性220
11.1.1 问题的提出220
11.1.2 多重共线性定义及后果222
11.1.3 多重共线性检验222
11.1.4 多重共线性克服225
11.2 异方差性229
11.2.1 问题的提出229
11.2.2 异方差性定义及后果231
11.2.3 异方差性检验232
11.2.4 异方差性克服236
11.3 序列相关性240
11.3.1 问题的提出241
11.3.2 序列相关性定义及后果243
11.3.3序列相关性检验245
11.3.4 序列相关性克服248
11.4 习题251
第12章 非线性回归分析254
12.1 问题的提出254
12.2 可线性化的非线性回归255
12.2.1 Cobb-Douglas生产函数255
12.2.2 多项式方程模型257
12.2.3 指数函数模型259
12.3 不可线性化的非线性回归260
12.3.1 非线性模型的参数估计与迭代算法262
12.3.2 初始值选取269
12.3.3 收敛性270
12.4 非线性回归评价和假设检验271
12.4.1 可决系数271
12.4.2 参数显著性的F检验271
12.4.3 似然比检验272
12.5 习题274
第13章 二元选择模型275
13.1 问题的提出276
13.2 线性概率(LP)模型原理277
13.3 Probit模型原理279
13.4 Logit模型原理280
13.5 边际效应分析281
13.6 最大似然估计(MLE)282
13.7 似然比检验和拟合优度282
13.8 案例分析:经济学教学新方法的效果284
13.9 扩展案例:信用卡违约预测分析289
13.9.1 描述性统计290
13.9.2 模型建立与参数估计291
13.9.3 系数意义与边际分析295
13.9.4 拟合与预测296
13.9.5 结论与建议297
13.10 习题297
第14章 多元选择模型299
14.1 有序选择模型299
14.1.1 问题的提出:本科生申请研究生的影响因素300
14.1.2 有序选择模型300
14.1.3 案例分析:本科生申请研究生的影响因素302
14.2 多元序Logit模型304
14.2.1 问题的提出:关于钓鱼模式的选择304
14.2.2 多元序Logit模型305
14.2.3 案例分析:关于钓鱼模式的选择307
14.3 嵌套Logit模型309
14.3.1 问题的提出:旅行交通方式选择309
14.3.2 嵌套Logit模型原理310
14.3.3 案例分析:旅行交通方式选择311
14.4 习题313
第15章 计数模型与受限因变量模型314
15.1 计数模型314
15.1.1 问题的提出:轮船事故的计数数据模型314
15.1.2 计数数据模型的设定316
15.1.3 计数数据模型的估计317
15.2 受限因变量模型319
15.2.1 截断模型的问题提出319
15.2.2 截断模型原理319
15.2.3 审查模型问题的提出321
15.2.4 审查模型原理322
15.2.5 最大似然估计(MLE)323
15.3 习题328
第16章 分位数回归330
16.1 问题的提出330
16.2 总体分位数和总体中位数332
16.3 经验分位数估计333
16.4 分位数回归原理334
16.5 扩展案例:社会保障与城乡家庭消费339
16.5.1 问题的提出339
16.5.2 数据说明339
16.5.3 实证分析342
16.5.4 结论与建议345
16.6 习题345
第17章 高级统计绘图346
17.1 绘制地图346
17.2 高阶绘图工具――ggplot2355
17.2.1 散点图355
17.2.2 散点图上添加平滑曲线358
17.2.3 条形图和箱线图360
17.2.4 直方图和密度曲线图362
17.2.5 时间序列图364
17.2.6 图形标注365
17.3 三维图形与等高线图366
17.3.1 三维图形366
17.3.2 等高图/等高线368
17.4 词云369
17.5 散点图矩阵与关系矩阵图370
17.6 马赛克图372
17.7 习题374
第18章 如何制作自己的R包375
18.1 R包基础376
18.2 在Windows中制作R包377
18.3 在RStudio中制作R包381
18.4 习题383
参考文献384前言/序言
R语言是由新西兰奥克兰大学的RossIhaka与RobertGentleman一起开发的一个面向对象的编程语言,因两人的名字都是以R开头,所以命名为“R”。R是“GNUS”,一个免费开源、能够自由有效地用于统计计算和绘图的语言和环境,可以在UNIX、Windows和MacOS系统中运行,它提供了广泛的统计分析和绘图技术,包括回归分析、时间序列、分类和聚类等方法。
2009年,《纽约时报》发表了题为“DataAnalystsCaptivatedbyR’sPower”的社评,集中讨论了R语言在数据分析领域的发展,并引发了SAS和R用户广泛而激烈的争论。文章认为,让R变得如此有用和如此快地广受欢迎的原因是统计学家、工程师和科学家们在不断精炼代码或编写各种特有而具体的包。而且现在R软件增添了很多高级算法、作图颜色和文本注释,以及为与数据库链接等提供挖掘技术。文中引用了几位科学家对R做的高度评价,如Google首席经济学家HalVarian讲了一句很好的话:“R最优美的地方是它能够修改很多前人编写的包的代码做各种你所需要的事情,实际上你是站在巨人的肩膀上。”
2010年,美国统计协会(AmericanStatisticalAssociation)将第一届“统计计算及图形奖”授予R语言,用于表彰其在统计应用和统计研究方面广泛的影响。
笔者自接触R语言至今已近10年,记得最早听到R语言是2004年日本同志社文化大学情报研究所金明哲教授前来讲座,他给我们讲了一个关于利用文本挖掘方法破了人身意外保险诈骗杀人案。第一次听到数据挖掘竟然可以如此神奇的破案,便被深深地吸引住了,当初金教授提到其主要分析工具就是R语言。这是笔者第一次接触R语言。
其后,笔者的硕士导师王斌会教授要求我们学习R语言,坦诚地讲,R语言对于刚入门的人来讲确实有点困难,而且那个时候R语言的参考书少得可怜,当时市面上还没有R语言中文教材,用的人也很少。我参与了王斌会老师R语言中文教材的编写小组,一边学习R语言英文经典教材,一边整理学习心得和相关资料。一年之后,第一本R语言中文教材《R语言统计分析软件教程》面世了。通过编写教材,笔者从中体会到了学习R语言的乐趣,自从学会了R语言,笔者之后的数据分析主要使用的都是它。
后来,人大经济论坛邀请笔者为他们录制R语言视频课程,笔者利用闲暇时间整理讲义,先后录制了《R语言初级》《R语言高级》《R金融时间序列初级》和《R金融时间序列高级》等视频课程,反响很好,很多学员要求笔者写相应的系列教材,由于繁重的科研压力以及个人的惰性,虽有此想法已久,但却迟迟未动笔。后来成为厦门大学教师,系里让教《计算机在统计中的应用》一课,笔者觉得讲R语言是最恰当不过了,因此边上课,边整理讲义,并不断地完善,教该课程已经4年,讲义也先后修改了4年。
再后来,人大经济论坛又邀请笔者为他们在北京、上海等地开设暑期和节假日现场公开课,前来听课的学生既有国内外著名高校的教师和研究生,又有医药公司的数据分析人员以及互联网企业的数据分析人员等,他们对笔者的讲义提了很多有用的建议。笔者在这些公开课的讲课中,不断地完善讲义,最终形成了此书。关于如何取一个恰当而又响亮的书名,确实是一件挺难的事,笔者想了好几个书名,但最终还是认为取名为《R数据分析——方法与案例详解》可能比较合适。
该书是一本R语言和数据分析的入门教材,内容循序渐进、深入浅出,每个知识点都尽量
从实际的应用案例出发,以问题为导向,在解决问题中学习统计方法、R语言的基本使用以及编程技巧。《R数据分析:方法与案例详解(双色)》的定位是为业界数据分析人员、经济管理类和医学类的学生提供方法和程序上的参考,在写作过程中尽量删去比较理论的数学原理,当然有些原理部分无法跳过,所以在学习时需要有一定高等数学和概率论的基础,但如果想真正掌握某个统计方法,那么学习其背后的原理还是非常有必要的。当然,如果对方法的原理确实不感兴趣,只是为了用R程序实现某种方法,或者分析某个有意义的数据,则可以跳过原理,只看案例和程序即可。
该书的姐妹书,会讲解更为高深的统计方法,涉及聚类分析、分类分析、关联规则、时
间序列等问题,更注重在互联网、金融、企业营销、基因分析等领域的应用,目前暂定书名为《R数据挖掘——方法与案例详解》。
该书适合作为高校数据分析相关专业的教科书,也适合供医学、市场调查、金融以及互联
网等企业的相关数据分析人员阅读。
《R数据分析:方法与案例详解(双色)》第1章和第2章由方匡南、姜叶飞撰写,第3章和第4章由方匡南撰写,第5章由方匡南、易煌迪撰写,第6章到第9章由方匡南撰写,第10章到第15章由朱建平、方匡南撰写,第16章由方匡南撰写,第17章由方匡南、姜叶飞撰写。第18章由方匡南、张声威撰写。最后由方匡南、朱建平进行加工总纂、修改定稿。王秉权参与了第4章到第12章的校对、修改等工作。欧阳汉参与了第7章到第9章的校对、修改。感谢成都道然科技有限责任公司的专业意见和建议。感谢四川大学严珂玮为《R数据分析:方法与案例详解(双色)》配的精美插画。感谢夫人张晶在我的写作过程中给予的支持和帮助。再次感谢为《R数据分析:方法与案例详解(双色)》提供了直接或者间
接帮助的各位朋友,没有你们的帮助,《R数据分析:方法与案例详解(双色)》的出版没有这么顺利。
由于作者水平有限,书中难免有错误和不足之处,恳请读者批评指正!
方匡南
2014.8.1