我想生成两个具有指定相关性的随机向量。第二个向量的每个元素必须与第一个向量的相应元素相关并且相互独立。
我怎样才能在 MATLAB 中做到这一点?
顺便说一句,第一个向量的元素不具有相同的分布,我的意思是第一个向量的每个元素应该具有不同的方差。 (该向量由 7 个具有不同方差的变量组成。
如中所述这篇 Mathworks 文章 http://www.mathworks.com/support/solutions/en/data/1-CYHA89/index.html,您可以执行以下操作:
-
生成两个随机向量(i.e具有两列的随机矩阵)。假设您希望矩阵中每个元素的分布为均值为零且单位方差为零的高斯分布:
N = 1000; %// Number of samples in each vector
M = randn(N, 2);
显然,您可以根据自己的喜好使用任何发行版。
-
现在的技巧是:将矩阵与通过所需相关矩阵的 Cholesky 分解获得的上三角矩阵相乘R
:
R = [1 0.75; 0.75 1]; %// Our correlation matrix, taken from the article
M = M * chol(R);
-
从修改后的矩阵中提取随机向量M
:
x = M(:, 1);
y = M(:, 2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)