美文网首页
Gaussian Sampling

Gaussian Sampling

作者: 非常暴龙兽 | 来源:发表于2019-06-09 20:30 被阅读0次

参考:
https://cosx.org/2015/06/generating-normal-distr-variates/
https://heliosphan.org/zigguratalgorithm/zigguratalgorithm.html

利用中心极限定理生成正态分布

样本足够大时,样本均值的分布收敛到正态分布。
生成100000个[0,1)随机数,每100个一组取平均值,得到1000个平均值,服从正态分布。
效率太低了,只能玩一玩。

利用逆变换生成正态分布

知道概率分布函数的话,求反函数,把均匀分布的随机变量代入反函数,就能得到相应的分布。
比如指数分布的概率分布函数
F(x)=1-e^{-\lambda x},其反函数F^{1-}(x)=-\frac{\ln(1-x)}{\lambda}
具体方法见下节:

Box-Muller算法

x和y是两个彼此独立、服从[0,1)均匀分布的随机变量,则
N_1=\cos (2\pi x)\sqrt{-2\ln y}
N_2=\sin (2\pi x)\sqrt{-2\ln y}
是两个彼此独立、服从正态分布的随机变量。
这个应该是自带函数的计算方法。
证明方法:利用联合概率密度、Jacobian来证明。

更快的:Ziggurat算法

基本思想是“拒绝采样”。具体内容见文章开头链接。



比直接套逆变换公式要快60%左右。因为逆变换法用到了三角函数和对数函数。

相关文章

网友评论

      本文标题:Gaussian Sampling

      本文链接:https://www.haomeiwen.com/subject/jhznxctx.html