(This page has no text content)
(This page has no text content)
图 灵 程 序 设 计 丛 书 人 民 邮 电 出 版 社 北 京 统计思维 程序员数学之概率统计 Think Stats [美]Allen B. Downey 著 张建锋 陈钢 译 Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo O’Reilly Media, Inc.授权人民邮电出版社出版
内 容 提 要 《统计思维 :程序员数学之概率统计》是一本以全新视角讲解概率统计的入 门图书。抛开经典的数学分析,Downey 手把手教你用编程理解统计学。概率、 分布、假设检验、贝叶斯估计、相关性等,每个主题都充满趣味性,经编程解 释后变得更为清晰易懂。 本书研究数据主要来源于美国全国家庭成长调查(NSFG)与行为风险因素 监测系统(BRFSS),数据源及解决方案的相关代码全部开放,具体章节列出了 大量学习和进阶资料,方便读者参考。 本书面向广大程序员和计算机专业的学生。 图灵程序设计丛书 统计思维:程序员数学之概率统计 定价:29.00元 读者服务热线:(010)51095186转604 印装质量热线:(010)67129223 反盗版热线:(010)67171154 著 [美] Allen B. Downey 译 张建锋 陈 钢 责任编辑 刘美英 责任印制 焦志炜 人民邮电出版社出版发行 北京市崇文区夕照寺街14号 邮编 100061 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn 北京 印刷 开本:880×1230 1/32 印张:5 字数:125千字 2013年 5 月第 1 版 印数:1 — 4 000册 2013年 5 月北京第 1次印刷 著作权合同登记号 图字:01-2012-8793号 ISBN 978-7-115-31737-7 ◆ ◆ ◆
III 版权声明 © 2011 by Allen B. Downey. Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Posts & Telecom Press, 2013. Authorized translation of the English edition, 2011 O’Reilly Media, Inc., the owner of all rights to publish and sell the same. All rights reserved including the rights of reproduction in whole or in part in any form. 英文原版由 O’Reilly Media, Inc. 出版 2011。 简体中文版由人民邮电出版社出版,2013。英文原版的翻译得到 O’Reilly Media, Inc. 的授权。此简体中文版的出版和销售得到出版权和 销售权所有者的许可。 版权所有,未得书面许可,本书的任何部分和全部不得以任何形式重制。
O’Reilly Media 通过图书、杂志、在线服务、调查研究和会议等方式传播创新知 识。自 1978 年开始,O’Reilly 一直都是前沿发展的见证者和推动者。超级极客 们正在开创着未来,而我们关注真正重要的技术趋势——通过放大那些“细微 的信号”来刺激社会对新科技的应用。作为技术社区中活跃的参与者,O’Reilly 的发展充满了对创新的倡导、创造和发扬光大。 O’Reilly 为软件开发人员带来革命性的“动物书”;创建第一个商业网站 (GNN);组织了影响深远的开放源代码峰会,以至于开源软件运动以此命名; 创立了 Make 杂志,从而成为 DIY 革命的主要先锋;公司一如既往地通过多种 形式缔结信息与人的纽带。O’Reilly 的会议和峰会聚集了众多超级极客和高瞻 远瞩的商业领袖,共同描绘出开创新产业的革命性思想。作为技术人士获取信 息的选择,O’Reilly 现在还将先锋专家的知识传递给普通的计算机用户。无论 是通过书籍出版、在线服务或者面授课程,每一项 O’Reilly 的产品都反映了公 司不可动摇的理念——信息是激发创新的力量。 业界评论 “O’Reilly Radar 博客有口皆碑。” ——Wired “O’Reilly 凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的 业务。” ——Business 2.0 “O’Reilly Conference 是聚集关键思想领袖的绝对典范。” ——CRN “一本 O’Reilly 的书就代表一个有用、有前途、需要学习的主题。” ——Irish Times “Tim 是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实 地按照 Yogi Berra 的建议去做了:‘如果你在路上遇到岔路口,走小路(岔 路)。’回顾过去,Tim 似乎每一次都选择了小路,而且有几次都是一闪即 逝的机会,尽管大路也不错。” ——Linux Journal O’Reilly Media, Inc.介绍
v 译者序 搞科研的都知道,论文发表情况是评判科研水平的主要指标,而学术 期刊的影响因子则代表了期刊的档次,从而也就直接反映了论文的水 平。在统计学领域,影响因子最高的期刊是什么?不是《皇家统计学 会志,B 辑》(JRSS B),也不是大名鼎鼎的《统计年鉴》(Annals of Statistics)和《美国统计学会会刊》(JASA),而是《统计软件杂志》 (Journal of Statistical Software)。什么?我推导了十几页公式,提出 了如此高级的统计模型,证明了十几年无人搞定的定理,竟然还不如 写两千行代码,发布一个统计分析的小工具? 这样的统计学世界让人感觉怪怪的,但现实如此。统计学的分析对象 再也不放进打印在 A4 纸上的表格,靠普通计算器和教科书附录中的 各种表格已经不可能实现现实所需的统计分析——离开了计算机,统 计在现代科学和工程领域寸步难行。 不讲代码的统计学图书已经过时了! 你手中的这本书不是教你如何在 SPSS 中点鼠标,也不是如何在 SAS 中调用函数,而是介绍如何用 Python 这样的通用编程语言去获取和处 理原始数据,去理解和实现统计分析,去跟上时代对统计的要求。 本书采用大量实例介绍了基本的统计分析知识,教你如何用 Python 编 程语言实现各种分析,乃至画出统计图形。本书提供了绝对实用的配套
vi | 译者序 代码,你可以直接“拿来”对大量数据进行分析。作者 Allen Downey 是高校副教授,先后获得麻省理工学院计算机科学硕士和加州大学伯克 利分校计算机科学博士学位。别惊讶,是的!计算机专业的教授写的统 计学读本,这才是这本书最大的亮点。统计学和计算机在本书中紧紧地 拥抱在一起,这是多美好的场景。 好吧,准备好键盘,让我们开始一次硅世界的统计学旅程! 张剑锋 陈钢 2013 年 3 月 26 日于深圳华大基因 致谢 感谢发起本书翻译的陈钢博士,他出色地引导我完成了本书部分章节 的翻译工作。感谢图灵编辑部的刘美英女士,她对本书的校译和定稿 提供了宝贵意见和辛勤劳动。感谢所有引导我走上统计学道路的人 们,他们让我认识了一个如此精彩纷呈的世界。 感谢我的家人,你们是我在艰难中前行的不竭动力。 ——张建锋 感谢我的合作者张建锋,他在关键时刻参与了本书的翻译工作。感谢 图灵的傅志红、李松峰、刘美英等编辑的帮助和宽容,让我们能最终 完成这本书的翻译工作。 谨以此书献给我的夫人王倩和儿子陈涤菲,你们是我所有努力的动力 源泉。 ——陈钢
vii 前言 .............................................................................................................................. xi 第 1 章 程序员的统计思维 .................................................................................. 1 1.1 第一个孩子出生晚吗 ..................................................................................... 2 1.2 统计方法 ......................................................................................................... 3 1.3 全国家庭成长调查 ......................................................................................... 4 1.4 表和记录 ......................................................................................................... 5 1.5 显著性 ............................................................................................................. 9 1.6 术语 ............................................................................................................... 10 第 2 章 描述性统计量 ......................................................................................... 13 2.1 均值和平均值 ............................................................................................... 13 2.2 方差 ............................................................................................................... 14 2.3 分布 ............................................................................................................... 15 2.4 直方图的表示 ............................................................................................... 16 2.5 绘制直方图 ................................................................................................... 17 2.6 表示概率质量函数 ....................................................................................... 19 2.7 绘制概率质量函数 ....................................................................................... 21 2.8 异常值 ........................................................................................................... 22 2.9 其他可视化方法 .......................................................................................... 23 2.10 相对风险 ..................................................................................................... 24 2.11 条件概率 ..................................................................................................... 24 2.12 汇报结果 ..................................................................................................... 25 目录
viii | 目录 2.13 术语表 ......................................................................................................... 26 第 3 章 累积分布函数 ........................................................................................ 29 3.1 选课人数之谜 ............................................................................................... 29 3.2 PMF 的不足 .................................................................................................. 31 3.3 百分位数 ....................................................................................................... 33 3.4 累积分布函数 ............................................................................................... 34 3.5 CDF 的表示 .................................................................................................. 36 3.6 回到调查数据 ............................................................................................... 37 3.7 条件分布 ....................................................................................................... 38 3.8 随机数 ........................................................................................................... 39 3.9 汇总统计量小结 ........................................................................................... 40 3.10 术语表 ......................................................................................................... 40 第 4 章 连续分布 .................................................................................................. 43 4.1 指数分布 ....................................................................................................... 43 4.2 帕累托分布 ................................................................................................... 47 4.3 正态分布 ....................................................................................................... 49 4.4 正态概率图 ................................................................................................... 52 4.5 对数正态分布 ............................................................................................... 54 4.6 为什么需要模型 .......................................................................................... 57 4.7 生成随机数 ................................................................................................... 58 4.8 术语 ............................................................................................................... 58 第 5 章 概率 ........................................................................................................... 61 5.1 概率法则 ....................................................................................................... 62 5.2 蒙提霍尔问题 ............................................................................................... 65 5.3 庞加莱 ........................................................................................................... 67 5.4 其他概率法则 ............................................................................................... 68 5.5 二项分布 ....................................................................................................... 69 5.6 连胜和手感 ................................................................................................... 69 5.7 贝叶斯定理 ................................................................................................... 72 5.8 术语 ............................................................................................................... 75 第 6 章 分布的运算 ............................................................................................. 77 6.1 偏度 ............................................................................................................... 77
目录 | ix 6.2 随机变量 ....................................................................................................... 79 6.3 概率密度函数 .............................................................................................. 81 6.4 卷积 ............................................................................................................... 82 6.5 正态分布的性质 ........................................................................................... 85 6.6 中心极限定理 ............................................................................................... 86 6.7 分布函数之间的关系框架 ........................................................................... 88 6.8 术语表 ........................................................................................................... 89 第 7 章 假设检验 .................................................................................................. 91 7.1 均值差异的检验 .......................................................................................... 92 7.2 阈值的选择 .................................................................................................. 94 7.3 效应的定义 .................................................................................................. 96 7.4 解释统计检验结果 ...................................................................................... 96 7.5 交叉验证 ...................................................................................................... 98 7.6 报道贝叶斯概率的结果 .............................................................................. 99 7.7 卡方检验 .................................................................................................... 100 7.8 高效再抽样 ................................................................................................ 102 7.9 功效 ............................................................................................................ 103 7.10 术语 .......................................................................................................... 104 第 8 章 估计 ......................................................................................................... 107 8.1 关于估计的游戏 ......................................................................................... 107 8.2 方差估计 ..................................................................................................... 109 8.3 误差 ............................................................................................................. 110 8.4 指数分布 ..................................................................................................... 111 8.5 置信区间 ..................................................................................................... 111 8.6 贝叶斯估计 ................................................................................................. 112 8.7 贝叶斯估计的实现 ..................................................................................... 114 8.8 删失数据 .................................................................................................... 116 8.9 火车头问题 ................................................................................................. 117 8.10 术语 .......................................................................................................... 121 第 9 章 相关性 .................................................................................................... 123 9.1 标准分数 ..................................................................................................... 123 9.2 协方差 ......................................................................................................... 124 9.3 相关性 ......................................................................................................... 125
x | 目录 9.4 用 pyplot 画散点图 ..................................................................................... 127 9.5 斯皮尔曼秩相关 ......................................................................................... 130 9.6 最小二乘拟合 ............................................................................................. 132 9.7 拟合优度 ..................................................................................................... 135 9.8 相关性和因果关系 ..................................................................................... 137 9.9 术语 ............................................................................................................ 139 作者及封面简介 .................................................................................................... 141 索引 ........................................................................................................................... 142
xi 前言 为何写这本书 本书是一本全新的概率统计入门教材,重点介绍如何用统计学方法分 析大型数据集。本书会介绍如何使用计算机实现各种统计方法,这有 诸多优点。 学生可以通过编写程序来深化和检查自己对概念的理解。例如,编• 写计算最小二乘拟合、残差和判定系数的函数,编写和测试这些代 码需要他们正确理解相关概念,消除各种可能的误解。 学生能够通过计算实验来验证统计学上的一些定理。例如,生成• 服从各种分布的样本来验证中心极限定理(Central Limit Theorem, CLT)。当发现服从帕累托分布的样本并没有收敛到正态分布时,他 们肯定会记住中心极限定理的前提条件。 有些从数学上很难理解的概念可以很容易地用模拟方法来阐述。例• 如,通过蒙特卡罗模拟近似求出 p 值,就能说明 p 值的含义。 使用离散分布和计算方法可以把贝叶斯模拟之类在入门课程中很少• 见的内容讲清楚。例如,本书中有个练习要求学生计算“德国坦克 问题”(German tank problem)的后验分布,通过理论分析很难得到 答案,但用计算手段却很容易得出结果。
xii | 前言 因为学生使用的是通用编程语言 Python,所以他们可以导入各种来• 源的数据,并不局限于那些已经为特定统计工具整理好的数据。 本书内容是按项目来组织的。在我的课上,学生会用一个学期的时间 来做一个项目,在此期间他们要提出统计学问题、找到合适的数据 集,并用学到的技术来处理这些数据。 为了演示我想要学生做的分析,本书会有一个贯穿全书的实例。它所 使用的数据主要有以下两个来源。 由美国疾病控制与预防中心(Centers for Disease Control and Prevention,• CDC)主持的全国家庭成长调查(National Survey of Family Growth, NSFG)项目,该项目是为了收集美国人的“家庭生活、婚姻状况、生育、 避孕和男女健康等信息”(参见 http://cdc.gov/nchs/nsfg.htm )。 由全国慢性病预防和健康促进中心主导的行为风险因素监测系统(the • Behavioral Risk Factor Surveillance System,BRFSS),该系统旨在跟 踪“美国人的健康状况和危险行为”(参见 http://cdc.gov/BRFSS/) 。 其他例子所使用的数据则来自 IRS(美国国税局)、美国人口普查和 波士顿马拉松比赛。 本书的写作原则 要写一本新教材,通常的做法是参考一堆老教材。很多书的内容因此都会 重复,且行文组织也大同小异,出现了不少以讹传讹的情况。史蒂芬 •古 尔德在他的文章中就提到过一个关于猎狐犬的例子 1。但我可没有这样做, 我在撰写本书过程中几乎没有参考过任何已出版的材料,主要原因如下。 本书的目的是要探索这方面的新方法,所以对已有的方法我并不想• 讲太多。 注 1: Stephen Jay Gould(1941—2002),美国著名的进化生物学家、古生物学家、科学史 学家和科普作家;很多教科书中说始祖马跟小猎狐犬差不多大,史蒂芬 •古尔德在 他的文章中纠正了这一错误观点(译者注),狗大概只有始祖马的一半大(见 http:// wikipedia.org/wiki/Hyracotherium)。
前言 | xiii 我想让所有人都可以自由地使用本书内容,因此要确保书中所有内• 容都没有版权限制。 很多读者都不方便到图书馆借阅纸版书,所以本书尽量只引用能在• 网上免费查阅的内容。 传统媒体的支持者认为只使用网络资源是一种偷懒的行为,而且内• 容也不可靠。我认同前半句话,但不同意后半句,所以我要亲自证明。 我用得最多的资源是维基百科,其内容涉及方方面面,每个人都可以 查阅。总体看来,我所读过的关于统计学的文章整体质量都不错(不 过我也做了一些修改)。本书引用了不少维基百科的链接,建议读者 去读一读这些网页内容。这些页面很多时候都是对本书所介绍内容的 很好补充和完善。除非有充分的理由修改,否则本书中所使用的术语 和概念与维基百科基本保持一致。 其他实用资源包括 Wolfram MathWorld(http://mathworld.wolfram.com/), 当然还有 Google。我还用到了两本书,David MacKay 的 Information Theory, Inference, and Learning Algorithms2 和 Press 等人合著的 Numerical Recipes in C,前者是我学习贝叶斯统计的书。不过,因为这两本书都可 以在网上找到,所以并不违反我之前所说的原则。 贡献者名单 对本书有任何意见或者建议,请发送邮件到 downey@allendowney. com。如果本书根据你的反馈进行了修改,我会把你加入贡献者名单 (除非你主动要求不加入)。 最好能写清具体出错的句子,以便我找出问题。只给出页码和章节号 也行,但不方便。非常感谢! Lisa Downey 和 June Downey 阅读了早期的书稿,提出了很多意见和• 建议。 注 2: 中译本《信息论、推理与学习算法(翻译版)》由高等教育出版社出版(2006); 《C 语言数值算法程序大全(第二版)》由电子工业出版社出版(1995)。——编者注
xiv | 前言 Steven Zhang 发现了一些错误。• Andy Pethan 和 Molly Farison 帮我调试了一些解题程序,Molly 指出• 了一些拼写错误。 Andrew Heine 发现了• error函数中的错误。 Nikolas Akerblom 博士告诉了我始祖马的大小。• Alex Marrow 改进了一个代码示例的说明。• Jonathan Street 在关键时刻发现了一个错误。• Gábor Lipták 发现了一个拼写错误和接力赛问题的答案。• 感谢 Kevin Smith 和 Tim Arnold 写的 plasTeX,我用它将此书转成了• DocBook。 George Caplan 的建议让本书更加清晰易懂。• 排版约定 本书使用的排版约定如下。 楷体• 表示新的术语。 等宽字体• 表示程序片段,也用于在正文中表示程序中使用的变量、函数名、 命令行代码、环境变量、语句和关键词等代码文本。 加粗的等宽字体• 表示应该由用户逐字输入的命令或者其他文本。 倾斜的等宽字体• 表示应该由用户输入的值或根据上下文决定的值替换的文本。 这个图标代表小窍门、建议或说明。
前言 | xv 这个图标代表警告信息。 示例代码 本书就是要帮读者解决实际问题的。也许你需要在自己的程序或文档 中用到本书中的代码。除非大段大段地使用,否则不必与我们联系取 得授权。因此,用本书中的几段代码写成一个程序不用向我们申请许 可。但是销售或者分发 O’Reilly 图书随附的代码光盘则必须事先获得 授权。引用书中的代码来回答问题也无需我们授权。将大段的示例代 码整合到你自己的产品文档中则必须经过许可。 使用我们的代码时,希望你能标明它的出处。出处一般要包含书 名、作者、出版商和 ISBN,例如:Think Stats by Allen B. Downey (O’Reilly). Copyright 2011 Allen B. Downey, 978-1-449-30711-0。 如果还有其他使用代码的情形需要与我们沟通,可以随时与我们联 系:permissions@oreilly.com。 Safari® Books Online Safari Books Online(www.safaribooksonline. com)是应需而变的数字图书馆。它同时以 图书和视频的形式出版世界顶级技术和商务 作家的专业作品。 Safari Books Online 是技术专家、软件开发人员、Web 设计师、商务人士 和创意人士开展调研、解决问题、学习和认证培训的第一手资料。 对于组织团体、政府机构和个人,Safari Books Online 提供各种产品 组合和灵活的定价策略。用户可通过一个功能完备的数据库检索系 统 访 问 O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、 IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、
xvi | 前言 New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 以 及 其他几十家出版社的上千种图书、培训视频和正式出版之前的书稿。 要了解 Safari Books Online 的更多信息,我们网上见。 联系我们 请把对本书的评价和问题发给出版社。 美国: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中国: 北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035) 奥莱利技术咨询(北京)有限公司 O’Reilly 的每一本书都有专属网页,你可以在那儿找到本书的相关信 息,包括勘误表、示例代码以及其他信息。本书的网站地址是: http://www.oreilly.com/catalog/0636920020745 中文版地址: http://www.oreilly.com.cn/index.php?func=book&isbn=978-7-115-31737-7 对于本书的评论和技术性问题,请发送电子邮件到: bookquestions@oreilly.com 要了解更多 O’Reilly 图书、培训课程、会议和新闻的信息,请访问以 下网站: http://www.oreilly.com 我们在 Facebook 的地址如下: http://facebook.com/oreilly 请关注我们的 Twitter 动态: http://twitter.com/oreillymedia 我们的 YouTube 视频地址如下: http://www.youtube.com/oreillymedia
1 第 1 章 程序员的统计思维 本书讨论如何将数据转换为知识。数据是廉价的(至少相对而言如 此),但知识却异常宝贵。 我会介绍以下三门相互关联的学科。 概率论• 主要研究随机事件。人们对某些事件发生的可能性高低一般都有直 观的认识,所以未经特殊训练就会使用“可能”、“不可能”之类的 词汇。但本书会介绍如何量化这种可能性。 统计学• 统计学旨在根据数据样本推测总情况。大部分统计分析都基于概 率,所以这两方面的内容通常兼而有之。 计算• 量化分析的最佳工具。计算机是处理统计量的常用工具。此外,计 算实验还有助于理解概率论和统计学中的概念。 本书的主要目的就是要让懂编程的人通过编程来理解概率论和统计 学。人们通常是从数学角度讲解概率论和统计学,而且很多人也因 此学会了概率论和统计学。但在概率论和统计学中,有很多概念从
2 | 第 1 章 数学角度很难理解,但如果用计算方法就比较容易。 记得我妻子怀上我们第一个孩子时,我听到过这样一个问题:第一胎 多在预产期后出生吗?本章接下来介绍的例子就源自这个问题。 1.1 第一个孩子出生晚吗 如果在 Google 上搜索这个问题,你会看到大量的相关讨论。有些人 说确实如此,也有人说这没根据,还有人持完全相反的观点:第一个 孩子会在预产期之前出生。 在这类讨论中,人们会用各种数据来证明自己的说法,常见的例子如下。 “我有两个朋友最近都刚生了第一个孩子,两个宝宝的出生 时间都比预产期晚了差不多两周。” “我的第一个孩子晚了两周才出生,我想我的第二个孩子会 提前两周。” “我觉得这没道理,因为我姐姐是我妈妈的第一个孩子,她 就提前出生了,我的几个表姐也一样。” 诸如此类的传闻称为经验之谈(anecdotal evidence),因为它们基于非 公开发表的数据,而且通常是个人感受。在非正式场合,这类说辞没 问题,所以这里并不是说上述观点不对。问题在于,我们需要更有说 服力的证据和更可靠的结论。但这些经验之谈显然做不到这一点,原 因如下。 观察的数量太少• 第一胎婴儿的妊娠期比较长,但这种差异可能在自然波动范围内。 这种情况下,我们需要比较大量孕妇的妊娠期数据才能判断这种差 异是否真的存在。 选择偏差• 第一胎婴儿出生比较晚的父母会更有兴趣加入这样的讨论。这种对 数据进行选择的过程就会导致结果不准确。
Comments 0
Loading comments...
Reply to Comment
Edit Comment