Saya ingin menghasilkan pasangan angka acak dengan korelasi tertentu. Namun, pendekatan yang biasa menggunakan kombinasi linear dari dua variabel normal tidak valid di sini, karena kombinasi linear dari variabel seragam tidak lagi menjadi variabel yang terdistribusi secara seragam. Saya perlu dua variabel untuk menjadi seragam.
Adakah ide tentang bagaimana menghasilkan pasangan variabel seragam dengan korelasi yang diberikan?
correlation
random-generation
uniform
Onturenio
sumber
sumber
Jawaban:
Saya tidak mengetahui metode universal untuk menghasilkan variabel acak berkorelasi dengan distribusi marginal yang diberikan. Jadi, saya akan mengusulkan metode ad hoc untuk menghasilkan pasangan variabel acak berdistribusi seragam dengan korelasi (Pearson) yang diberikan. Tanpa kehilangan keumuman, saya berasumsi bahwa distribusi marginal yang diinginkan adalah seragam standar (yaitu, dukungannya adalah ).[0,1]
Pendekatan yang diusulkan mengandalkan berikut:U1 U2 F1 F2 Fi(Ui)=Ui i=1,2
Jadi, koefisien korelasi Spearman dan Pearson sama (versi sampel mungkin berbeda).
a) Untuk variabel acak seragam standar dan U 2 dengan fungsi distribusi masing-masing F 1 dan F 2 , kita memiliki F i ( U i ) = U i , untuk i = 1 , 2 . Jadi, menurut definisi Spearman rho adalah ρ S ( U 1 , U 2 ) = c o r r ( F
b) Jika adalah variabel acak dengan margin kontinu dan Gaussian copula dengan koefisien korelasi (Pearson) ρ , maka Spearman rho adalah ρ S ( X 1 , X 2 ) = 6X1,X2 ρ
Ini membuatnya mudah untuk menghasilkan variabel acak yang memiliki nilai Spearman rho yang diinginkan.
Pendekatannya adalah untuk menghasilkan data dari Gaussian copula dengan koefisien korelasi yang sesuai sehingga Spearman rho sesuai dengan korelasi yang diinginkan untuk variabel acak seragam.ρ
Algoritma simulasir n
Misalkan menunjukkan tingkat korelasi yang diinginkan, dan n jumlah pasangan yang akan dihasilkan. Algoritme adalah:
Contohr=0.6 pasangan.n=500
Kode berikut adalah contoh implementasi algoritma ini menggunakan R dengan korelasi target dan
Pada gambar di bawah, plot diagonal menunjukkan histogram variabel dan U 2 , dan plot off-diagonal menunjukkan plot hamburan U 1U1 U2 U1 dan .
U2
Dengan konstuksi, variabel acak memiliki margin yang seragam dan koefisien korelasi (mendekati)r . Tetapi karena efek pengambilan sampel, koefisien korelasi dari data yang disimulasikan tidak persis sama dengan .r
Perhatikan bahwa
gen.gauss.cop
fungsi harus bekerja dengan lebih dari dua variabel hanya dengan menentukan matriks korelasi yang lebih besar.Studir=−0.5,0.1,0.6 n
simulasi Studi simulasi berikut diulang untuk korelasi target menunjukkan bahwa distribusi koefisien korelasi menyatu dengan korelasi yang diinginkan ketika ukuran sampel n meningkat.
sumber
gen.gauss.cop
fungsi Anda akan bekerja untuk lebih dari dua variabel dengan tweak (sepele). Jika Anda tidak suka penambahan atau ingin membuatnya berbeda, silakan kembali atau ubah sesuai kebutuhan.From the fact thatV(w1)=1/12 , we get E(w21)=1/3 , so
E(u1u2)=p/12+1/4 , that is:
cov(u1u2)=p/12 .
Since V(u1)=V(u2)=1/12 , we get finally that cor(u1,u2)=p .
sumber
Here is one easy method for positive correlation: Let(u1,u2)=Iw1+(1−I)(w2,w3) , where w1,w2, and w3 are independent U(0,1) and I is Bernoulli(p ). u1 and u2 will then have U(0,1) distributions with correlation p . This extends immediately to k -tuples of uniforms with compound symmetric variance matrix.
If you want pairs with negative correlation, use(u1,u2)=I(w1,1−w1)+(1−I)(w2,w3) , and the correlation will be −p .
sumber