Saya membaca pertanyaan ini , dan berpikir untuk mensimulasikan jumlah yang diperlukan. Masalahnya adalah sebagai berikut: Jika dan apakah standar normal, apa ? Jadi saya ingin mensimulasikan. (untuk nilai yang dipilih dari)
Saya mencoba kode berikut untuk mencapai ini:
n <- 1000000
x <- 1 # the sum of A and B
A <- rnorm(n)
B <- rnorm(n)
sum_AB = A+B
estimate <- 1/sum(sum_AB==x) * sum( (A[sum_AB==x])^2 )
Masalahnya adalah bahwa hampir selalu tidak ada nilai sum_AB
yang cocok x
(di seluruh simulasi). Jika saya memilih beberapa elemen sum_AB
, maka biasanya satu-satunya contoh nilainya dalam vektor.
Secara umum, bagaimana seseorang dapat mengatasi masalah ini dan melakukan simulasi yang akurat untuk menemukan harapan dari formulir yang diberikan? ( dan mungkin belum tentu terdistribusi normal, atau dari distribusi yang sama.)
r
simulation
monte-carlo
conditional-expectation
Comp_Warrior
sumber
sumber
Jawaban:
Komentar saya di utas yang dirujuk menyarankan satu pendekatan yang efisien: karenaX=A+B dan Y=A−B Secara bersama-sama Normal dengan nol kovarian, independen, dari mana simulasi hanya perlu dihasilkan Y (yang artinya 0 dan varians 2 ) dan membangun A=(X+Y)/2 . Dalam contoh ini distribusiA2|(A+B=3) diperiksa dengan menggunakan histogram 105 nilai simulasi.
Harapan tersebut dapat diperkirakan sebagai
Jawabannya harus dekat11/4=2.75 .
sumber
Cara umum untuk mengatasi masalah ini adalah dengan mempertimbangkan perubahan variabel dari(A,B) untuk (A,A+B=S) . Jacobian dari transformasi ini sama dengan satu (1), kepadatan(A,S) adalah
sumber
Anda bisa mengatasi masalah ini menggunakan sampel bootstrap. Sebagai contoh,
Menjalankan kode ini misalnya, saya mendapatkan yang berikut ini
Jadi ketikaA+B=0.9890429 kemudian E(A2|A+B=0.9890429)=0.7336328 .
Sekarang untuk memvalidasi bahwa ini seharusnya jawabannya, mari kita jalankan kode whuber dalam solusinya. Jadi menjalankan kodenya dengan
x<-0.9890429
hasil sebagai berikut:Dan kedua solusi itu sangat dekat dan bertepatan satu sama lain. Namun, pendekatan saya terhadap masalah seharusnya memungkinkan Anda untuk memasukkan distribusi yang Anda inginkan daripada mengandalkan fakta bahwa data tersebut berasal dari distribusi Normal.
Solusi brute force kedua yang bergantung pada kenyataan bahwa ketika kepadatan relatif besar Anda dapat dengan mudah melakukan perhitungan brute-force adalah sebagai berikut
Menjalankan kode ini, kami memperoleh yang berikut ini
Dengan demikian menjalankan kode untukA+B=3 hasil dalam E(A2|A+B=3)=2.757067 yang setuju dengan solusi yang sebenarnya.
sumber
menurut saya pertanyaannya adalah:
mari kita mulai dengan meninjau sampel penting :
di mana harapan pertama adalah sehubungan dengan variabel acakZ1 dengan kepadatan f1(z) dan yang kedua adalah wrt Z2 dengan kepadatan f2(z) .
Jadi jika Anda dapat mensimulasikan secara acakzi dari f1 lalu perkirakan menggunakan 1n∑iV(zi) atau sebagai alternatif mensimulasikan zi dari f2 lalu gunakan 1n∑iV(zi)f1(zi)f2(zi)
Sekarang mari kita kembali ke kasus kitaU(x,y)=x2 dan (X,Y) didistribusikan sebagai kondisi (X, Y) pada X + Y = k, yaitu f(x,y)∫x+y=kf(x,y) dan biarkan A=∫x+y=kf(x,y)
jadi sekarang prosedurnya adalah:
sumber