Моделировать две коррелированные порядковые переменные в R
Я хотел бы смоделировать две коррелированные порядковые переменные в R. Обе переменные состоят из трех разных уровней (1/1,1/0,0/0), каждый из которых выбирается с фиксированной частотой 1 и 0 (скажем, 1 = 0,20; 0 = 0,80). Частота трех уровней (1 / 1,1 / 0,0 / 0) для каждой переменной является переменной и зависит от корреляции между Var1 и Var2.
n=1000
rho=.70
Var1=sample(c(1/1,1/0,0/0),n,replace=T,prob=c(a,b,c))
Var2=?
cor(Var1,Var2)=rho
Как исправить пул 1 и 0, из которого выбираются уровни каждой переменной? Как мне смоделировать переменные для корреляции на уровне rho? Что-то простое, такое как
rho*Var1+sqrt(1-rho^2)*Var2
здесь не работает
Большое спасибо за вашу помощь!
1 ответ
Корреляция не имеет смысла для этих переменных, так как они не упорядочены. Insted вы можете использовать 0,1,2 в качестве значений.
В этом стихе это может помочь вам:
n=1000
rho=.70
Var1=sample(c(0,1,2),n,replace=T,prob=c(1/3,1/3,1/3))
index=sample(c(0,1),n,replace=T,prob=c(1-rho,rho))
index<-index==1
Var2=sample(c(0,1,2),n,replace=T,prob=c(1/3,1/3,1/3))
Var2[index]<-Var1[index]
cor(Var1,Var2)