2016-01-17 35 views
1

我想在R中模擬兩個相關的有序變量。兩個變量由三個不同的等級(1/1,1/0,0/0)組成,每個等級從一個固定的頻率1和0(假設1 = .20; 0 = .80)。每個變量的三個頻率(1/1,1/0,0/0)是可變的,取決於Var1和Var2之間的相關性。模擬R中的兩個相關的有序變量

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

[這個答案](http://stats.stackexchange.com/a/15040/59815)應該讓你接近。 *有序變量*是SPSS術語,這是恕我直言,是不精確的,實際上你會有興趣獲得一個有序的因素。 – Konrad

+0

檢查[此軟件包](https://cran.r-project.org/web/packages/SimCorMultRes/SimCorMultRes.pdf) – mtoto

+0

謝謝,@mtoto,我已經嘗試了SimCorMultRes,但仍然沒有想出如何改變根據ρ的多項式響應水平的頻率,同時確定元素的頻率(即1和0)。 – 9987

回答

0

相關性對於這些變量沒有意義,因爲它們沒有排序。絕對可以使用0,1,2作爲值。

在此的cysE,這可以幫助你:

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)