如何使用MultivariateNormalDistribution类创建多个相关随机数?

时间:2017-02-25 21:10:40

标签: java math statistics

我尝试使用以下代码生成多个相关的随机数:

MultivariateNormalDistribution mnd = new MultivariateNormalDistribution(means,    
covariances);
double vals[] = mnd.sample();

不幸的是,经过几次运行后我不得不意识到我得到的数字根本没有相关性。协方差矩阵似乎不会影响分布。

有什么方法可以误解方法,有人可以解释如何正确使用该方法吗?

AMK, 贾马尔

1 个答案:

答案 0 :(得分:0)

令x具有多元高斯分布,其中均值为0且协方差= I,其中I是m维单位矩阵,其中m = x的维数。设S是正定矩阵,并且让L为下三角矩阵,使得L。转置(L)= S.(即,L是S的Cholesky分解。)然后L x是多元高斯分布,均值为0,协方差为S.

如果将任意向量mu添加到L x,则mu + L x具有高斯分布,具有平均μ和协方差S.

来自m维高斯的样本,其均值为0且协方差= I只是一个列表(x_1,...,x_m),其中每个x_i是1维高斯,平均值为0,方差为1。