Monte Carlo
⌨️

Monte Carlo

 
 
 

np.random.default_rng

 
 
 

Uniform to Normal

 

Variable reduction

 
 

MCMC

 
 
 

Statistical Validation Techniques

 
 
 
好,我把整套方法从“几何直觉 → 公式 → 分布”完整拆开讲,并把 Dirichlet 是什么为什么边缘是 Beta 讲清楚。

1) “在三角形上均匀采样”到底是什么意思?

三角形在 3D 空间里,但它本质是一个 2 维平面区域
“均匀”指的是:对三角形面积的均匀(面积测度)。也就是三角形里任意两块等面积的小区域,被抽到的概率相同。

2) 为什么用重心坐标(barycentric coordinates)?

给定三角形三个顶点 (A,B,C),三角形内任意点都能写成:
[
]
这三个系数 ((a,b,c)) 就叫 重心坐标(也叫凸组合系数)。
直觉:
  • (a,b,c\ge 0):保证点在三角形“里面”(不是延长线外)
  • (a+b+c=1):这是“权重加起来为 1”
  • (a) 越大,点越靠近顶点 (A);(a=1) 就在 (A) 上;(a=0) 就在边 (BC) 上
在你的题里:
[
]
所以
[
]
因此:
[
]
所以题目问 (X) 的分布,本质上就是问 (a) 的分布。

3) 为什么“均匀采样”会让 ((a,b,c)) ~ Dirichlet(1,1,1)?

关键点:((a,b,c)) 的集合
[
{(a,b,c): a,b,c\ge 0,\ a+b+c=1}
]
本身就是一个 2D 的三角形(simplex),比如用 ((a,b)) 表示,(c=1-a-b),可行域是:
[
a\ge 0,\ b\ge 0,\ a+b\le 1.
]
如果我们在原来的几何三角形 (ABC) 上按面积均匀取点 (P),那么它对应到系数空间 ((a,b)) 的映射
[
(a,b)\mapsto P=aA+bB+(1-a-b)C
]
是一个线性/仿射变换
仿射变换对面积的作用是:把面积整体乘上一个常数因子(Jacobian 行列式的绝对值),不会随 ((a,b)) 变化。
所以:
  • 在 (P) 空间“均匀(常密度)”
  • 等价于在 ((a,b)) simplex 空间“均匀(常密度)”
而 “simplex 上的均匀分布” 正是
[
(a,b,c)\sim \text{Dirichlet}(1,1,1).
]
更一般:Dirichlet((\alpha_1,\dots,\alpha_K)) 定义在 simplex 上,密度 (\propto \prod x_i^{\alpha_i-1})。当所有 (\alpha_i=1) 时,密度就是常数 → 这就是“均匀”。

4) Dirichlet 分布是什么?

定义((K) 维)

随机向量 ((U_1,\dots,U_K)) 服从 Dirichlet((\alpha_1,\dots,\alpha_K)),记作
[
(U_1,\dots,U_K)\sim \mathrm{Dir}(\alpha_1,\dots,\alpha_K),
]
满足:
  • (U_i\ge 0)
  • (\sum_{i=1}^K U_i=1)
密度(在 simplex 上):
[
f(u_1,\dots,u_K)=\frac{1}{B(\alpha)}\prod_{i=1}^K u_i^{\alpha_i-1},
]
其中 (B(\alpha)) 是归一化常数(多元 Beta 函数)。

直觉

  • (\alpha_i) 越大,(U_i) 越倾向更大(权重更偏向第 (i) 个分量)
  • 全部 (\alpha_i=1) :完全均匀,没有偏好

一个重要性质:均值

[
\mathbb{E}[U_i]=\frac{\alpha_i}{\sum_j \alpha_j}.
]
所以 Dir((1,1,1)) 有
[
E[a]=E[b]=E[c]=\frac{1}{3}.
]

5) 为什么 (a) 的边缘分布是 Beta?

这是 Dirichlet 的经典边缘性质:
如果 ((U_1,\dots,U_K)\sim \mathrm{Dir}(\alpha_1,\dots,\alpha_K)),
那么任意一个分量
[
U_1 \sim \mathrm{Beta}\Big(\alpha_1,\ \sum_{j\ne 1}\alpha_j\Big).
]
在这里 (K=3),(\alpha_1=\alpha_2=\alpha_3=1)。所以:
[
a \sim \mathrm{Beta}(1,1+1)=\mathrm{Beta}(1,2).
]

用“积分消元”把它推一遍(你会更踏实)

Dir((1,1,1)) 在 simplex 上密度是常数。用 ((a,b)) 表示((c=1-a-b)):
可行域:
[
0\le a\le 1,\quad 0\le b\le 1-a.
]
联合密度 (f_{a,b}(a,b)=\text{常数})。
边缘密度:
[
f_a(a)=\int_0^{1-a} f_{a,b}(a,b),db \propto \int_0^{1-a} 1,db = 1-a.
]
归一化:要让 (\int_0^1 f_a(a),da=1),所以
[
f_a(a)=2(1-a),\quad a\in[0,1].
]
这正是 Beta((1,2)) 的密度:
[
\mathrm{Beta}(1,2):\quad f(a)=2(1-a).
]

6) 回到题目:(X=3a) 的分布怎么来?

我们已经有
[
f_a(a)=2(1-a),\ a\in[0,1].
]
又 (X=3a\Rightarrow a=X/3),变量变换:
[
f_X(x)=f_a(x/3)\cdot \left|\frac{d}{dx}(x/3)\right|
=2\left(1-\frac{x}{3}\right)\cdot \frac{1}{3}
=\frac{2}{3}\left(1-\frac{x}{3}\right),
\quad x\in[0,3].
]
所以 (X) 是一个在 ([0,3]) 上线性递减的密度。

7) (E[X]+E[Y]+E[Z]) 为什么等于 3?

因为
[
X=3a,\ Y=4b,\ Z=2c,
]
且 Dir((1,1,1)) 给
[
E[a]=E[b]=E[c]=1/3.
]
所以
[
E[X]=3\cdot\frac13=1,\quad
E[Y]=4\cdot\frac13=\frac43,\quad
E[Z]=2\cdot\frac13=\frac23.
]
加起来:
[
E[X]+E[Y]+E[Z]=1+\frac43+\frac23=3.
]

如果你想把它彻底“落地”,我也可以给你:
  • 一个 如何用 Dirichlet 采样点 来 Monte Carlo 验证 (f_X(x)) 的小代码
  • 或者用更几何的方式解释:为什么固定 (a) 时可行线段长度是 ((1-a)),从而 (f_a(a)\propto 1-a)。