跳转至

10.1   贝叶斯思维

暑假下午,小率在奶茶店等均哥。他从口袋里摸出一枚纪念币,抛了 10 次:6 次正面,4 次反面。他想知道:这枚硬币正面朝上的概率到底是多少?

图 10.1.0 小率用硬币提出贝叶斯问题

事件 结果
抛硬币次数 10
正面次数 6
反面次数 4
样本比例 0.60
如果按频率算,正面比例就是 0.6。那我能说这枚硬币正面概率就是 0.6 吗?
可以说“这 10 次里正面比例是 0.6”,但别急着把它当成真相。贝叶斯会问:看数据前你怎么想?看完数据后,你的想法应该怎么更新?

10.1.1   贝叶斯不是只给一个点

频率派常先给一个点估计:\(\hat p=6/10=0.6\)。这个数很直观,但它把不确定性压扁了。10 次抛掷太少,6 正 4 反并不能证明硬币偏得很厉害。

贝叶斯思维会把“我对正面概率的看法”画成一条分布:

  • 看数据前:我大概相信硬币接近公平,但不确定。
  • 看到 6 正 4 反后:我会把信念往 0.6 附近挪一点。
  • 数据越多:分布越窄,信念越集中。

图 10.1.1 贝叶斯思维更新的是一整条分布

一句话

贝叶斯回答的不是“点估计是多少”,而是“看完数据后,哪些参数值更可信”。

10.1.2   先验是看数据前的看法

先验(Prior)不是拍脑袋,它是**看数据前对未知量的表达**。比如小率对硬币正面概率 \(p\) 的先验可以很弱:

\[ p \sim \text{Beta}(2,2) \]

这表示:我倾向于相信硬币大概公平,但并不强硬。Beta 分布适合描述 0 到 1 之间的概率,所以常用在硬币、转化率、合格率这类问题上。

先验会不会太主观?我随便选一个,不就能影响结论了吗?
会影响,尤其是样本少的时候。所以要说明先验来源,也要做敏感性分析:换几个合理先验看看结论稳不稳。

10.1.3   数据通过似然来改变信念

似然(Likelihood)表示:如果正面概率是某个值,那么现在这批数据出现的可能性有多大。对于 10 次中 6 次正面:

\[ P(D \mid p) \propto p^6(1-p)^4 \]

贝叶斯更新的核心是:

\[ \text{后验} \propto \text{似然} \times \text{先验} \]

也就是:

\[ P(p \mid D) \propto P(D \mid p)P(p) \]

这句话很短,但含义很强:旧看法不会消失,新数据也不会被忽略,最后的后验(Posterior)是两者共同作用的结果。

10.1.4   概率也可以表示信念

频率派和贝叶斯派对“概率”的理解不同:

视角 概率的含义 典型表达
频率派 大量重复实验中的长期频率 这枚硬币长期正面率是固定常数
贝叶斯 对未知量的信念程度 看完数据后,我认为 \(p\) 落在某区间的概率是多少

两者不一定谁对谁错,更像是回答不同问题。频率派擅长长期重复和误差率控制;贝叶斯擅长把已有信息、新证据和单次决策放在一起。

适合贝叶斯的场景

样本少、有可靠历史经验、需要直接表达“某方案更好概率”、或要连续更新判断时,贝叶斯通常很自然。

10.1.5   几行 Python 看后验怎么变

配套脚本放在:

docs/assets/scripts/ch10_bayesian/01_bayesian_thinking/main.py

核心代码如下:

from scipy import stats

prior_a, prior_b = 2, 2
heads, tails = 6, 4

post_a = prior_a + heads
post_b = prior_b + tails

mean = post_a / (post_a + post_b)
interval = stats.beta.ppf([0.025, 0.975], post_a, post_b)

print(f"后验: Beta({post_a}, {post_b})")
print(f"后验均值: {mean:.3f}")
print(f"95% 信用区间: {interval[0]:.3f}{interval[1]:.3f}")
原来“更新信念”在 Beta-Binomial 里就是做加法:正面加到 a,反面加到 b。
对。公式背后很朴素:旧证据加上新证据,得到新看法。

小率的笔记本

贝叶斯思维把未知参数看成一条分布,而不是一个固定点。先验表示看数据前的看法,似然表示数据怎样支持不同参数,后验表示看完数据后的看法。核心口诀是:后验正比于似然乘以先验。