Hasilkan tiga variabel acak terdistribusi seragam berkorelasi

15

Misalkan kita punya

X 2unif ( n , 0 , 1 ) ,

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

di mana adalah sampel acak ukuran seragam, danunif(n,0,1)

Y=X1,

Z=0.4X1+10.4X2.

Maka korelasi antara dan Z adalah 0,4 .YZ0.4

Bagaimana saya bisa memperluas ini ke tiga variabel: , X 2 , X 3 ?X1X2X3

pengguna9292
sumber
Saya telah mengedit pertanyaan Anda untuk membuatnya lebih mudah dibaca. Silakan periksa semuanya baik-baik saja. Mengenai pertanyaan Anda, dalam arti apa Anda akan memperpanjang prosedur Anda? Korelasi didefinisikan untuk dua variabel acak, jadi tidak jelas bagi saya untuk mendapatkan apa yang Anda maksudkan.
ocram
3
tidak seragam, jadi jika Anda mencoba untuk menggeneralisasi hasil itu, sepertinya Anda tidak mencoba untuk menghasilkan tiga RV seragam yang berkorelasi. Apakah Anda bertanya-tanya tentang bagaimana untuk menghitung korelasi antara X 1 dan sebuah X 1 + b X 2 + c X 3 ? ZX1aX1+bX2+cX3
MånsT
Misalkan kita sudah , X 2 , X 3 u n i f ( n , 0 , 1 ) , dan Y = f ( X 2 , X 3 ) , Z = f ( X 1 , X 2 , X 3 ) . Lalu apa itu Y dan Z ? X1X2X3  unif(n,0,1)Y=f(X2,X3)Z=f(X1,X2,X3)YZ
user9292
6
{Distribusi seragam berkorelasi}{Copulas}
kardinal
4
Mengapa n masuk ke dalam diskusi? Jika X1 dan X2 adalah variabel acak univariat bukankah mereka hanya seragam pada [0,1]?
Michael R. Chernick

Jawaban:

12

Pertanyaan tersebut berisi beberapa kesalahan seperti yang tercantum dalam komentar - seperti yang didefinisikan dalam pertanyaan, Z tidak seragam dan tidak memiliki korelasi yang ditentukan.

kardinal menyebutkan kopula, dan itulah cara paling umum untuk melakukannya. Namun, ada beberapa cara yang cukup mudah untuk mendapatkan seragam berkorelasi (yang dapat dilihat sebagai jalan pintas ke berbagai jenis kopula).

Jadi mari kita mulai dengan beberapa cara untuk mendapatkan sepasang seragam berkorelasi.

1) Jika Anda menambahkan dua seragam hasilnya adalah segitiga, bukan seragam. Tetapi Anda dapat menggunakan cdf dari variabel yang dihasilkan sebagai transformasi untuk membawa hasilnya kembali ke seragam. Hasilnya tidak berkorelasi linier lagi, tentu saja.

Inilah fungsi R untuk mengubah segitiga simetris pada (0,2) menjadi seragam standar

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

Mari kita periksa apakah itu memberikan seragam

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

enter image description here

Dan itu berkorelasi dengan u1 dan 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

tetapi tidak secara linear, karena transformasi monoton menjadi keseragaman

enter image description here

Dengan ini sebagai alat, kita dapat menghasilkan beberapa variabel tambahan untuk mendapatkan tiga seragam yang sama:

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

Hubungan antara variabel-v semua terlihat seperti ini:

enter image description here

-

Alternatif kedua adalah menghasilkan dengan mengambil campuran . Alih-alih menjumlahkan seragam, bawa dengan probabilitas tetap.

misalnya

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

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

enter image description here

Yang sekali lagi dapat digunakan untuk menghasilkan banyak seragam berkorelasi.

-

Pendekatan sederhana ketiga adalah menghasilkan normals berkorelasi dan mentransformasikannya menjadi keseragaman.

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

Jadi sekarang kita beralih ke seragam:

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

enter image description here

Satu hal yang menyenangkan tentang metode 2 dan 3 adalah Anda mendapatkan banyak variasi dalam pilihan Anda tentang bagaimana hal-hal yang berkorelasi mungkin (dan mereka tidak harus sama seperti contoh di sini).

Tentu saja ada banyak pendekatan lain, tetapi semua ini cepat dan mudah.

Bagian yang sulit adalah mendapatkan korelasi populasi yang diinginkan; itu tidak sesederhana ketika Anda hanya ingin berkausausa berkorelasi. Jawaban Quantibex di Hasilkan pasangan angka acak yang terdistribusi dan dikorelasikan secara seragam memberikan pendekatan yang memodifikasi metode ketiga saya di sini yang seharusnya memberikan tentang korelasi populasi yang diinginkan.

Glen_b -Reinstate Monica
sumber
Glen_b. Terima kasih, jawaban yang sangat indah dan menarik!
user9292
Saya tidak mengerti dari mana 0,6 dan 0,8 dalam pendekatan ketiga Anda berasal.
manuel
Dari pilihan tertentu ρ di ρNsaya+1-ρ2Nj, (jika Nsaya dan Nj memiliki unit variance) akan memberikan hasil yang memiliki korelasi ρ dengan Nsaya dan 1-ρ2 dengan Nj. Karena korelasi tersebut,X, Y dan Zkemudian normal berkorelasi sama. (Ini bukan cara yang paling efisien untuk melakukan itu, tetapi itu adalah cara.)
Glen_b -Reinstate Monica
2

Pertama, apakah Anda menganggap itu X1,X2independen? Jika ya, maka koefisien korelasi antaraZ dan X1adalah tidak 0,4. Itu akan0,4 jika Y didefinisikan sebagai Y=0,4X1+1-(0,4)2X2.

Pandangan sederhana pada definisi rumus koefisien korelasi dan hukum cosinus harus meyakinkan Anda akan hal itu ρ adalah cos antara 2seri jika seri diperlakukan sebagai vektor dengan setiap titik data diperlakukan sebagai dimensi vektor. Jika Anda memiliki3 seri independen pasangan-bijaksana, itu tiga vektor yang semuanya ortogonal satu sama lain (karena cosDari sudut di antara mereka semua 0ini

Ini akan membuat Anda memulai cara mendekomposisi suatu seri menjadi komponen-komponennya dengan cara yang sama seperti Anda menguraikan vektor menjadi komponen-komponen ortogonalnya.

Dmitry Rubanovich
sumber