如何在MATLAB中生成一个数据集,其中变量将与预先指定的级别相关?

如何在MATLAB中生成一个数据集,其中变量将与预先指定的级别相关?,matlab,statistics,pearson,Matlab,Statistics,Pearson,我希望创建一个包含三列和任意行数的数据集 我希望第1列有一个皮尔逊相关性。20与第2列,第1列与之相关。24与第3列,第2列与第3列相关。3与第3列相关 如何生成此结果?您可以使用mvnrnd生成多变量guassian,并指定协方差以实现所需的pearson相关性 请参阅以下文档: 我知道在r=mvnrnd(MU、SIGMA、cases)中,我应该将cases设置为100。然而,我不知道如何设置μ和SIGMA;mu=[3];我得到了错误消息“SIGMA必须是对称半正定矩阵。”试试这个--SIGM

我希望创建一个包含三列和任意行数的数据集

我希望第1列有一个皮尔逊相关性。20与第2列,第1列与之相关。24与第3列,第2列与第3列相关。3与第3列相关


如何生成此结果?

您可以使用mvnrnd生成多变量guassian,并指定协方差以实现所需的pearson相关性

请参阅以下文档:

我知道在r=mvnrnd(MU、SIGMA、cases)中,我应该将cases设置为100。然而,我不知道如何设置μ和SIGMA;mu=[3];我得到了错误消息“SIGMA必须是对称半正定矩阵。”试试这个--
SIGMA=[1.2.24;.21.3;.24.31];mu=[0,0,0];X=mvnrnd(μ,西格玛,1000);corr(X)
。这就是你想要的吗?虽然皮尔逊相关系数为.21、.24和34,但效果很好。这不是很重要,但你知道为什么会发生吗?西格玛是方差-协方差矩阵。请看下面的解释