我有一个给定分布的变量(在我下面的例子中是normale) .
set.seed(32)
var1 = rnorm(100,mean=0,sd=1)
我想创建一个与var1相关的变量(var2),其线性相关系数(粗略或精确)等于“Corr” . var1和var2之间的回归斜率应该(粗略或精确)等于1 .
Corr = 0.3
How can I achieve this ?
我想做这样的事情:
decorelation = rnorm(100,mean=0,sd=1-Corr)
var2 = var1 + decorelation
但当然在跑步时:
cor(var1,var2)
,结果不接近Corr!
1 回答
我刚才做了类似的事 . 我粘贴了一些用于3个相关变量的代码,但它可以很容易地推广到更复杂的东西 .
首先创建一个F矩阵:
这可以是任意相关矩阵 .
同样,这可以概括 . 您在上面列出的方法不会创建多变量数据集 .