贝叶斯分析基础——可信度、模型和参数

Doing Bayesian Data Analysis 学习笔记


如何理解贝叶斯推论

在各种可能性之间重新分配可信度

假设某一天我们出门之后发现外面路面是湿的,并且我们想知道是什么原因导致这样的现象。导致路面湿的可能性有很多,比如之前下过雨,有洒水车路过,有人把自己喝的水撒掉了等等。如果到这个时候除了路面湿这个现象,其他的所有信息我们都不知道,那么我们就会基于先前的知识来给各种可能性分配一个可信度。比如说这个地区几十年没有下过雨,我们就知道这个地方下雨的可能性不太大;或者我们知道每天这个时间点之前一段时间洒水车会经过,洒水车导致路面湿的可能性就相对较大。这种基于先前知识产生的对各种可能性的认识就是先验信念。

我们继续在路边走,突然发现了一些新的证据:路面上只有洒水车能够洒到的地方是湿的,其他地方比如人行道是干的,这个时候我们就会重新调整我们的信念,我们会给各种可能的原因重新分配可信度,比如说下雨导致路面湿的概率会更低,而洒水车导致路面湿的概率会增加。

贝叶斯推论就是在各种可能性之间重新分配可信度(概率)的过程,我们基于先验信念,结合我们获得的证据调整我们的信念,并获得我们对各种可能性的概率的新的信念,也叫后验分布。如果我们又收集到了新的证据,那么先前的后验分布就会变成先验,我们再基于这个新的先验调整我们的信念。

数据是有噪音的,所以推论具有概率性质

科学研究中所有测试都是带有随机性的,即使我们非常严格的控制各种无关变量的影响,但是依旧存在很多无关因素干扰测量结果。因此,数据和潜在的原因之间的关系具有概率性质,有可能是由于某种潜在的原因导致我们观测到这样的数据,但是也有可能是由于随机因素导致我们观察到这样的数据结果。

以一个新药药效测试为例,假设我们想要检测一种新药能否有效降低血压,所以我们将被试随机分为两组,实验组服用药品,控制组服用安慰剂,并且采用双盲程序。每天我们都会在固定时间点测试被试的血压水平,我们可以想象到,一个被试的血压水平在一天中也会受到很多因素的影响, 比如说运动、焦虑、饮食等。更何况,血压是通过测量佩戴一个加压的血压仪之后的血流的声音来计算得到的,这个测量过程本身就存在误差。血压值也存在比较大的个体差异,所以我们最终得到的数据可能会比较混乱,控制组和实验组的测量结果均存在较大的变异(方差较大);两个组的结果分布也可能会存在重叠部分,实验组的某些个体血压可能会高于控制组。基于这两组分散的且相互重叠的数据结果,我们想要推论控制组和实验组有多大的差异,并且我们能否确定这个差异是真实存在的。但问题的关键在于,控制组和实验组的差异测量结果是带有随机性的,也就是说我们的数据是有噪音的。

所有的科学数据都带有某种程度的噪音,而数据分析就是根据携带噪音的数据推断潜在的趋势。贝叶斯推论不能完全排除其他可能性,但是我们可以通过数据逐渐调整不同可能性的可信度。可信度的分布最初反映的是关于可能性的先验知识,这个分布是一个比较模糊的分布;但是当获得一批数据后,不同可能性的可信度重新分配,与数据一致的可能性的可信度增加,与数据不匹配的可能性的可信度降低。

每一种可能性对应描述性模型的一个(组)参数值

贝叶斯统计推论是一个在各种可能性间不断分配可信度的过程,这里所说的可能性实际上就是描述性模型的参数值。

在降压药的例子中,我们想要确定降压药是否能够有效地降低血压水平,就要对比实验组和控制组的血压差异。最终我们可能会选择两个组在操作前后血压变化的平均值的差值作为这组数据的描述性模型:
\Delta = (Pressure_{实验组操作前} - Pressure_{实验组操作后}) - (Pressure_{控制组操作前} - Pressure_{控制组操作后})
上式中Pressure_{A}代表A情况下所有被试血压的平均值,\Delta能够有效反映降压药是否有效,如果\Delta比较大(大于零),则说明降压药确实能够有效降低血压。
但是由于各种无关因素的影响,导致我们并没有100%的把握说我们最后的测量结果就恰好等于实际的\Delta,所以我们就只能基于我们的测量结果进行推断,给每一个可能的\Delta分配一个可信度。

一般情况下,数据分析都是从数据的某个或某些描述性统计量出发的,这些描述性统计量(比如平均值)是能够描述数据特征的数学公式。这些公式是能够计算出具体数值的,比如说平均值为3,这个值就叫做参数值。例如我们用一个正态分布来描述数据,则平均值和标准差两个参数就能够确定数据的特征,平均值决定正态分布的位置,而标准差决定正态分布的宽度。

在选择描述数据的数学模型的时候,首先要满足两个要求:

  • 参数必须有意义,数学模型必须能够理解。 数学模型的参数也应该像语言一样,能够像我们传递信息,如果参数是没有实际意义的,那么我们是很难理解模型表达的含义的。比如说一个正态分布的平均值是2,我们就知道这个正态分布是以2为中心的。
  • 数学模型要充分、准确地描述模型。 简单来说,就是不能用正态分布去描述一个偏态的数据,如果数学模型没有选择好,那么即使最后的参数估计非常准确,但是这个模型也并不能很好的描述数据特征。

数据的数学模型并不等同于数据的产生过程。比如说一个服从均值为10、标准差为5的正态分布的数据,只能说数据的表现形式为该正态分布,但是数据的一个物理产生过程却不一定与正态分布有关。


贝叶斯数据分析的步骤

  1. 确定数据和研究问题的具体关系。 比如说数据的度量尺度是什么?想要预测的变量是什么?预测指标又是什么?
  2. 确定数据的描述性模型。 用于描述数据模式的数学模型的参数应该具有意义,并且与研究目的和理论分析相契合。
  3. 确定参数的先验分布。
  4. 利用贝叶斯推论重新分配参数值的可信度并得到后验分布
  5. 检测后验分布能够准确模拟数据。 如果不能的话, 就要重新选择描述性模型。

实例:
假设我们现在想要探究人们身高和体重之间的关联,基于日常经验我们猜想人的身高越高,体重也越大,但是我们想知道体重随着身高的具体数量变化关系是怎样的,并且当身高增加时,我们有多大的把握确定体重的确按照这样的数量关系增加?

第一步是确定研究相关的数据。假设我们现在能够收集到57个成年人的身高和体重数据,57个成人年从研究总体中随机抽样。身高的单位为英寸,体重为磅,均为连续变量。在这个例子中我们想要用身高来预测体重。

第二步是确定数据的描述性模型,这个模型与我们的研究目的相对应。在这个例子中,我们假设身高和体重成正比,记体重为x,身高的预测值为\hat{y},则有:
\hat{y} = \beta_1 x + \beta_0
系数\beta_1代表身高增加1英寸时的体重增加量,基线\beta_0代表人的身高为0时的体重量,事实上由于人的身高下限高于0,所以不必严格限制\beta_0 = 0
这个模型还并不完整,我们哈需要描述真实体重的随机误差,为了简便,我们假设体重真实值y服从以预测值\hat{y}为均值、以\sigma为标准差的正态分布:
y \sim normal(\hat{y} , \sigma)
整个模型有三个参数:斜率\beta_1、截距\beta_0、噪音的标准差\sigma。三个参数都是具有意义的,斜率参数代表高度增长一英寸对应的体重增长值,标准差参数反映体重围绕着预测值的分散程度(变异程度)。

第三步是确定参数的先验分布。我们可以依据先前的研究结果来生成参数的先验分布,或者我们可以依据一些得到较多人认可的实践经验来生成先验分布。在这个例子中,我们采用比较模糊的、不蕴含信息量的先验,斜率和截距的所有可能取值的先验可信度相同,且可能取值的范围均以0为中心,噪音参数的先验分布为0到一个比较大的值的均匀分布。这种模糊的先验分布暗示其对后验分布并没有任何有方向的影响。

第四步是得到后验分布。贝叶斯推论会针对众多的参数值重新分配可信度,最终得到的后验分布与实验数据具有一致性。下图展示了参数\beta_1的后验分布,注意下图展示的并不是实验数据的分布,而是参数的分布。可以看出,可信度最高的斜率参数大约为4.1。下图同样展示了估计的参数值的不确定性,一种描述不确定性的方法是计算置信度最高的、包含分布95%的参数值的跨度,即下图中的黑色横线所表示的区间。这个区间称为最大密度区间(highest density interval, HDI)。95%HDI里面的参数值比之外的参数值具有更高的可信度,基于57对数据的95%HDI为[2.6, 5.7],如果样本量增加,斜率的估计将会更加准确,即HDI会更窄。

第五步是对模型进行检验,即检验可信度最高的一些参数能够足够好地描述数据。这一项工作也叫后验预测检验(posterior predictive check)。由于系统误差的定义方法有很多,所以用来检验模型是否系统性的偏离数据的方法也有很多。
如果检验结果发现真实数据系统性的偏离模型的预测,那么我们就应该考虑其他模型。在这个例子中,如果数据表现出非线性趋势,那么就应该选择非线性模型来描述数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容