在这篇文章中, Simulating multiple regression data with fixed R2: How to incorporate correlated variables? 当所有预测变量彼此之间具有相同的相关性时,Lion Behrens共享了一个答案来解决这种情况。
他们的代码可以基于4个标准化变量创建一个Y变量(均值等于intercept,某些SD与1不同)
如果sample1$Vs
之间的相关性不相等怎么办?我们应该如何修改以下代码,以考虑到每对变量可以具有不同的相关性?
var.epsilon <- (beta[1]^2 + beta[2]^2 + beta[3]^2 + beta[4]^2 + cor(sample1$V1, sample1$V2)) * ((1 - r2)/r2)
我尝试使用平均相关性,但结果并不完全符合规范
要添加的代码行
avgcor <- function(x){ mean(abs(x[lower.tri(x)])) }
avcorrel <- avgcor(cor(sample1[, 1:4]))
要修改的行
var.epsilon <- (beta[1]^2 + beta[2]^2 + beta[3]^2 + beta[4]^2 + avcorrel) * ((1 - r2)/r2)