我想在R中模拟两个相关的序数变量。两个变量由三个不同的级别(1 / 1,1 / 0,0 / 0)组成,每个级别都是从1和0的固定频率中采样(让我们比如1 = .20; 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
不在这里工作。
非常感谢你的帮助!
答案 0 :(得分:0)
相关对这些变量没有意义,因为它们没有被排序。 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)