1700537325
1700537326
问题 如何对高斯分布进行采样?
1700537327
1700537328
难度:★★★☆☆
1700537329
1700537330
分析与解答
1700537331
1700537332
首先,假设随机变量z服从标准正态分布N(0,1),令
1700537333
1700537334
x=σ·z+μ ,
1700537335
1700537336
(8.7)
1700537337
1700537338
则x服从均值为 μ、方差为σ2的高斯分布N(μ,σ2)。因此,任意高斯分布都可以由标准正态分布通过拉伸和平移得到,所以这里只考虑标准正态分布的采样。常见的采样方法有逆变换法、拒绝采样、重要性采样、马尔可夫蒙特卡洛采样法等。具体到高斯分布,要如何采样呢?
1700537339
1700537340
如果直接用逆变换法,基本操作步骤为:
1700537341
1700537342
(1)产生[0,1]上的均匀分布随机数u。
1700537343
1700537344
1700537345
(2)令,则z服从标准正态分布。其中erf(·)是高斯误差函数,它是标准正态分布的累积分布函数经过简单平移和拉伸变换后的形式,定义如下
1700537346
1700537347
1700537348
.
1700537349
1700537350
(8.8)
1700537351
1700537352
上述逆变换法需要求解erf(x)的逆函数,这并不是一个初等函数,没有显式解,计算起来比较麻烦,所以为了避免这种非初等函数的求逆操作,Box-Muller算法提出了如下解决方案:既然单个高斯分布的累计分布函数不好求逆,那么两个独立的高斯分布的联合分布呢?假设x,y是两个服从标准正态分布的独立随机变量,它们的联合概率密度为
1700537353
1700537354
1700537355
.
1700537356
1700537357
(8.9)
1700537358
1700537359
1700537360
考虑 (x,y)在圆盘上的概率
1700537361
1700537362
1700537363
.
1700537364
1700537365
(8.10)
1700537366
1700537367
通过极坐标变换将 (x,y)转化为 (r,θ),可以很容易求得二重积分,式(8.10)变为
1700537368
1700537369
1700537370
.
1700537371
1700537372
(8.11)
1700537373
1700537374
这里F(R)可以看成是极坐标中r的累积分布函数。由于F(R) 的计算公式比较简单,逆函数也很容易求得,所以可以利用逆变换法来对r进行采样;对于 θ ,在[0,2π]上进行均匀采样即可。这样就得到了 (r,θ),经过坐标变换即可得到符合标准正态分布的 (x,y)。具体采样过程如下:
[
上一页 ]
[ :1.700537325e+09 ]
[
下一页 ]