В этом посте Моделирование данных множественной регрессии с фиксированным R2: Как включить коррелированные переменные? Лев Беренс поделился ответом, чтобы решить случай, когда все предикторы имеют одинаковую корреляцию друг с другом.
Их код может создать переменную Y (со средним значением, равным перехвату, и некоторым SD, отличным от 1, на основе 4 стандартизированных переменных)
А что, если корреляции между 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)