Bayesian Data Analysis

在介绍贝叶斯统计之前,首先需要学习什么是先验概率什么是后验概率。

简单来说,先验概率就是,事件发生前的预判概率,可以是基于历史数据的统计,也可以是人的主观观点给出的,一般是单独事件概率,比如通过统计得到全国有百分之七十的人玩过王者荣耀,这个百分之七十就是先验概率。

后验概率,简单来说,就是事件已经发生,那么这个事件发生的原因是由某个因素引起的可能性的大小。还有一种说法是,后验概率是基于事件发生了获得的新的信息,修正原来的先验概率后获得的更接近实际情况的概率估计,一般来说,后验概率是通过贝叶斯公式对先验概率进行修正而获得的概率。另一方面,通过似然函数也可以计算后验概率。

了解了先验概率和后验概率,之后先谈一下贝叶斯公式: P(y|x) = ( P(x|y) * P(y) ) / P(x),以前用贝叶斯公式主要是为了在知道P(x|y)的前提下怎么求P(y|x),当时感觉这就是一个解题的技巧,现在才明白它更多是与贝叶斯统计相关。首先要明白,在贝叶斯公式中,P(y|x) 是后验概率,一般是我们求解的目标,P(x|y) 是条件概率,又叫似然概率,一般是通过历史数据统计得到。一般不把它叫做先验概率,但从定义上也符合先验定义,P(y)是先验概率,一般都是人主观给出的。贝叶斯中的先验概率一般特指它。P(x) 其实也是先验概率,只是在贝叶斯的很多应用中不重要,需要时往往用全概率公式计算得到。比如说,假设y是文章种类,是一个枚举值;x是向量,表示文章中各个单词的出现次数,针对这种情况,可以统计出p(x),p(y),p(x|y),而P(y|x)则是无法通过统计得到的(通过单词出现次数统计是哪种文章),所以只能通过贝叶斯公式去计算,这就是后验概率,也是贝叶斯公式的作用。

接下来就是重点贝叶斯推断,首先要明白的是,贝叶斯和以前的观点有一个不同,就是把参数看作随机变量。这也是为什么要提出先验概率和后验概率的原因,以前我们一般把参数看成实数或者向量,比如服从p=0.5的伯努利分布,贝叶斯则是把参数看成随机变量,也就是定义在样本空间上的实值函数,所以用一个分布来表示,它是不确定的,是可以根据实际情况进行修正的。比如,现在我写好了一段代码,但是不确定有没有bug,因此在一个简单的例子上应用这段代码,没有问题,我初步相信代码是正确的,然后进一步把代码应用到更复杂的例子中,都没有问题,在不断的测试过程中,我越来越坚信自己的代码没有问题,我的相信程度,就是一个随机变量,也是一个后验概率,通过实验结果不断修正改变,而这整个过程,就可看成是贝叶斯推断对参数估计的应用。

有了对贝叶斯推断初步的了解,就可以看看怎么通过贝叶斯推断进行参数估计了。在我们得到了参数的后验分布之后,可以选择根据后验分布的期望(mean)、中位数(median)或者众数(mode)作为对参数的估计值,其中,对后验分布的众数进行估计又称为maximum a posteriori(MAP,最大后验估计),这个最大后验估计是最常用的,主要是因为计算期望或者中位数都需要积分,对计算机而言是比较困难的计算,而MAP并不需要积分,所以更常用。顺带一提,mode指的是概率密度函数达到最大的值(因为密度最大,所以在整个分布里面最多),又因为整个计算过程涉及到密度函数,所以不需要积分,然后最重要的是!其实我们的后验概率p(θ|x)本身就相当于密度函数(离散情况),所以估计后验分布的众数就是求参数使得后验概率达到最大,也就等价于使得P(x|θ)P(θ)达到最大(事实上,完整的表达式是P(x|θ)P(θ)/P(x),也就是贝叶斯公式。但是因为我们已经做了试验,知道了P(x)的结果(就是投十次正面朝上八次),是常数所以就省去了)。这样看来,其实最大后验估计和极大似然估计又是相似的,只是在极大似然估计的基础上乘上了一个p(θ)。之所以这样做,主要是因为MAP不仅仅考虑了似然函数,也考虑了P(θ)这个先验概率的影响,从中也可以看出贝叶斯统计的思想。

以上简单介绍了贝叶斯统计的基本思想以及对后验参数估计的一些方法,在后续的文章里会继续详细讲解如何计算后验期望以及最大后验概率的方法。

参考资料:
[1]https://www.zhihu.com/question/55819120
[2]https://www.jianshu.com/p/0a038974d48c
[3]https://cloud.tencent.com/developer/article/1094425