Skip to content

β 分布

发布于  at 03:47 PM更新于  at 02:50 PM

概率与统计

概率论课本通常会给出事件概率,然而,生活中很难做到这一点。相反,我们在真实世界中得到的是数据,需要用这些数据去估算概率。这就是统计学的作用:利用数据,对概率做出估计。

例如:概率论中,我们会被告知公平的投掷硬币,得到正面的概率是 12\frac{1}{2},而我们想知道在 20 次抛掷硬币中得到 7 次正面的概率。

在统计学中,我们会反过来:假设你观察到 20 次抛掷硬币中,正面出现 7 次,那么在一次抛硬币中得到正面的概率是多少?在这里,我们并不知道概率是多少。也就是说 统计学是概率论的反面

在给定数据的情况下,求出概率的任务叫做 推理(inference),它是统计学的基础。

神秘黑盒子

现在有一个神秘的黑盒子,没有任何说明。但是如果你放入一枚硬币,有时候可以吐出来两枚硬币,有时候什么也没有发生(每次只能放入一枚硬币,而且也不存在满的情况,这是高维空间盒子)。第一次投入 1 枚硬币,什么也没有发生。

这时候你很好奇,拿出一摞硬币,总共 40 个。第二次投入 1 枚硬币,吐出了 2 枚硬币。这时候,你会猜测 P(两枚硬币)=12P(两枚硬币)=\frac{1}{2}

为了收集更多数据,你把剩下硬币都用完了。得到以下数据:

到了这里,你可能会想将概率调整为 P(两枚硬币)=1441P(两枚硬币)=\frac{14}{41}

计算可能性的概率

为了简化问题,我们给每一个假设分配一个变量 HH:

直觉上,当然是 H2H_2 更有可能,但我们需要在数学上证明这一点。

我们用 DD 表示获得的数据,代入二项分布,可以得到:

P(DH1)=B(14;41,12)0.016P(D|H_1)=B(14;41,\frac{1}{2})\approx 0.016 P(DH2)=B(14;41,1441)0.130P(D|H_2)=B(14;41,\frac{14}{41})\approx 0.130

H2H_2 的概率是几乎是 H1H_1 的 10 倍!

我们也可以做出其它假设,例如 H3:P(两枚硬币)=1542H_3: P(两枚硬币)=\frac{15}{42}

如果我们想要探索一个规律,我们可以从 0.1 到 0.9 选出一个作为概率,然后以 0.01 的单位进行递增,计算数据在每一个分布中的概率。

p = 0.1:0.01:0.9;
y = binopdf(14, 41, p);
figure(1);
plot(p, y, 'o', 'MarkerSize', 4);
xlabel('概率 p');
ylabel('P(X=14|n=41,p)');
title('二项分布似然函数 (k=14, n=41)');

发生的概率

首先,可能性有无数个,无论我们用多么小的增量。第二,不难发现大于 0.1 点不止 10 个。这意味着概率之和并不等于 1。

根据概率规则,如果概率之和小于 1,说明遗漏了某些假设;如果大于 1,说明我们违反了概率必须在 0 和 1 之间的规则。

这就是为什么我们想要 β 分布

β 分布

与二项分布的离散值不同,β 分布是连续的。

我们使用概率密度函数(probability density function, PDF)来定义 β 分布:

Beta(p;α,β)=pα1×(1p)β1beta(α,β)Beta(p;\alpha, \beta)=\frac{p^{\alpha - 1}\times (1-p)^{\beta - 1}}{beta(\alpha, \beta)}

实验的总次数是 α+β\alpha + \beta,分子的结构和二项分布很像(只不过指数要减 1),分母是一个 betabeta 函数(注意小写),是 pα1×(1p)β1p^{\alpha - 1}\times (1-p)^{\beta - 1} 从 0 到 1 的 积分,用于 归一化

使用 β 分布绘图

我们将黑盒子的观察结果代入 β 分布并作图:

alpha = 14;
beta = 27;

x = 0:0.001:1;
y = betapdf(x, alpha, beta);
plot(x, y, 'b-', 'LineWidth', 2);
xlabel('p');
ylabel('概率');
title('Beta(14,27)的分布');

Beta(14,27)的分布

可以看到密度大部分小于 0.5。数据显示,吐出两次硬币的次数还不到向黑盒子放硬币次数的一半。

现在我们已经知道,这个黑盒子赔钱的概率比赢钱的概率大。

用积分量化连续分布

如果我们想知道黑盒子的概率小于 0.5 的概率(也就是值在 0 到 0.5 之间),那么我们可以使用积分:

00.5p141×(1p)271beta(14,27)\int_{0}^{0.5}\frac{p^{14 - 1}\times (1-p)^{27 - 1}}{beta(14, 27)}

使用 MATLAB,可以计算出来:

>> betacdf(0.5, 14, 27)

ans =

    0.9808

当然,也可以使用积分

integral(@(t) betapdf(t, 14, 27), 0, 0.5)

也就是说,基于目前的数据,从黑盒子中得到两枚硬币的真实概率小于 0.5 的概率达到 0.98。这意味着很可能会输钱。

逆向解构抽卡游戏

在现实生活中,我们几乎不可能知道事件的真实概率。这就是为什么 β 分布是我们理解数据最强大的工具之一。

假设在《星穹铁道》中,这一次我们想要抽白厄。我们花了一大笔钱,抽了 1200 次,只抽到 5 次白厄。

我们有一个朋友正考虑玩这个游戏,但只有抽到白厄的机会大于 0.005 的概率超过 0.7 的时候,他才会氪金去玩这个游戏。

在我们的数据下,可以表示成 Beta(5,1195)Beta(5, 1195),使用 MATLAB 绘制出分布:

alpha = 5;
beta = 1195;

x = 0:0.0001:0.01;
y = betapdf(x, alpha, beta);
plot(x, y, 'b-', 'LineWidth', 2);
xlabel('p');
ylabel('概率');
title('抽取白厄的概率分布:Beta(5,1195)的分布');

抽取白厄的概率分布:Beta(5,1195)的分布'

那么多大概率大于 0.005 呢?

>> 1 - betacdf(0.005, 5, 1195)

ans =

    0.2851

朋友说,只有大于 0.7 才去抽卡。因此,不应该去抽卡。

完整的 β 分布公式

Beta(x;α,β)=Γ(α+β)Γ(α)Γ(β)xα1(1x)β1Beta(x; \alpha, \beta) = \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)} x^{\alpha-1}(1-x)^{\beta-1}

其中 Γ\Gamma 也就是伽马函数。

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自小谷的随笔

上一篇
条件概率与贝叶斯定理
下一篇
资治通鉴开篇的纪年方法