致教师
对于物理、化学或生物学这样的学科而言,我们学习一门学科是为了解决这门学科的问题,而统计学与这些学科不同,研究统计学的主要目的是解决其他学科的问题.
——C.R.Rao,现代统计学的先驱之一
教育的作用是教人认真思考和批判性思考.智慧与品格——这才是教育的真正目标.
——马丁·路德·金博士,美国民权领袖
其万折也必东,似志.
——孔子,中国古代哲学家
本书主要是为数据科学(包括计算机科学)专业学生设计的概率与统计教材,涵盖初级/高级/研究生水平的概率论和统计学知识.除微积分外,本书还要求学生掌握一些矩阵代数知识并具备基本的计算机编程能力.
但是,这本书为什么不同于其他概率论和数理统计教材呢?
事实上,这本书确实与其他概率论与数理统计方面的书完全不同.简要概括如下:
●本书英文版的副书名是Math+R+Data,这里直接体现了本书与其他数理统计类书籍的不同.
●强调数据科学应用,例如,随机图模型、幂律分布、隐马尔可夫模型、主成分分析、谷歌PageRank、遥感、混合分布、神经网络、维数灾难等.
●广泛使用R语言.
与其他数理统计类书籍相比,本书特别强调应用,使用了大量的真实数据.
本书从应用的角度出发组织内容,注重培养学生批判性思考使用统计学的方式和原因,并使学生具有“全局观”.
●使用真实数据,并及早地引入统计问题.
前面的Rao语录引起了我的强烈共鸣.虽然这是一本“数理统计”教材,涵盖了随机变量、密度函数、期望值、分布、统计估计和推断等,但是正如本书书名所体现的,本书特别强调这些知识在数据科学中的应用.作为一本关于数据科学的书,即使只是一本数理统计书,也应该充分利用数据!
这对本书章节的顺序有影响.我们很早地引入了统计学,并在正文中穿插着统计问题.甚至是在介绍数学期望的第3章,也包括一些简单的预测模型,为学习第15章的内容作铺垫.第5章介绍著名的离散参数模型,并包含用幂律分布拟合真实数据的例子.这是第7章的前奏,之后在第7章将讨论抽样分布、均值和方差估计、偏差等知识.第8章介绍点估计,并利用极大似然估计和矩方法对真实数据进行模型拟合.从该章起,后面每一章都广泛使用了真实数据.
因为这些数据集都是公开的,所以授课教师可以深入研究这些数据示例.
●数学上正确——还要有很好的直觉.
. 前面给出的孔子的这句话虽然早在统计方法正式发展之前就有了,但是这表明他已经具有敏锐的直觉,预见了当今数据科学领域的一个基本概念——数据平滑.培养学生的这种强烈的直觉是本书的重中之重.
这当然是一本数学书.所有模型、概念等都是用随机变量和分布来精确描述的.除了微积分之外,矩阵代数也扮演着重要的角色.在许多章节的最后都增加了选学的数学补充内容,以便为好奇的读者提供更多材料,探索更复杂的内容.每章后的练习都包括一些常规练习题和一些更具挑战性的问题.
另外,这本书不是为了数学而“数学”的书,尽管用数学语言对相关内容描述得很精确,但它绝不是一本理论书.
例如,本书并没有从样本空间和集合论的角度来定义概率.以我的经验,用经典的方式定义概率是学习这些概念背后的直觉的一个主要障碍,也阻碍了后面做好应用工作.相反,我使用直觉的、非形式化的方法,从长期频率的角度来定义概率,本质上是把强大数定律作为一个公理.
我相信这种方法在解释条件概率和期望值时特别有用,这些概念是学生们常遇到的难题.在经典的方法下,如果题目叙述没有给定明确的短语(如给定条件下),学生们很难识别出这个练习(甚至是实际应用)需要条件概率或期望.相反,我是让学生从反复试验的角度来思考,在B发生的时间里,A发生了多少次?这更容易与实际相联系.
●提高学生的实际应用能力.
“应用”这个词对于不同的人意味着不同的事.例如,Mitzenmacher和Upfal\[33\]为计算机科学专业的学生编写了一本有趣而优雅的书,他所关注的概率实际上是离散型概率,他的预期应用实际上是针对计算机科学的理论.
相反,我关注的是在现实世界中使用这些知识,这往往涉及更多的是连续型而不是离散型概率,并且更多的是在统计学而不是概率论领域.这尤其有价值,因为现在大数据和机器学习在计算机和数据科学中发挥着重要的作用.
你马上可以在书中看到这种哲学.这本书的第一个例子不是关于骰子或硬币的,而是涉及公交系统模型和计算机网络模型.当然,书中也有使用骰子、硬币和游戏的例子,但是,就像已故的Leo Breiman的书\[5\]的副书名一样,“着眼于应用”(With a View toward Applications)永远不会遥远.
如果我可以冒昧地引述马丁·路德·金的话,我要指出的是,今天的统计学是一个核心的知识领域,它几乎影响着每个人的日常生活.具有使用统计数据或者至少可以理解统计数据的能力,对于我们来说至关重要.作为本书的作者,我将此视为一项使命.
●R编程语言的使用.
出于模拟和数据分析的目的,本书利用了R语言中一些轻量级的程序.学生应该具有一些基本的编程背景,比如说Python、C、Java或R中的一个,但是无须先前有R的编程经验.在本书的附录中,我给出了一些简要介绍,并且一些高级的R语言编程知识会作为补充内容穿插在正文当中.
因为R具有出色的图形和可视化能力,并且有10000多个宝贵的代码包,所以R被广泛应用于统计和数据科学领域.
计算机科学领域的读者会发现,从计算机科学的角度来看,R是独立的.首先,R遵循函数语言和面向对象的范式:每个动作都是作为函数实现的(甚至是“+”);几乎总是可以避免副作用;函数是第一类对象;提供几种不同的类结构.R中还提供了各种有趣的元编程功能.在编程支持方面,有非常流行的RStudio IDE,而对于“硬核”编码,有Emacs Speak Statistics框架.本书的大部分章节都有“计算补充”,以及练习中的“计算和数据问题”.
主要内容
第一部分(第1~6章):这部分介绍了概率论、蒙特卡罗模拟、离散型随机变量、期望值和方差,以及离散参数分布族.
第二部分(第7~10章):这部分主要介绍统计学,如抽样分布、极大似然估计、偏差、Kolmogorov-Smirnov等,并通过γ和β密度模型拟合实际数据来说明.直方图被视为密度估计量,这部分还简要介绍了核密度估计,接下来介绍了置信区间和显著性检验的相关内容.
第三部分(第11~17章):这部分涵盖了多元分析的各个方面,例如多元分布、混合分布、PCA/对数线性模型、降维、过拟合和预测分析.同样,真实数据起着重要作用.
内容安排
这本书可以在一个学期内轻松学完.如果需要更轻松的节奏,或者想要半学期内讲授完,这本书也适用,因为即使跳过某些部分也不会影响内容的连续性.特别地,如果是一门更注重统计学的课程,可能会忽略马尔可夫链的相关内容,而如果是一门更注重机器学习的课程,可能希望保留这些内容(例如,隐马尔可夫模型部分).关于某些专业主题,还单独编写一节来介绍,以防后面跳过这些章节时产生阅读障碍.
第11章有关多元分布的内容对于数据科学来说非常有用,例如,多元分布与聚类的关系.然而,如果时间紧迫或者教师的矩阵代数背景不强,也可以安全地跳过这部分内容.
致读者
我曾经上过一门速读课,20分钟就读完了《战争与和平》.它和俄罗斯有关.
——伍迪·艾伦,喜剧演员
我很早就体会到了“知道某事物的名称”和“了解某事物”之间的区别.
——理查德·费曼,诺贝尔物理学奖获得者
磨刀不误砍柴工.
——亚伯拉罕·林肯
这不是你所熟悉的普通数学书或者编程书.
为了在实际应用中恰当地使用本书,准确地理解数学含义和代码的实际功能是非常重要的.
在本书中,你会经常发现连续几段甚至一整页都没有数学内容、代码或图表.千万别跳过这部分!它们可能是为了培养你在现实世界中运用这些知识的能力,因此它们可能是本书中最重要的部分.
在这一点上,数学直觉是关键.当你阅读时,停下来想想这些方程式背后的逻辑和意义.
一个密切相关的观点是数学和代码是相辅相成的.了解每一个都会让你对另一个有更深的理解.本书穿插了数学和代码,乍一看似乎有些奇怪,但是很快你就会发现它们的相互作用对于你理解这些知识是非常有帮助的.
“情节”
把这本书想象成一部电影.为了使“情节”更吸引人,我们需要事先铺垫.这本书的目的是讲解概率和统计知识在数据科学中的应用,所以“情节”的最终目的是统计和预测分析.
这些领域的基础是概率论,所以我们首先在第1~6章奠定基础.后续需要更多的概率内容会在第9章和第11章介绍,但是为了尽早把一些生动的“素材”带入“电影”中,我们在第7章和第8章介绍了统计学内容,特别是对真实数据的分析.
最后一章的马尔可夫链就像电影的续集.该理论建立了一些令人兴奋的数据科学应用,例如,隐马尔可夫模型和谷歌的PageRank搜索引擎.
致谢
以下是我要非常感谢的人,他们给我提供了非常有价值的反馈意见:Ibrahim Ahmed、Ahmed Ahmedin、Stuart Ambler、Earl Barr、Benjamin Beasley、Matthew Butner、Vishal Chakraborti、Michael Clifford、Dipak Ghosal、Noah Gift、Laura Matloff、Nelson Max、Deep Mukhopadhyay、 Connie Nguyen、Jack Norman、Richard Oehrle、Michael Rea、Sana Vaziri、Yingkang Xie和Ivana Zetko.我的编辑John Kimmel总是非常乐于助人.还要感谢我的妻子Gamis和我的女儿Laura一如既往的鼓励.