译 者 序这是我希望在学习贝叶斯统计的时候首先阅读的一本书。与其说贝叶斯是一种不同的统计方法,不如说它是一种不一样的统计哲学,也是一种看待生活中很多问题的不同的视角。不是所有的应用数据科学领域都需要用到贝叶斯,但即使你所处的行业用得很少,了解贝叶斯的基本概念也是很有必要的。因为这种根据证据改变自己想法的思维方式能帮助我们约束直觉,这是一种高级的思维方式。贝叶斯推断不外乎计算在某假设下事情可能发生的方式的数目。事情发生方式多的假设成立的可能性更高。一旦我们定义了假设,贝叶斯推断会强制施行一种通过已经观测到的信息进行纯逻辑的推理过程。频率法要求所有概率的定义都需要和可计数的事件以及它们在大样本中出现的频率联系起来。这使得频率学的不确定性依赖于想象的数据抽样的前提如果多次重复测量,我们将会收集到一系列呈现某种模式的取值。这也意味着参数和模型不可能有概率分布,只有测量才有概率分布。这些测量的分布称为抽样分布。这些所谓的抽样只是假设,在很多情况下,这个假设很不合理。而贝叶斯方法将随机性视为信息的特质,这更符合我们感知的世界运转模式。所以,在很多应用场景中,贝叶斯也更加合适。总体说来,本书有如下亮点:1.可重复。这点实在是太重要了。书中的数据很容易获取,书中的代码、建模过程都可以重复。读者可以在阅读的过程中实践代码,并且生成书中展示的结果。也可以自己修改代码,看看结果的变化,这对理解内容有极大的帮助。2.前3章中有我见过的对贝叶斯及哲学最清晰的讲解。对于那些只想知道贝叶斯模型是什么但不想花太多时间深入学习更加复杂的贝叶斯模型的读者,推荐仔细阅读前3章。第1章反思了流行的统计和科学哲学,指出我们不该仅使用各种自动化的工具,而应该学着在实际应用中建立、评估不同的模型。接下来的第2章和第3章介绍了贝叶斯推断和进行贝叶斯计算的基本工具。其中作者的讲解方式很绕、很慢,特别强调了概率理论的纯逻辑解释。但我希望读者能够耐心地认真阅读这3章,这对以深入理解贝叶斯为目标的人来说,一点儿也不啰嗦。3.本书提供了R包rethinking来实现模型,使用更加简单直接。更好的方法当然是直接学习使用Stan。rethinking中的一些函数(map和map2stan)对stan进行包装,隐藏了背后的stan代码,这使得一些错误信息让人难以理解。如果要在工作中应用书中介绍的模型,最好还是在之后花时间学习Stan。好在读过本书之后,学习Stan应该不难。4.rethinking包中自带的数据以及一些绘图函数可极大地帮助读者对真实数据进行建模,并且通过可视化解释结果。在这些绘图的函数中,有些能直接对后验预测进行可视化,并通过这种方式比较模型和参数。对于简单的模型,可以通过参数估计总结表来理解模型。但只要模型稍微复杂一点,尤其是含有交互效应(见第7章),解释后验分布就会变得很难。如果要在模型解释中考虑参数间的相关性,那可视化就不可或缺。5.书中的一些关于社会科学的例子不仅展示了如何建立模型,更重要的是展示了如何定义问题本身。社会学的问题往往是开放的,很复杂。所以通过数据建模解决这类问题的难点不仅仅是模型本身,还有将开放式问题转化成一个封闭式问题的过程。本书中有很多这样的例子,而且作者对数据所处的实际语境也进行了详细的解释。为了使行文更加通顺,在翻译的过程中采用了较多的意译,有的地方加上了译者注以帮助读者理解。华章公司的编辑对本书的翻译工作给予了大力的支持和帮助。在此对所有为本书中文版问世做出努力的人表示感谢!由于译者水平有限,书中难免有错误和不妥之处,恳请读者批评指正。
林 荟2018年12月
前言石匠,开始动工之前(Masons,when they start upon a building),总会小心测试鹰架(Are careful to test out the scaffolding)。
确保模板不会滑落在繁忙的街口(Make sure that planks wont slip at busy points),牢牢钉好每把梯子,拴紧所有螺丝(Secure all ladders, tighten bolted joints)。
这一切付出在完工后都得被拆除(And yet all this comes down when the jobs done),展露结实的石墙(Showing off walls of sure and solid stone)。
所以,亲爱的,就算我们之间的桥梁(So if, my dear, there sometimes seem to be),偶尔因为老旧看似即将倒塌(Old bridges breaking between you and me)。
别害怕。让那鹰架倒下吧(Never fear. We may let the scaffolds fall),相信我们建造的墙坚不可摧(Confident that we have build out wall)。
《鹰架》Scaffolding,作者Seamus Heaney, 19392013
本书意在帮助你增进统计模型的知识以及使用模型的信心。就像造墙时的鹰架,能够帮助你建造需要的石墙,虽然最终你要将鹰架拆除。因此,本书讲解的方式有些拐弯抹角,但那是为了促使你们亲自实践模型背后的每一个计算步骤,虽然真实建模的过程常常是自动的。这样小题大做是为了让你能够对方法背后的细节有足够的了解,以能够合理地选择和解释模型。虽然你最终会用一些工具自动建模,但刚开始放慢步伐、夯实基础是很重要的。耐心建立坚实的墙然后再拆去鹰架。目标读者本书主要面向自然和社会科学的研究人员,可以是新入学的博士生,也可以是有经验的专业人士。你需要有回归的基本知识,但不一定需要对统计模型驾轻就熟。如果你接受这样的事实:一些在21世纪早期广泛使用的典型统计学方法并非完全正确,其中大部分和p值以及令人迷惑的各种统计检验有关。如果你在一些杂志和书上读到过一些替代的方法,但不知道从何学习这些方法,那么本书就是为你而写的。事实上,本书并不是要直接抨击p值和相关的方法。在我看来,问题并不在于人们习惯用p值来解决科学界的各种问题,而在于人们忽略了许多其他有用的工具。因此,我假定本书的读者已经准备好不使用p值做统计推断。仅有这种心理准备还不够,最好能有一些文献资料帮助你探查与p值和传统统计检验有关的错误及误解。即使我们不用它们,也要对其有所了解。我因此查阅了一些相关的资料,但由于本书篇幅所限不能详细讨论,否则本书会太厚,也会打乱原本的教学节奏。这里要提醒一点,反对p值不仅仅是贝叶斯学派的观点。事实上,显著性检验能够(其实也已经)构建为贝叶斯过程。其实真正促使人们避免使用显著性检验的是出于认识论的考虑,关于这一点我会在第1章简单讨论。教学方法本书使用更多的是程序代码而非数学公式。直到真正对算法付诸实践,即使最出色的数学家可能也无法理解该过程。因为用代码实践的过程去除了算法中所有模棱两可的地方。因此,如果一本书同时教你如何实践算法的话,学习起来会更轻松。展示代码除了有利于教学也是必需的,因为许多统计模型现在都需要计算,纯数学的方法无论如何也不能解决问题。你在本书后面部分可以看到,同样的数理统计模型的实现方法可以有多种,而且我们有必要区分这些方法。当你在本书之外探索更高级或更有针对性的统计模型时,这里强调的编程计算知识将帮助你识别和应对各种实际困难。本书的每一部分都只揭示了冰山一角。我丝毫没有涵盖所有相关内容的打算,而是试图将其中一些东西解释清楚。在此尝试中,我在数据分析的实例中穿插了许多模型概念和内容。例如,书中没有一个单元专门讲预测变量的中心化,但我在数据分析中使用并解释了这项技术。当然,不是所有读者都喜欢这样的讲解方式。但是我的很多学生喜欢这种讲解方式。我很怀疑这样的讲解能否对大部分要学习这些内容的读者起作用。从心底来说,这反映了我们在现实中是如何在自己的研究中学会这些方法的。如何使用本书这不是参考书,而是教科书。本书不是让你在遇到问题时用来查阅相关部分的,而是一个完整连贯的教学过程。这在教学上很有优势,但可能不符合很多科学家现实中的阅读习惯。本书正文中有很多代码。这样做是因为在21世纪从事统计分析工作必须要会编程,或多或少会一些。编程不是候选技能,而是必备技能。在书中的很多地方,我宁可过多地展示代码,也不愿过少展示代码。根据我对编程新手的教学经验,当学生手上有可以运行的代码时,让他们在此基础上修改比让他们从0开始写程序效果更好。我们这代人可能是最后一代需要用命令的方式操作计算机的了,因此编程也越来越难教。我的学生非常熟悉计算机,但他们不知道计算机代码长什么样。[=1]本书要求读者具备什么基础?[=]本书的目的不是教读者关于编程的基本知识。我们假设读者已经知道R的基本安装和数据处理知识。在大多数情况下,入门级的R编程介绍便足够。据我所知,许多人觉得Emmanuel Paradis所著的《R for Beginners》很有帮助。你可以通过链接http:cran.r-project.orgother-docs.html找到该指南以及许多入门级教程。要顺利阅读本书,你得知道y