## importance sampling by kernel smoothing [experiment]

**F**ollowing my earlier post on Delyon and Portier’s proposal to replacing the true importance distribution ƒ with a leave-one-out (!) kernel estimate in the importance sampling estimator, I ran a simple one-dimensional experiment to compare the performances of the traditional method with this alternative. The true distribution is a N(0,½) with an importance proposal a N(0,1) distribution, the target is the function h(x)=x⁶ [1-0.9 sin(3x)], n=2643 is the number of simulations, and the density is estimated via the call to the default ** density()** R function. The first three boxes are for the regular importance sampler, and the kernel and the corrected kernel versions of Delyon and Portier, while the second set of three considers the self-normalised alternatives. In all kernel versions, the variability is indeed much lower than with importance sampling, but the bias is persistent, with no clear correction brought by the first order proposal in the paper, while those induce a significant increase in computing time:

> benchmark( + for (t in 1:100){ + x=sort(rnorm(N));fx=dnorm(x) + imp1=dnorm(x,sd=.5)/fx}) replicas elapsed relative user.child sys.child 1 100 7.948 7.94 0.012 > benchmark( + for (t in 1:100){ + x=sort(rnorm(N));hatf=density(x) + hatfx=approx(hatf$x,hatf$y, x)$y + imp2=dnorm(x,sd=.5)/hatfx}) replicas elapsed relative user.child sys.child 1 100 19.272 18.473 0.94 > benchmark( + for (t in 1:100){ + x=sort(rnorm(N));hatf=density(x) + hatfx=approx(hatf$x,hatf$y, x)$y + bw=hatf$bw + for (i in 1:N) Kx[i]=1-sum((dnorm(x[i], + mean=x[-i],sd=bw)-hatfx[i])^2)/NmoNmt/hatfx[i]^2 + imp3=dnorm(x,sd=.5)*Kx/hatfx}) replicas elapsed relative user.child sys.child 1 100 11378.38 7610.037 17.239

which follows from the O(n) cost in deriving the kernel estimate for all observations (and I did not even use the leave-one-out option…) The R computation of the variance is certainly not optimal, far from it, but those enormous values give an indication of the added cost of the step, which does not even seem productive in terms of variance reduction… *[Warning: the comparison is only done over one model and one target integrand, thus does not pretend at generality!]*

October 13, 2016 at 4:43 pm

[…] article was first published on R – Xi'an's Og, and kindly contributed to […]

October 13, 2016 at 1:42 am

[…] Please comment on the article here: R – Xi’an’s Og […]