Matlab mvnrnd不会生成具有给定平均值和相关性的数据
让我们假设我们有下面的平均向量Matlab mvnrnd不会生成具有给定平均值和相关性的数据,matlab,statistics,Matlab,Statistics,让我们假设我们有下面的平均向量 mu = [2,3] 并给出了相关矩阵 sigma = [1,1.5;1.5,3]. >> corrcoef(r) ans = 1.0000 0.9016 0.9016 1.0000 因此,我们将在matlab中 >> mu = [2,3] sigma = [1,1.5;1.5,3] mu = 2 3 sigma = 1.0000 1.5000 1.50
mu = [2,3]
并给出了相关矩阵
sigma = [1,1.5;1.5,3].
>> corrcoef(r)
ans =
1.0000 0.9016
0.9016 1.0000
因此,我们将在matlab中
>> mu = [2,3]
sigma = [1,1.5;1.5,3]
mu =
2 3
sigma =
1.0000 1.5000
1.5000 3.0000
现在用给定的信息生成多元正态随机数
rng default % For reproducibility
r = mvnrnd(mu,sigma,100);
但给定矩阵的平均值
>> mean(r)
ans =
2.1231 3.1217
和相关矩阵
sigma = [1,1.5;1.5,3].
>> corrcoef(r)
ans =
1.0000 0.9016
0.9016 1.0000
造成这种差异的原因是什么?因为样本量小?提前感谢西格玛是协方差矩阵。我认为cov是你想要的,而不是返回相关因子的corrcoef(因此对角线中的1)。你永远不会从有限样本中得到真正的
mu
和sigma
值。您从样本中计算的是。它们与理论平均值和协方差不同,但在概率上几乎肯定会收敛到它们(见下表)。换句话说,就好像你被告知西班牙女性的平均身高是162.6厘米;你从100名女性中抽取样本,得到163.5分。这是完全合理的sigma是协方差矩阵。我认为cov是你想要的,而不是返回相关因子的corrcoef(因此对角线中的1)。你永远不会从有限样本中得到真正的mu
和sigma
值。您从样本中计算的是。它们与理论平均值和协方差不同,但在概率上几乎肯定会收敛到它们(见下表)。换句话说,就好像你被告知西班牙女性的平均身高是162.6厘米;你从100名女性中抽取样本,得到163.5分。这完全合理