听同事讲 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。
听同事讲 Bayesian statistics: Part 1 - Bayesian vs. Frequentist的更多相关文章
- 听同事讲 Bayesian statistics: Part 2 - Bayesian inference
听同事讲 Bayesian statistics: Part 2 - Bayesian inference 摘要:每天坐地铁上班是一件很辛苦的事,需要早起不说,如果早上开会又赶上地铁晚点,更是让人火烧 ...
- Stanford机器学习笔记-3.Bayesian statistics and Regularization
3. Bayesian statistics and Regularization Content 3. Bayesian statistics and Regularization. 3.1 Und ...
- 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 ...
- 贝叶斯统计(Bayesian statistics) vs 频率统计(Frequentist statistics):marginal likelihood(边缘似然)
1. Bayesian statistics 一组独立同分布的数据集 X=(x1,-,xn)(xi∼p(xi|θ)),参数 θ 同时也是被另外分布定义的随机变量 θ∼p(θ|α),此时: p(X|α) ...
- Bayesian Statistics for Genetics | 贝叶斯与遗传学
Common sense reduced to computation - Pierre-Simon, marquis de Laplace (1749–1827) Inventor of Bayes ...
- Bayesian statistics
文件夹 1Bayesian model selection贝叶斯模型选择 1奥卡姆剃刀Occams razor原理 2Computing the marginal likelihood evidenc ...
- 【死磕JVM】给同事讲了一遍GC后,他要去面试,年轻人,就是容易冲动!
前言 在一个风和日丽的中午,和同事小勇一起走在公司楼下的小公园里面,看到很多的小姐姐,心想什么时候能够和这些小姐姐一起讨论人生呀,美滋滋,嘿嘿嘿. 收起你的哈喇子好不好,小勇总是在这个时候发出声音,挺 ...
- 什么是WebSocket (经常听别人讲感觉很高大上其实不然)
WebSocket 协议在2008年诞生,2011年成为国际标准.现在所有浏览器都已经支持了.WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真 ...
- 算法很美,听我讲完这些Java经典算法包你爱上她
大家好,我是小羽. 对于编程来说的话,只有掌握了算法才是了解了编程的灵魂,算法对于新手来说的话,属实有点难度,但是以后想有更好的发展,得到更好的进阶的话,对算法进行系统的学习是重中之重的. 对于 Ja ...
随机推荐
- keepalive support-----Programming applications
TCP Keepalive HOWTO Prev Next 4. Programming applications This section deals with programming code ...
- Cocos2d-x中获取设备语言的方法
1.cocos2dx获取设备语言的方法:CCApplication::sharedApplication()->getCurrentLanguage() 2.cocos2dx 2.1.4支持识别 ...
- 在WinForm中使用委托来在其他线程中改变控件的显示
假设winform中有两个控件: 1.ListView用来显示进度的文本提示,ID:listView_progressInfo 2.ProgressBar用来显示进度,ID:progressBar1 ...
- SOAP消息的传递
上一篇说了SOAP消息的创建,那么创建好了的SOAP消息要怎么发送给服务端呢? public class SoapTest { private String wsdlUri = "http: ...
- Chapter 3. Installing Gradle 安装gradle
3.1. Prerequisites Gradle requires a Java JDK or JRE to be installed, version 6 or higher (to check, ...
- 利用mysql中的SQL_CALC_FOUND_ROWS 来实现group by后的记录数统计
最近正在做一个显示消息的列表页,列表页中需要根据一个字段来分组显示.并且需要一个分页的效果. 大家也知道group by 后的数据是每一组一行记录,统计分组后的总的记录数又不能用count,所以SQL ...
- IIS 上发布ASP.NET5
原文 http://docs.asp.net/en/latest/publishing/iis.html 1.安装HTTP Platform Handler ,这个是必需的,不然无法通过IIS访问AS ...
- Perl连接Sqlite数据库
Sqlite是一个小巧的嵌入式关系型数据库,几乎可以嵌入所有编程语言,特别是C,C++,PHP,Perl等.这里就介绍如何用Perl连接并操作Sqlite数据库. use DBI; # perl用以操 ...
- AIX filesystemcache引发的Oracle事故
链接地址: http://www.jydba.net/aix-filesystemcache%e5%bc%95%e5%8f%91%e7%9a%84oracle%e4%ba%8b%e6%95%85/ A ...
- SQL的数据类型
Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多 8,000 个字符. N的范围1-8000 varchar(n) 可变长度的字符串.最多 8,000 个字符 ...