shuaihuang 多谢提醒,我用对数变换的方法试了一下,公式是
$$\hat{f}(x)=\frac{1}{nxh}\sum(\frac{\ln x-\ln x_i}{h})$$
程序如下:
k <- function(x) 3 / 4 * (1 - x^2) * (abs(x) <= 1)
den.est <- function(u, ui, h) {
sapply(u, function(u) ifelse(u < 0, 0,
mean(k((log(u) - log(ui)) / h)) / (u * h)
))
}
set.seed(123)
dat <- rexp(1000, 1)
x <- seq(0.01, 8, by = 0.05)
y <- den.est(x, dat, 2 * bw.nrd0(log(dat)))
plot(x, y, type = "l", ylim = c(0, 1.2), main = "Log Transformed")
lines(x, dexp(x, 1), col = "red")
结果发现在很靠近0的时候出现了一个诡异的下降(可能是因为估计式的分母中有x,在0点无定义)。