2013-04-18 4 views
4

지정된 파이 계수를 가진 2 진수 데이터의 2 벡터를 원한다면 어떻게 R을 사용하여 시뮬레이션 할 수 있습니까?상관 관계가있는 이진 데이터를 R?

예를 들어, 내가 어떻게 두 x 같은 벡터와 0.79

> x = c(1, 1, 0, 0, 1, 0, 1, 1, 1) 
> y = c(1, 1, 0, 0, 0, 0, 1, 1, 1) 
> cor(x,y) 
[1] 0.7905694 
+1

중복 : (. 패키지 저자가 취한 접근 방식의 기초 이론을 낳는 Here's a link to a working paper (warning, pdf))

귀하의 경우, x와 y의 독립적 확률이 모두 0.5은 가정? http://stackoverflow.com/a/10540234/2105757 – ndoogan

+0

@ndoogan - 글쎄, 이진 데이터가 아닌 이항 데이터를 요구하고 있습니다. 그래서 약간 다릅니다. –

+0

@ JoshO'Brien 예를 들어, 단일 동전 플립의 이항 모델과 무작위 이진 모델의 차이점은 무엇입니까? – ndoogan

답변

9

패키지이 더 복잡한 이진 데이터를 생성하는 좋은이다 bindata의 효율적인 코르와 지정된 벡터 길이의 y를 만들 수 있습니다 상관 구조.

library(bindata) 

## Construct a binary correlation matrix 
rho <- 0.7905694 
m <- matrix(c(1,rho,rho,1), ncol=2) 

## Simulate 10000 x-y pairs, and check that they have the specified 
## correlation structure 
x <- rmvbin(1e5, margprob = c(0.5, 0.5), bincorr = m) 
cor(x) 
#   [,1]  [,2] 
# [1,] 1.0000000 0.7889613 
# [2,] 0.7889613 1.0000000 
+0

좋은 대답 인 것 같습니다. 그러나 여전히 여러 변수 이항 모델 (시도 = 1 포함)이 다른 이유는 아직 알 수 없습니다. 나는 베르누이 모델에 대해서만 말 했어야했다. 그러나 그것은 재판 = 1을 가진 문자 그대로 이항입니다. – ndoogan

+0

@ndoogan. 그것은 다르지 않습니다. 그렇지만 링크 된 질문의 대답이 실제로 지정된 상관 관계가있는 이항 데이터를 생성하지 않는다는 것을 알았습니까? 바이너리 데이터의 특수한 경우 (또는 시도가 1 인 이항 데이터 = 원하는 경우)를 강조하고 싶습니다. ** ** 기존의 유용한 도구입니다. –

+0

@ JoshO'Brien : 시뮬레이트 된 상관 관계 계수의 무시할 수없는 편차와 많은 실행에서 지정된 것으로 나타났습니다. 이것이 우리가 시뮬레이션에서 할 수있는 최선의 방법인가요? – RNA

관련 문제