如何重新排列2D数据以获得给定的相关性?
我有以下带有两个连续变量的简单数据集;即: d = data.frame(x=runif(100,0,100),y = runif(100,0,100)) plot(d$x,d$y) abline(lm(y~x,d), col="red") cor(d$x,d$y) # = 0.2135273 我需要重新排列数据,以使变量之间的相关性达到〜0.6。我需要使两个变量的均值和其他描述性统计信息(sd,min,max等)保持恒定。 我知道可以与给定数据进行几乎任何关联,即: d2 = with(d,data.frame(x=sort(x),y=sort(y))) plot(d2$x,d2$y) abline(lm(y~x,d2), col="red") cor(d2$x,d2$y) # i.e. 0.9965585 如果我尝试将sample函数用于此任务: cor.results = c() for(i in 1:1000){ set.seed(i) d3 = with(d,data.frame(x=sample(x),y=sample(y))) cor.results = c(cor.results,cor(d3$x,d3$y)) } 我得到了很多相关性: > summary(cor.results) Min. 1st Qu. Median Mean 3rd Qu. …