3 개의 상관 분포 분포 랜덤 변수 생성


15

우리가 가지고 있다고 가정

X 2 ~ unif ( n , 0 , 1 ) ,

X1unif(n,0,1),
X2unif(n,0,1),

여기서 은 크기 n의 균일 한 랜덤 샘플입니다.unif(n,0,1)

Y=X1,

Z=0.4X1+10.4X2.

그런 다음 Z 의 상관 관계 는 0.4 입니다.YZ0.4

이 변수를 , X 2 , X 3의 세 변수로 어떻게 확장 할 수 있습니까?X1X2X3


쉽게 읽을 수 있도록 질문을 편집했습니다. 모든 것이 정상인지 확인하십시오. 질문과 관련하여 어떤 의미에서 절차를 확장 하시겠습니까? 상관 관계는 두 개의 임의 변수에 대해 정의되므로 의미를 알 수 없습니다.
ocram

3
는 균일하지 않으므로 결과를 일반화하려고하면 상관 된 3 개의 균일 한 RV를 생성하려는 것처럼 보이지 않습니다. 당신은 사이의 상관 관계를 계산하는 방법에 대해 궁금 X 1 X 1 + B X 2 + C X 3 ? 엑스1엑스1+엑스2+엑스
MånsT

, X 2 , X 3 u n i f ( n , 0 , 1 )Y = f ( X 2 , X 3 ) , Z = f ( X 1 , X 2 , X 3 ) 가 있다고 가정 합니다. 그렇다면 YZ는 무엇입니까? 엑스1엑스2엑스  나는에프(,0,1)와이=에프(엑스2,엑스)=에프(엑스1,엑스2,엑스)와이
user9292

6
{상관 된 유니폼 분포}{코풀 라스}
추기경

4
왜 토론에 참여하지 않습니까? X1과 X2가 일 변량 랜덤 변수 인 경우 [0,1]에서 단순히 균일하지 않습니까?
Michael R. Chernick

답변:


12

질문에는 주석에 명시된 바와 같이 몇 가지 오류가 포함되어 있습니다. 질문에 정의 된대로 Z는 균일하지 않으며 지정된 상관 관계가 없습니다.

추기경은 copulas를 언급하고 있으며, 이것이 가장 일반적인 방법입니다. 그러나 상관 된 유니폼을 얻는 매우 쉬운 방법이 몇 가지 있습니다 (이는 여러 종류의 copulas에 대한 바로 가기로 볼 수 있음).

그래서이 얻을 수있는 몇 가지 방법으로 시작하자 쌍의 상관 관계 유니폼을.

1) 유니폼을 두 개 추가하면 결과는 균일하지 않고 삼각형입니다. 그러나 결과 변수의 cdf를 변환으로 사용하여 결과를 균일하게 되돌릴 수 있습니다. 물론 결과는 더 이상 선형 적으로 상관되지 않습니다.

다음은 (0,2)에서 대칭 삼각을 표준 유니폼으로 변환하는 R 함수입니다.

t2u = function(x) ifelse(x<1, x^2, 2-(2-x)^2)/2

그것이 유니폼을 제공하는지 확인합시다

u1 = runif(30000)
u2 = runif(30000)
v1 = t2u(u1+u2)

여기에 이미지 설명을 입력하십시오

그리고 그것은 u1 및 u2와 관련이 있습니다.

> cor(cbind(u1,u2,v1))
            u1          u2        v1
u1 1.000000000 0.006311667 0.7035149
u2 0.006311667 1.000000000 0.7008528
v1 0.703514895 0.700852805 1.0000000

단조로의 균일 성 변환으로 인해 선형이 아닌

여기에 이미지 설명을 입력하십시오

이를 도구로 사용하여 3 가지 등상 관 유니폼을 얻기 위해 몇 가지 추가 변수를 생성 할 수 있습니다.

u3 = runif(30000)
v2 = t2u(u1+u3)
v3 = t2u(u2+u3)

cor(cbind(v1,v2,v3))
          v1        v2        v3
v1 1.0000000 0.4967572 0.4896972
v2 0.4967572 1.0000000 0.4934746
v3 0.4896972 0.4934746 1.0000000

v- 변수 간의 관계는 모두 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

-

두 번째 대안은 혼합물 을 섭취하여 생성하는 입니다. 유니폼을 합산하는 대신 고정 된 확률로 유니폼을 가져 가십시오.

예 :

z = ifelse(rbinom(30000,1,.7),u1,u2)

cor(cbind(u1,z))
          u1         z
u1 1.0000000 0.7081533
z  0.7081533 1.0000000

여기에 이미지 설명을 입력하십시오

여러 개의 상관 된 유니폼을 생성하는 데 다시 사용할 수 있습니다.

-

세 번째 간단한 접근법은 상관 법선을 생성하고 균일 성으로 변환하는 것입니다.

n1=rnorm(30000)
n2=rnorm(30000)
n3=rnorm(30000)
x=.6*n1+.8*n2
y=.6*n2+.8*n3
z=.6*n3+.8*n1
cor(cbind(x,y,z))

          x         y         z
x 1.0000000 0.4763703 0.4792897
y 0.4763703 1.0000000 0.4769403
z 0.4792897 0.4769403 1.0000000

이제 우리는 유니폼으로 변환합니다.

w1 = pnorm(x)
w2 = pnorm(y)
w3 = pnorm(z)
cor(cbind(w1,w2,w3))
          w1        w2        w3
w1 1.0000000 0.4606723 0.4623311
w2 0.4606723 1.0000000 0.4620257
w3 0.4623311 0.4620257 1.0000000

여기에 이미지 설명을 입력하십시오

방법 2와 3에 대한 한 가지 좋은 점은 상관 관계가있는 방법을 선택하는 데있어 다양한 다양성을 얻는다는 것입니다.

물론 다른 많은 접근 방식이 있지만 모두 빠르고 쉽습니다.

까다로운 부분은 정확히 원하는 모집단 상관 관계를 얻는 것입니다. 상관 된 가우스를 원할 때만 큼 간단하지 않습니다. Quantibex의 대답은 균일하게 분포되고 상관 된 난수 쌍 생성 에서 원하는 모집단 상관 관계를 제공해야하는 세 번째 방법을 수정하는 접근법을 제공합니다.


글렌 _b. 매우 아름답고 흥미로운 답변 감사합니다!
user9292

세 번째 접근법의 0.6과 0.8이 어디에서 왔는지 이해할 수 없습니다.
마누엘

ρρ나는+1ρ2제이나는제이ρ나는1ρ2제이엑스와이

2

먼저 엑스1,엑스2엑스1 0.40.4와이와이=0.4엑스1+1(0.4)2엑스2

ρ코사인2코사인0

이렇게하면 벡터를 직교 구성 요소로 분해하는 것과 같은 방식으로 계열을 구성 요소로 분해하는 방법을 시작할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.