Misalkan saya memiliki dua distribusi marginal univariat, katakanlah dan G , yang dapat saya simulasikan. Sekarang, buat distribusi bersama mereka menggunakan Gaussian copula , dilambangkan C ( F , G ; Σ ) . Semua parameter diketahui.
Apakah ada metode non-MCMC untuk mensimulasikan dari copula ini?
Jawaban:
Ada metode yang sangat sederhana untuk mensimulasikan dari kopula Gaussian yang didasarkan pada definisi distribusi normal multivariat dan kopula Gauss.
Saya akan mulai dengan memberikan definisi dan properti yang diperlukan dari distribusi normal multivariat, diikuti oleh kopula Gaussian, dan kemudian saya akan menyediakan algoritma untuk mensimulasikan dari kopula Gauss.
Distribusi normal multivariatX=(X1,…,Xd)′
Vektor acak memiliki distribusi normal multivariat jika X d = μ + A Z , di mana Z adalah vektor k- dimensi dari variabel standar normal normal independen, μ adalah d- dimensi vektor konstanta, dan A adalah matriks konstanta d × k . Notasi d =
Gauss kerja penghubung
The Gauss kerja penghubung didefinisikan secara implisit dari distribusi normal multivariat, yaitu kata kerja penghubung Gauss adalah kata kerja penghubung terkait dengan distribusi normal multivariat. Secara khusus, dari teorema Sklar, Gauss copula adalah mana Φ
Algoritma simulasiP Σ A Σ .
Dalam pandangan di atas, pendekatan alami untuk mensimulasikan dari Gauss copula adalah untuk mensimulasikan dari distribusi normal standar multivariat dengan matriks korelasi sesuai , dan untuk mengkonversi setiap margin menggunakan probabilitas integral dengan fungsi distribusi normal standar. Sementara simulasi dari distribusi normal multivariat dengan matriks kovarians Σ pada dasarnya turun untuk melakukan penjumlahan dari variabel acak normal standar independen, di mana "bobot" matriks A dapat diperoleh dengan dekomposisi Cholesky dari matriks kovarians Σ
Oleh karena itu, algoritma untuk mensimulasikan sampel dari Gauss copula dengan matriks korelasi P adalah:n P
Kode berikut dalam contoh implementasi algoritma ini menggunakan R:
Bagan berikut menunjukkan data yang dihasilkan dari kode R di atas.
sumber