听同事讲 Bayesian statistics: Part 2 - Bayesian inference

摘要:每天坐地铁上班是一件很辛苦的事,需要早起不说,如果早上开会又赶上地铁晚点,更是让人火烧眉毛。在城市里工作的人,很多是需要搭乘地铁上下班的,也包括同事M。

有一次M早上来得比较晚,进办公室以后就开始抱怨地铁又晚点了,而且同一周不只发生了一次。我说,作为 statistician,你就不能 predict 一下地铁会不会晚点吗?她说,"This is a very tricky problem. There are so many unknown factors." “好吧,那算一下地铁晚点的概率总可以吧?” "Great! Let's do it now!” 说完M就拿起笔开始在白板上写起公式来,当然用的是 Bayesian 的方法。

通常拿到一个问题后,第一步要做的,就是要简化这个问题。M做的简化是:假设每天地铁迟到的概率是一样的,记为 t。当然,这个假设有不合理的地方,比如周一、周二早上乘地铁的人比较多,而周五不少人 work from home 所以乘地铁的人相对较少,这样导致地铁在每周不同的天里迟到的概率可能不同。但任何假设都有不完善的地方,如果乘客人数不是主导因素的话,那么我们就可以做这样的近似。问题简化后,每天地铁是否迟到就是一个 Bernoulli 分布,N 天中地铁迟到的次数 n 则为一个 binomial 分布。

以M过去两周的经验来说,总共10天里,地铁迟到了3次。那么地铁迟到的概率 t 是多少呢?

上一期中我们提到了 frequentist 和 Bayesian 之间的区别。其中最主要的一点是,frequentist 认为参数是固定的,而 Bayesian 认为参数和其它随机变量没有区别,它们也是随机变量,它们的 distribution 就是我们对其值 belief 的 distribution。在我们这个问题里,t 就是参数。

首先大致地讲一下 frequentist 的做法。Frequentist 求解参数,一般用 maximum likelihood 方法。参数的 likelihood 也就是 data 的 probability。假设 N 天里,地铁迟到了 n 次,那么 likelihood 为,

这个公式不是很讨好,我们来把它变换一下。我们知道,log 函数不会改变原函数的大小关系 (monotonic),所以,maximum likelihood 等价于 maximum log-likelihood。公式变成了,

C为常数,不取决于 t 的值。我们可以很容易地求得当 t = n / N 时,上面地 log-likelihood 取得最大值。好的,frequentist 的结果为 n / N = 3 / 10 = 0.3,即地铁迟到的概率为30%。

Bayesian 方法怎么去做呢?还记得上一期我们提到的 Bayesian 理念吧。我们需要给 t 一个 prior distribution。我们知道,t 作为概率是介于0到1之间的,它最常用的 prior 是 beta distribution。可能很多学友不是特别熟悉 beta distribution,但对于 statistician 尤其是 Bayesian statistician 来说,它是最基本的一种 distribution。我们在这儿不讨论 beta distribution 的细节。需要大体了解一下,它有两个参数,pdf 的图形如下,

它的表达式为,

如果我们认为 t 是从0到1均匀分布的,我们可以用 uniform 作为它的 prior,也就是 t ~ Beta(1, 1) = uniform。这个 prior 没有融入任何主观的猜测,所以这样的 prior 也叫做 uninformative prior。其实,即便是这样的 prior,它也提供了一定的信息,比如 t 的值不会小于0或者大于1 。所以,uninformative prior 名字有些歧义,它实际上是 less informative prior。

知道了参数的 prior distribution 和 likelihood,那么 posterior distribution 是不是很容易求得呢?答案是否定的。只有一些特定的 distribution (比如 Gaussian distribution) 才可以写出它的解析式。即便写出它的解析式,很多情况下 posterior 的一些 statistics 是很难求得的。这是就需要请出强大的 MCMC (Markov chain Monte Carlo),这个后面一定会讲到。

好的,我们计算一下,给了数据 D 后,参数 t 的 posterior distribution 为,

对于很多其他形式的 posterior 来说,位于分母的积分 P(D) 并不容易计算。幸运的是,这个积分的值并不取决于参数的值,而分子才是决定参数的重要因素。从这个角度来说,分母的作用只是 normalization 而已,对决定参数分布作用不大 。

还有一个有趣的现象是,算得的 posterior 和 prior 形式上是一样的。这也是当 likelihood 为 binomial 时,我们选择 beta distribution 作为 prior 的好处。对于不同的 likelihood,选择一些特定的 prior 可以使得 posterior 与 prior 形式一致,给计算带来方便。这样的 prior,称之为 conjugate prior。

我们最后求得 t 的 posterior 为 Beta(n+1, N-n+1),即 Beta(4, 8),它的 mode 是 0.3,而 mean 是 1 / 3。

假如说我们只想用一个值而不是 distribution 来表示参数,很多情况下我们会选择 mode,也就是让 posterior 最大的那个参数值。这个方法也叫做 maximum a posteriori (MAP)。如果 prior 是 uniform 的话,它跟 frequentist 的 maximum likelihood 得到的结果一样。当然,maximum a posteriori 是一个过于简单的方法,用一个值来代替整个 distribution 显然是不准确或不完备的。我们后面会讲到 Bayesian 是怎样利用 posterior 来做 prediction 的。

听同事讲 Bayesian statistics: Part 2 - Bayesian inference的更多相关文章

  1. 听同事讲 Bayesian statistics: Part 1 - Bayesian vs. Frequentist

    听同事讲 Bayesian statistics: Part 1 - Bayesian vs. Frequentist   摘要:某一天与同事下班一同做地铁,刚到地铁站,同事遇到一熟人正从地铁站出来. ...

  2. Stanford机器学习笔记-3.Bayesian statistics and Regularization

    3. Bayesian statistics and Regularization Content 3. Bayesian statistics and Regularization. 3.1 Und ...

  3. BAYESIAN STATISTICS AND CLINICAL TRIAL CONCLUSIONS: WHY THE OPTIMSE STUDY SHOULD BE CONSIDERED POSITIVE(转)

    Statistical approaches to randomised controlled trial analysis The statistical approach used in the ...

  4. 贝叶斯统计(Bayesian statistics) vs 频率统计(Frequentist statistics):marginal likelihood(边缘似然)

    1. Bayesian statistics 一组独立同分布的数据集 X=(x1,-,xn)(xi∼p(xi|θ)),参数 θ 同时也是被另外分布定义的随机变量 θ∼p(θ|α),此时: p(X|α) ...

  5. Bayesian Statistics for Genetics | 贝叶斯与遗传学

    Common sense reduced to computation - Pierre-Simon, marquis de Laplace (1749–1827) Inventor of Bayes ...

  6. Bayesian statistics

    文件夹 1Bayesian model selection贝叶斯模型选择 1奥卡姆剃刀Occams razor原理 2Computing the marginal likelihood evidenc ...

  7. 【死磕JVM】给同事讲了一遍GC后,他要去面试,年轻人,就是容易冲动!

    前言 在一个风和日丽的中午,和同事小勇一起走在公司楼下的小公园里面,看到很多的小姐姐,心想什么时候能够和这些小姐姐一起讨论人生呀,美滋滋,嘿嘿嘿. 收起你的哈喇子好不好,小勇总是在这个时候发出声音,挺 ...

  8. 什么是WebSocket (经常听别人讲感觉很高大上其实不然)

    WebSocket 协议在2008年诞生,2011年成为国际标准.现在所有浏览器都已经支持了.WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真 ...

  9. 算法很美,听我讲完这些Java经典算法包你爱上她

    大家好,我是小羽. 对于编程来说的话,只有掌握了算法才是了解了编程的灵魂,算法对于新手来说的话,属实有点难度,但是以后想有更好的发展,得到更好的进阶的话,对算法进行系统的学习是重中之重的. 对于 Ja ...

随机推荐

  1. hdu1047(Java)大数相加

    题目大意:输入n组数据,每组数据中又有若干长度不大于100的整数,以0结束每组数据的输入,求每组中数据之和.每两组数据输入之间有一行空格,输出也是如此. Integer Inquiry Time Li ...

  2. byte数组与对象之间的相互转换

    在进行网络通信时可能需要传输对象,如果用NIO的话,只能用Bytebuffer和channel直接 通过ByteArray*Stream和Object*Stream可以将byte数组和对象进行相互的转 ...

  3. 100 high quality blogs from java developers

    This list collects 100 high quality blogs from Java developers from all over the world. Some of thes ...

  4. ALTER---为已创建的表添加默认值

    alter table table_name modify column_name default default_value; 例: alter table userinfo modify emai ...

  5. 别了 oi——一篇高三狗的滚粗遗言

    /* 开始于2015年12月 结束于2016年11月 一年的oi生涯有很多值得怀念的事 还记得去年旺哥找我学oi 当时是一脸的蒙逼 要知道 高二才开始搞是很晚了 然而 也就是那一晚之后 许多事情都变了 ...

  6. 2014年的Google I/O app设计中的材料设计-渣渣的翻译

    又是一篇翻译,用了三个多小时.http://android-developers.blogspot.co.id/2014/08/material-design-in-2014-google-io-ap ...

  7. iOS 添加占位符

    添加占位符: 首先占位符的大小要比textView 的大小要小一些 1.添加一个取消键盘的通知 2.添加一个代理事件 1. // removeKeyBoard 添加通知收回键盘 [[NSNotific ...

  8. thinkphp 模板中赋值

    在项目开发的时候,有时候希望直接在模板中调用 一些自定义方法,或者内置方法来,处理获得一些数据,并且赋值给一个变量给后面调用,这个时候如果用原生Php 的方式调用如下:<?php $abc = ...

  9. Mysql JDBC 连接串参数说明

    MySQL的 JDBC URL 格式 for  Connector/J 如下例: jdbc:mysql://[host:port],[host:port].../[database][?参数名1][= ...

  10. UVA 11584 Paritioning by Palindromes(动态规划 回文)

    题目大意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串.比如racecar本身就是回文串:fastcar只能分成7个单字母的回文串:aaadbccb最少可分成3个回文串:aaa. ...