Bagaimana cara menggambar sampel acak dari distribusi perkiraan non-parametrik?


14

Saya memiliki sampel 100 poin yang kontinu dan satu dimensi. Saya memperkirakan kepadatan non-parametriknya menggunakan metode kernel. Bagaimana saya bisa mengambil sampel acak dari distribusi yang diperkirakan ini?

Jawaban:


21

Estimasi kepadatan kernel adalah distribusi campuran; untuk setiap pengamatan, ada sebuah kernel. Jika kernel adalah kepadatan berskala, ini mengarah ke algoritma sederhana untuk pengambilan sampel dari estimasi kepadatan kernel:

repeat nsim times:
  sample (with replacement) a random observation from the data
  sample from the kernel, and add the previously sampled random observation

hxsayaN(μ=xsaya,σ=h)

# Original distribution is exp(rate = 5)
N = 1000
x <- rexp(N, rate = 5)

hist(x, prob = TRUE)
lines(density(x))

# Store the bandwith of the estimated KDE
bw <- density(x)$bw

# Draw from the sample and then from the kernel
means <- sample(x, N, replace = TRUE)
hist(rnorm(N, mean = means, sd = bw), prob = TRUE)

M.

M = 10
hist(rnorm(N * M, mean = x, sd = bw))

Jika karena alasan tertentu Anda tidak dapat mengambil dari kernel Anda (mis. Kernel Anda bukan kepadatan), Anda dapat mencoba dengan sampling penting atau MCMC . Misalnya, menggunakan sampel penting:

# Draw from proposal distribution which is normal(mu, sd = 1)
sam <- rnorm(N, mean(x), 1)

# Weight the sample using ratio of target and proposal densities
w <- sapply(sam, function(input) sum(dnorm(input, mean = x, sd = bw)) / 
                                 dnorm(input, mean(x), 1))

# Resample according to the weights to obtain an un-weighted sample
finalSample <- sample(sam, N, replace = TRUE, prob = w)

hist(finalSample, prob = TRUE)

PS Dengan terima kasih kepada Glen_b yang berkontribusi pada jawabannya.


1
Maaf saya langsung masuk ke sampling penting, dan kemudian saya menyadari bahwa biasanya pengambilan sampel lebih sederhana dari itu. Saya menambahkan penjelasan awal Anda ke jawaban saya. Terima kasih banyak
— Matteo Fasiolo

@ Matteo Fasiolo - Apakah Anda punya referensi ke makalah yang bisa saya kutip untuk metode ini.
— Pallavi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.