Моделировать две коррелированные порядковые переменные в 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)
Другие вопросы по тегам