频率派认为概率是事件在长时间内发生的频率;贝叶斯派把概率解释成是对事件发生的信心。
如果频率推断和贝叶斯推断是一种编程函数,输入是各种统计问题,那么这两个函数返回的结果可能是不同的。频率推断返回一个估计值(通常是统计量),而贝叶斯推断则会返回概率值。
实例:图书管理员还是农民
故事的灵感来自于Daniel Kahneman的《思考,快与慢》一书,史蒂文被描述为一个害羞的人,他乐于助人,但是他对其他人不太关注。他非常乐见事情处于合理的顺序,并对他的工作非常细心。你会认为史蒂文是一个图书管理员还是一个农民?
从上面的描述来看,大多数人会认为史蒂文更像是图书管理员,但是却忽略了一个关于图书管理员和农民的事实:男性图书管理员的人数只有男性农民的1/20。所以,从统计学来看史蒂文更有可能是一个农民。
把问题简化,假设世上只有两种职业——图书管理员和农民,并且农民的数量确实是图书管理员的20倍。
设事件A为史蒂文是一个图书管理员。如果我们没有史蒂文的任何信息,那么P(A) = 1/21 = 0.047,这是我们的先验。
现在假设从史蒂文的邻居们那里得到了关于他的一些消息,我们称它为X。我们想知道的就是P(A|X),由贝叶斯定理得:
P(X|A)可以被定义为在史蒂文真的是一个图书管理员的情况下,邻居们给出的某种描述的概率。即如果史蒂文真的是一个图书管理员,他的邻居们将他描述为一个图书管理员的概率,这个值可能接近于1,假设它为0.95。
P(X)可以解释为:任何人对史蒂文的描述和史蒂文邻居的描述一致的概率。我们将其改造为: P(X)=P(X and A) + P(X and ~A)=P(X|A)P(A) + P(X|~A)P(~A) 其中~A表示史蒂文不是一个图书管理员的事件,那么他一定是一个农民。
现在我们知道P(X|A)和P(A),另外也可知P(~A)=1-P(A)=20/21。现在我们只需知道P(X|~A),即在史蒂文为一个农民的情况下,史蒂文的邻居们给出的某种描述的概率即可,假设它为0.5,这样 P(X)=0.95*1/21 + 0.5*20/21=0.52
结合以上,P(A|X)=(0.95*1/21)/0.52=0.087
这个值并不算高,但考虑到农民的数量比图书管理员的数量多那么多,这个结果也非常合理了。
具体实现代码如下:
# -*- coding: utf-8 -*-
from IPython.core.pylabtools import figsize
import numpy as np
from matplotlib import pyplot as plt
figsize(12.5, 4)
plt.rcParams['savefig.dpi'] = 100
plt.rcParams['figure.dpi'