打字猴:1.7005374e+09
1700537400
1700537401
1700537402
1700537403 (8.13)
1700537404
1700537405
1700537406
1700537407
1700537408 (8.14)
1700537409
1700537410 利用逆变换法很容易得到指数分布的样本,然后再根据拒绝采样法来决定是否接受该样本,接受的概率为
1700537411
1700537412
1700537413
1700537414
1700537415 (8.15)
1700537416
1700537417
1700537418 其中是标准正态分布压缩到正半轴后的概率密度函数,常数因子M需要满足如下条件:
1700537419
1700537420
1700537421
1700537422
1700537423 (8.16)
1700537424
1700537425 实际应用时,M需要尽可能小,这样每次的接受概率大,采样效率更高。因此,可以取
1700537426
1700537427
1700537428
1700537429
1700537430 (8.17)
1700537431
1700537432 计算后得到接受概率
1700537433
1700537434
1700537435
1700537436
1700537437 (8.18)
1700537438
1700537439 因此,具体的采样过程如下:
1700537440
1700537441
1700537442 (1)产生[0,1]上的均匀分布随机数u0,计算得到指数分布的样本x。
1700537443
1700537444
1700537445 (2)再产生[0,1]上的均匀分布随机数u1,若,则接受x,进入下一步;否则拒绝,跳回到步骤1重新采样。
1700537446
1700537447 (3)最后再产生[0,1]上的均匀分布随机数u2,若u2<0.5,则将x转化为 −x,否则保持不变;由此最终得到标准正态分布的一个样本。
1700537448
1700537449 拒绝采样法的效率取决于接受概率的大小:参考分布与目标分布越接近,则采样效率越高。有没有更高效的拒绝采样算法呢?这就是Ziggurat算法,该算法本质也是拒绝采样,但采用多个阶梯矩形来逼近目标分布(见图8.5)。Ziggurat算法虽然看起来稍微烦琐,但实现起来并不复杂,操作也非常高效,感兴趣的读者可以自行查阅相关文献。
[ 上一页 ]  [ :1.7005374e+09 ]  [ 下一页 ]