Matlab:假设一个 4x4 相关矩阵,如何生成一个 4x1 随机变量矩阵?

标签 matlab statistics probability correlation montecarlo

我从 4 个时间序列开始,标记为 A、B、C、D。

我生成以下内容:

  • 一个 4x1 均值矩阵。
  • 4x1 标准差矩阵。
  • 4x4 correlation matrix ,通过从每个时间序列中抽取 30 个样本。

生成 4x1 随机变量矩阵并保持时间序列之间相关性完整的 Matlab 代码是什么?

(原因:这是蒙特卡罗模拟的第一阶段)。

最佳答案

您只需要均值向量(称为 m )和协方差矩阵(称为 C )。请注意,您可以使用方程 C = R - m*m' 从相关性中获得协方差矩阵。 (或者直接通过计算序列减去均值后的相关性来计算)。

然后,为了获得具有协方差 C 的向量,您生成一个 IID 随机向量(比如高斯):

w = randn(4,1)

然后将它与协方差矩阵的平方根相乘(称为 Q)并加上平均值:

v = Q*w + m

您可以使用 Matlab 的 sqrt 函数计算 sqrt(C) 或使用 SVD 或 EIG 计算它。

[u,d] = eig(C)

Q = u*sqrt(d)*u'

v 的协方差将是 Q*Q' (= C ) 并且均值为 m

参见 wikipedia article对于协方差矩阵的性质。

关于Matlab:假设一个 4x4 相关矩阵,如何生成一个 4x1 随机变量矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6278270/

相关文章:

algorithm - QuickSort 的迭代实现中的无限循环?

R For 循环执行 Fisher 测试 - 错误消息

C++ 随机数检查非常小的概率

algorithm - 保龄球算法随机击倒球瓶和一些双倍机会

matlab - 这个 Matlab 运算符的名字是什么?

matlab - 按 2 个变量分组,一个变量具有独特的颜色,另一个变量具有独特的形状

MATLAB面试题?

python - python 上有两个变量的线性回归

c - 需要一些帮助来计算百分位数

algorithm - Knuth随机播放的变体