Tạo ba biến ngẫu nhiên phân bố đồng đều tương quan


15

Giả sử chúng ta có

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

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

trong đó là mẫu ngẫu nhiên đồng nhất có kích thước n vàunif(n,0,1)

Y=X1,

Z=0.4X1+10.4X2.

Khi đó tương quan giữa và là .Z 0,4YZ0.4

Làm cách nào tôi có thể mở rộng biến này thành ba biến: , , ?X 2 X 3X1X2X3


Tôi đã chỉnh sửa câu hỏi của bạn để dễ đọc hơn. Xin vui lòng, kiểm tra mọi thứ là OK. Về câu hỏi của bạn, theo nghĩa nào bạn sẽ mở rộng thủ tục của bạn? Tương quan được định nghĩa cho hai biến ngẫu nhiên, vì vậy tôi không rõ ý của bạn là gì.
ocram

3
Z không đồng nhất, vì vậy nếu bạn đang cố gắng khái quát hóa kết quả đó thì có vẻ như bạn đang cố gắng tạo ra ba RV thống nhất tương quan. Bạn có tự hỏi về cách tính tương quan giữa và không? X1aX1+bX2+cX3
MånsT

Giả sử chúng ta , , và , . Vậy thì và gì? X1X2X3  unif(n,0,1)Y=f(X2,X3)Z=f(X1,X2,X3)YZ
dùng9292

6
{Distributions of correlated uniforms}{Copulas}
hồng y

4
Tại sao n tham gia vào cuộc thảo luận? Nếu X1 và X2 là các biến ngẫu nhiên đơn biến, chúng không đơn giản thống nhất trên [0,1]?
Michael R. Chernick

Câu trả lời:


12

Câu hỏi có một số lỗi như đã lưu ý trong các nhận xét - như được xác định trong câu hỏi, Z không đồng nhất và cũng không có mối tương quan được chỉ định.

Đức hồng y đề cập đến các công thức, và đó là cách tổng quát nhất để nói về nó. Tuy nhiên, có một số cách khá dễ dàng để có được đồng phục tương quan (có thể được xem như là các phím tắt đơn thuần cho các loại công thức khác nhau).

Vì vậy, hãy bắt đầu với một số cách để có được một cặp đồng phục tương quan.

1) Nếu bạn thêm hai đồng phục, kết quả là hình tam giác, không đồng nhất. Nhưng bạn có thể sử dụng cdf của biến kết quả làm biến đổi để đưa kết quả trở lại đồng phục. Tất nhiên, kết quả không tương quan tuyến tính nữa.

Đây là hàm R để biến đổi một tam giác đối xứng trên (0,2) thành đồng phục tiêu chuẩn

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

Hãy kiểm tra xem nó có đồng phục không

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

nhập mô tả hình ảnh ở đây

Và nó tương quan với u1 và 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

nhưng không tuyến tính, do sự biến đổi đơn điệu thành đồng nhất

nhập mô tả hình ảnh ở đây

Với công cụ này, chúng tôi có thể tạo ra một số biến bổ sung để có được ba đồng phục tương đương:

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

Mối quan hệ giữa các biến v đều giống như thế này:

nhập mô tả hình ảnh ở đây

-

Một cách khác là tạo ra bằng cách lấy hỗn hợp . Thay vì tổng hợp đồng phục, hãy mang chúng với xác suất cố định.

ví dụ

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

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

nhập mô tả hình ảnh ở đây

Mà một lần nữa có thể được sử dụng để tạo ra nhiều đồng phục tương quan.

-

Cách tiếp cận đơn giản thứ ba là tạo ra các quy tắc tương quan và biến đổi thành tính đồng nhất.

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

Vì vậy, bây giờ chúng tôi chuyển đổi sang đồng phục:

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

nhập mô tả hình ảnh ở đây

Một điều thú vị về phương pháp 2 và 3 là bạn có nhiều sự lựa chọn về cách mọi thứ có thể tương quan (và chúng không phải được đánh giá tương tự như các ví dụ ở đây).

Tất nhiên có rất nhiều cách tiếp cận khác, nhưng tất cả đều nhanh chóng và dễ dàng.

Phần khó khăn là nhận được chính xác mối tương quan dân số mong muốn; nó không hoàn toàn đơn giản như khi bạn chỉ muốn các Gaussian tương quan. Câu trả lời của Quantibex tại Tạo các cặp số ngẫu nhiên được phân bổ và tương quan thống nhất đưa ra một cách tiếp cận sửa đổi phương pháp thứ ba của tôi ở đây để đưa ra mối tương quan dân số mong muốn.


Glen_b. Cảm ơn bạn, câu trả lời rất đẹp và thú vị!
dùng9292

Tôi không hiểu 0,6 và 0,8 trong cách tiếp cận thứ ba của bạn đến từ đâu.
manuel

ρρNi+1ρ2NjNiNjρNi1ρ2NjXYZ

2

X1,X2ZX1 0.40.4YY=0.4X1+1(0.4)2X2

ρcos23cos0

Điều này sẽ bắt đầu cho bạn trên con đường phân tách một chuỗi thành các thành phần của nó giống như cách bạn phân tách một vectơ thành các thành phần trực giao của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.