Saya memiliki vektor X
dari N=900
pengamatan yang terbaik dimodelkan oleh estimator bandwidth yang global yang kepadatan Kernel (model parametrik, termasuk model campuran yang dinamis, ternyata tidak menjadi cocok baik):
Sekarang, saya ingin mensimulasikan dari KDE ini. Saya tahu ini bisa dicapai dengan bootstrap.
Dalam R, semuanya bermuara pada baris kode sederhana ini (yang hampir merupakan kode semu): di x.sim = mean(X) + { sample(X, replace = TRUE) - mean(X) + bw * rnorm(N) } / sqrt{ 1 + bw^2 * varkern/var(X) }
mana bootstrap yang dihaluskan dengan koreksi varians diimplementasikan dan varkern
merupakan varian dari fungsi Kernel yang dipilih (misalnya, 1 untuk Gaussian Kernel).
Apa yang kami dapatkan dengan 500 pengulangan adalah sebagai berikut:
Ini bekerja, tetapi saya kesulitan memahami bagaimana pengamatan acak (dengan beberapa suara tambahan) adalah hal yang sama dengan mensimulasikan dari distribusi probabilitas? (distribusinya di sini adalah KDE), seperti dengan Monte Carlo standar. Selain itu, apakah bootstrap satu-satunya cara untuk mensimulasikan dari KDE?
Sunting: silakan lihat jawaban saya di bawah ini untuk informasi lebih lanjut tentang bootstrap yang dihaluskan dengan koreksi varians.
Jawaban:
Berikut ini adalah algoritma untuk mengambil sampel dari campuran acakf( x ) =1N∑Ni = 1fsaya( x ) :
Harus jelas bahwa ini menghasilkan sampel yang tepat.
Perkiraan kepadatan kernel Gaussian adalah campuran1N∑Ni = 1N( x ;xsaya,h2) . Jadi Anda bisa mengambil sampel ukuranN dengan memilih banyak xsaya dan menambahkan noise normal dengan nol mean dan varians h2 untuk itu.
Cuplikan kode Anda memilih sekelompokxsaya s, tapi kemudian melakukan sesuatu yang sedikit berbeda:
Kita dapat melihat bahwa nilai sampel yang diharapkan menurut prosedur ini adalah
Saya pikir distribusi sampel tidak sama.
sumber
Untuk menghilangkan kebingungan tentang apakah mungkin untuk menarik nilai dari KDE menggunakan pendekatan bootstrap, itu mungkin . Bootstrap tidak terbatas pada estimasi interval variabilitas.
Di bawah ini adalah bootstrap yang diperhalus dengan algoritma koreksi varians yang menghasilkan nilai sintetisY′sayas dari KDE K jendela h . Itu berasal dari buku ini oleh Silverman, lihat halaman 25 dari dokumen ini , bagian 6.4.1 "Simulasi dari perkiraan kepadatan". Seperti dicatat dalam buku ini, algoritma ini memungkinkan untuk menemukan realisasi independen dari KDEy^ , tanpa perlu tahu y^ secara eksplisit:
Untuk menghasilkan nilai sintetisY (dari set pelatihan {X1,...Xn} ):
DimanaX¯ dan σX2 adalah mean dan varians sampel, dan σK2 adalah varian dari K (Yaitu, 1 untuk Gaussian K ). Seperti dijelaskan oleh Dougal, nilai yang diharapkan dari realisasi adalahX¯ . Berkat koreksi varians, variansnya adalahσX2 (di sisi lain, bootstrap yang dihaluskan tanpa koreksi varians, di mana langkah 3 sederhana Y=Xi+h.ϵ , kembangkan varians).
Cuplikan kode R dalam pertanyaan saya di atas benar-benar mengikuti algoritme ini.
Keuntungan dari bootstrap yang dihaluskan di atas bootstrap adalah:
sumber