在R中模拟两个相关的序数变量

时间:2016-01-17 15:45:03

标签: r fixed simulate ordinal correlated

我想在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 

不在这里工作。

非常感谢你的帮助!

1 个答案:

答案 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)