Mensimulasikan proses Gaussian (Ornstein Uhlenbeck) dengan fungsi kovarians yang membusuk secara eksponensial

8

Saya mencoba untuk menghasilkan banyak undian (yaitu, realisasi) dari proses Gaussian ei(t), 1tT dengan rata-rata 0 dan fungsi kovarian γ(s,t)=exp(|ts|).

Apakah ada cara yang efisien untuk melakukan ini yang tidak akan melibatkan perhitungan akar kuadrat dari a T×Tmatriks kovarians? Atau adakah yang bisa merekomendasikan Rpaket untuk melakukan ini?

pengguna603
sumber
2
Ini adalah proses stasioner (terlihat dekat dengan versi sederhana dari proses OU). Apakah sampelnya seragam?
kardinal
Paket R mvtnormmemiliki di rmvnorm(n, mean, sigma)mana sigmamatriks kovarians; Anda harus membuat matriks kovarians untuk sampel / yang Anda pilihtitu sendiri, meskipun.
Jbowman
2
@ jb Agaknya Tsangat besar, jika OP tidak akan meminta untuk menghindari dekomposisi matriks (yang tersirat dalam rmvnorm).
whuber
1
@ cardinal Saya setuju, ini adalah proses Gaussian Ornstein-Uhlenbeck. (Alangkah baiknya jika kata kunci "Ornstein Uhlenbeck" dapat diedit menjadi pertanyaan dan / atau judul. Akan mendapatkan pertanyaan ini semakin banyak lalu lintas yang layak)
redmoskito

Jawaban:

11

Iya. Ada algoritma (waktu linear) yang sangat efisien, dan intuisi untuknya datang langsung dari kasing yang seragam.

Misalkan kita memiliki partisi [0,T] seperti yang 0=t0<t1<t2<<tn=T.

Kasing sampel yang seragam

Dalam hal ini yang kita miliki ti=iΔ dimana Δ=T/n. MembiarkanXi:=X(ti) menunjukkan nilai dari proses sampel yang diambil pada saat itu ti.

Sangat mudah untuk melihat bahwa Xi membentuk proses AR (1) dengan korelasi ρ=exp(Δ). Karenanya, kita dapat menghasilkan jalur sampel{Xt} untuk partisi sebagai berikut

Xi+1=ρXi+1ρ2Zi+1,
dimana Zi apakah iid N(0,1) dan X0=Z0.

Kasus umum

Kita kemudian dapat membayangkan bahwa ini dapat dilakukan untuk partisi umum . Secara khusus, mariΔi=ti+1ti dan ρi=exp(Δi). Kami memilikinya

γ(ti,ti+1)=ρi,
dan jadi kita mungkin menebaknya
Xi+1=ρiXi+1ρi2Zi+1.

Memang, EXi+1Xi=ρi dan setidaknya kita memiliki korelasi dengan istilah tetangga yang benar.

Hasilnya sekarang mengikuti dengan telescoping melalui properti menara harapan bersyarat. Yaitu, dan teleskop produk di dengan cara berikut

EXiXi=E(E(XiXiXi1))=ρi1EXi1Xi==k=1ρik,
k=1ρik=exp(k=1Δik)=exp(titi)=γ(ti,ti).

Ini membuktikan hasilnya. Oleh karena itu proses dapat dihasilkan pada partisi arbitrer dari urutan variabel acak iid dalam waktu di mana adalah ukuran partisi.N(0,1)O(n)n

NB : Ini adalah teknik pengambilan sampel yang tepat karena memberikan versi sampel dari proses yang diinginkan dengan distribusi dimensi-terbatas yang benar - benar tepat . Ini berbeda dengan skema diskritisasi Euler (dan lainnya) untuk SDE yang lebih umum, yang menimbulkan bias karena perkiraan melalui diskretisasi.

kardinal
sumber
Hanya beberapa komentar lagi. (1) Untuk mendapatkan gambaran yang baik tentang seperti apa proses waktu kontinu, dan harus dipilih sehingga kecil, katakan kurang dari . (2) Matriks kovarians terbalik ( presisi ) untuk vektor deret waktu adalah tri-diagonal, seperti halnya akar Cholesky-nya. nTΔ0.1
Yves
@Yves: Terima kasih atas komentar Anda. Agar lebih jelas, prosedur yang telah saya uraikan memberikan realisasi yang tepat dari proses waktu kontinu yang disampel pada partisi terkait; khususnya, tidak ada kesalahan diskritisasi seperti ada dalam pendekatan skema-Euler yang khas untuk SDE yang lebih umum. Pembalikan Cholesky, seperti yang ditunjukkan oleh konstruksi dalam jawaban memiliki istilah bukan nol hanya pada diagonal dan lebih rendah di-diagonal, sehingga sedikit lebih sederhana daripada tridiagonal.
kardinal
Jawaban bagus! Apakah ini digeneralisasi ke proses OU umum dengan skala arbitrer, ? Sepertinya itu mungkin. γ(ti,tj)=exp(α|titj|)
redmoskito
1

Hitung matriks kovarians terurai dengan dekomposisi Cholesky tidak lengkap atau teknik dekomposisi matriks lainnya. Matriks yang diuraikan harus TxM, di mana M hanya sebagian kecil dari T.

http://en.wikipedia.org/wiki/Incomplete_Cholesky_factorization

Steven
sumber
2
Bisakah Anda memberikan bentuk eksplisit dari dekomposisi Cholesky di sini? Saya pikir jawaban kardinal mencapai hal itu, jika Anda memikirkannya, dengan menyatakan sebagai fungsi sejarah. Xi
Tugas
1
Algoritma ini agak terlalu panjang untuk diringkas. Anda dapat menemukan deskripsi yang sangat baik di sini: Kernel ICA , halaman 20. Perhatikan bahwa algoritma ini tidak lengkap , artinya tidak menghitung keseluruhan dekomposisi tetapi lebih merupakan perkiraan (karenanya jauh lebih cepat). Saya telah menerbitkan kode untuk algoritma ini di kotak alat KMBOX, Anda dapat mengunduhnya di sini: km_kernel_icd .
Steven