听同事讲 Bayesian statistics: Part 1 - Bayesian vs. Frequentist
听同事讲 Bayesian statistics: Part 1 - Bayesian vs. Frequentist
摘要:某一天与同事下班一同做地铁,刚到地铁站,同事遇到一熟人正从地铁站出来。俩人见面都特别高兴,聊了许久。过后我问她这人是谁,她说是她的朋友,伯克利的教授Michael Jordan。啊!原来他就是鼎鼎大名的Michael Jordan啊!
同事中牛人众多,姑且先称这位同事为M吧。M美国博士毕业后到英国剑桥又深造了几年,研究方向一直是 Bayesian statistics。说到Michael Jordan,虽然他很多研究都在 machine learning 领域,但其对统计领域也摄入很深,有极为雄厚的理论造诣。他经常参加统计方面的会议,所以同事M和他非常熟悉。M说,Michael Jordan 是一个实用主义者,他既不站在 frequentist 的立场,也不站在 Bayesian 的立场。什么方法能解决问题,他就更倾向与使用哪种方法。其实,他的这种思想也是目前大部分 statistian 和 practician 的理念。
同事M是典型的 Bayesian statistician,经常跟公司里的 frequentist 互开玩笑。由于本人对统计非常感兴趣,经常请教她关于 Bayesian statistics 的问题。其实 Bayesian 的理论并不十分复杂,但它能解决很多实际问题。随着计算机计算能力越来越强,Bayesian 方法也越来越受大家欢迎。那么,首先我们要问的问题是:Bayesian 和 frequentist 到底有什么区别呢?
其实,Bayesian 和 frequentist 的本质区别是理念上的区别。可以举一个简单的例子加以说明。大家知道抛硬币正反两面的概率各位0.5,但有很多硬币由于两面磨损情况不同,正面或反面的概率大于另一面。我们想知道某一枚硬币正面的概率是多少,假设它为 t,那么背面的概率是 1-t。我们可以通过抛硬币的方式来推测出 t 的值。Frequentist 会怎么做呢?Frequentist 认为,这里的未知参数 t 是[0,1]之间某一个固定的值。我们如果抛100次硬币,假设有40次为正面,那么一个很好的猜测是 t=40/100=0.4 。如果我再抛100次硬币,正面的次数可能为42次,那么 t=42/100 = 0.42 。好的,问题出现了,既然 t 是一个固定的值,怎么可能既是0.4又是0.42呢?其实这个问题应该这样理解:很可能 t 既不是0.4也不是0.42,而是某个我们不知道的值,但它的真实值应该离0.4和0.42不远。这里就涉及到一个confidence interval的概念。比如第一组100次硬币95%的 confidence interval 是 [0.4 - 0.1,0.4 + 0.1]。t 的真实值要么在这个区间里,要不不在这个区间里,frequentist 并不能给我们一个答案。如果说抛100次硬币算一次实验,每次实验我们都计算它95%对应的confidence interval。Frequentist 会告诉我们,如果你repeat很多次这样的实验,会有95%的实验它们的confidence interval会包含 t 的真实值。
不知道大家看没看到 frequentist 给出的答案所存在的问题。很多时候实验是不能重复的,在这种情况下confidence interval的意义大打折扣。但 frequentist 只能得出这样的结论:对于未来的很多次重复实验,95%的情况下 t 的真实值落在相应的confidence interval之间。
还有一个问题就是,在某些情况下获取一个data sample的cost很大,比如在这次实验中,我们只允许抛3次硬币。抛3次硬币的结果有不小的可能性是3次都是背面。那么 frequentist 的结论是 t=0 。这显然是一个误差很大的结论,但在这种情况下 frequentist 确无能为力。
那么,Bayesian 是怎么解决这个问题的呢?首先,一个本质的区别是,对于 Bayesian 来说,它关心的并不是 t 是否为某个固定的值,而是它的概率分布(distribution)。这种分布的意义在于它是对 t 的一种 belief。比如抛硬币的例子,如果说我们在抛硬币之前的认为 t 可能是均匀分布在[0,1]之间的任何一个值,也就是说 p (t) = 1。那么当我们有新的 data 作为 evidence 后,也就是说3次抛硬币的结果都是背面,那么这些 evidence 会改变我们对 t 的 belief。这种改变可以通过 Bayes’s rule 来计算。
这里 n=3,假设每次抛硬币都是独立的,1代表正面,0代表背面。那么 p( X1=0, X2=0, X3=0 | t ) = p( X1=0 | t ) * p( X2=0 | t ) * p( X3=0 | t )。硬币是正面的概率为 t,所以 p( X1=0 | t) = p( X2=0 | t) = p( X3=0 | t) = 1 - t。我们用 D 来代表evidence数据,也就是说 D={ X1=0,X2=0,X3=0 }。那么 p(D) = (1-t)^3。而分母是对 t 所有可能的值进行积分,
所以 m(D) = ∫ (1-t)^3 dt= 1/4,那么 p ( t|D )=4*(1-t)^3。之前的 p(t) 我们称之为prior,有了data作为evidence后的 p( t | D )被称为posterior。由于有了新的data,我们更新了对于 t 的belief,但最开始的 belief(也就是prior)对于认识 t 显然有影响。这种影响会随着越来越多的data渐渐减弱。所以,当数据量很少的时候,prior的选择也是很重要的。
Bayesian statistics 非常有趣,在解决很多问题时也非常实用。今后我们会从各个角度来给大家详细的介绍 Bayesian statistics。