生成随机数的原理,生成多元分布随机数

如何生成随机数及多元分布的随机数,发现佐治亚理工的一个课件,讲的特别详细,包括多种方法,以及如何生成多元正态分布的随机数:

https://www2.isye.gatech.edu/~sman/courses/6644/Module07-RandomVariateGenerationSlides_171116.pdf

打开速度慢的话可从百度网盘下载:链接:https://pan.baidu.com/s/1X4IVcA-lgAq9Ya95rnGq_A
提取码:k9gv

时间有限,慢慢整理吧。现在知道,一般的随机分布用逆函数法生成随机数,对于泊松分布,则用 “接受拒绝法” 生成随机数。

下面整理一下如何生成多元分布的随机数:

1. 假设有一个多元变量

X = ( x 1 , x 2 , , x n ) T \textbf{X}=(x_1, x_2, \dots, x_n)^T

它的均值向量为 μ \boldsymbol {\mu} ,协方差矩阵为 Σ \bf\Sigma .

由于协方差矩阵为半正定矩阵,它可以三角分解,即 Σ = C C T \bf\Sigma=CC^T ,其中, C C 为一个下三角矩阵,并且对角线元素为非负实数。

2. 对于多元正态分布,有下面关系:

X = μ + C Z \bf X=\boldsymbol \mu+CZ

其中, Z \bf Z 为标准正态分布的 n n 个变量: ( z 1 , z 2 , , z n ) (z_1, z_2, \dots, z_n)

可以验证, μ + C Z \bf\boldsymbol \mu+CZ 的均值向量也为 μ \boldsymbol {\mu} ,协方差矩阵也为 Σ \bf\Sigma

3. 生成多元正态分布随机数的步骤:

(1)生成标准正态分布随机数
(2)求出协方差矩阵的三角分解矩阵 C \bf C
(3)根据 X = μ + C Z \bf X=\boldsymbol \mu+CZ ,将第一步生成的随机数转化为普通多元正态分布的随机数

若两个分布相互独立,则对于它们联合分布的随机数,每个分布分别生成随机数,然后组合在一起就可以了。

猜你喜欢

转载自blog.csdn.net/robert_chen1988/article/details/104877913