张春成

V2

2023/01/11阅读:23主题:默认主题

后验概率的暴力计算

后验概率的暴力计算

本文提供一种后验概率的暴力计算思路,但很遗憾,暴力计算解的精度低于解析解,这也许就是数据驱动的机器学习和数据分析之间的差距。

本文的开源代码可见我前端代码库

Simulation of Maximized Posterior Probabilities[1]


坦克问题

本文选择的是德国坦克数量估计问题,该问题简化为从N个元素中随机选择M个元素,但N值是未知的,我们的目的是找到最可能的N值。问题描述如下

我相信有N辆坦克,但其值未知。如果我随机选择了其中的M辆,并记录它们的序列号,我如何以此为基础估计出真实的N值?

The German Tank Problem Explained: AP® Statistics Review[2]

这个问题是有解析解的,它就是

其中, 是观测到的最大的序列号。

暴力模拟

本文通过暴力计算的方法对正向过程的模拟达到求解的目的。

如果有N辆坦克,我从中随机选择M辆,那么我能得到什么呢?

选择过程重复R次,以构建相当大的数据集以获得全局分布。在每次选择中,我使用不放回的方式从样本中随机选择M个元素,所选出的值按照升序排序。之后将选择出的值与排序后的观测目标值逐一进行比较,并计算这些序列的差异

其中,t和s指的是相应的目标和选择值,n指的是潜在的N值的全部可能。差异最小的n被认为是潜在的N值。

目标值是从真实世界中获得的,例如,它指的是坦克的序列号。因此,计算的最终结果能够估计出目标序列的N值。

计算结果

下图是暴力模拟的结果,图中的纵坐标是差异值,差异值是前文所述的模拟和目标序列之间的差异;图中的横坐标代表模拟时使用的 N 值。模拟结果表明,估计值总是有偏差的。无论执行多少模拟都是如此,说明估计值本身有偏。另一方面,数学解更接近目标N值,可以说它能够提供更高精度的答案。


样例1

Setup
Setup

Setup

Mean Curve
Mean Curve

Mean Curve

All Simulation
All Simulation

All Simulation


样例2

Setup 2
Setup 2

Setup 2

Mean Curve 2
Mean Curve 2

Mean Curve 2

All Simulation
All Simulation

All Simulation

参考资料

[1]

Simulation of Maximized Posterior Probabilities: https://observablehq.com/@listenzcc/simulation-of-maximized-posterior-probabilities

[2]

The German Tank Problem Explained: AP® Statistics Review: https://www.albert.io/blog/german-tank-problem-explained-ap-statistics-review/

分类:

后端

标签:

后端

作者介绍

张春成
V2