我有一个像这样创建的密度对象dd:
x1 <- rnorm(1000)
x2 <- rnorm(1000, 3, 2)
x <- rbind(x1, x2)
dd <- density(x)
plot(dd)
这产生了一个非高斯分布:
alt text http://www.cerebralmastication.com/wp-content/uploads/2009/09/nongaus.png
我希望能够从这个分布中获取类似于rnorm从正态分布中获取的随机偏差。
我的解决方法是获取核函数的累积分布函数(CDF),然后让它告诉我变量,如果我传递给它一个累积概率(反向CDF)。这样,我就可以将均匀随机变量的向量转化为密度绘制。
看起来我要做的事情应该是一些其他人在我之前做过的基本事情。有没有简单的方法或简单的函数可以做到这一点?我不想重新发明轮子。
FWIW,我找到了这篇R Help文章,但我无法理解他们在做什么,最终输出似乎也不能产生我想要的结果。但这可能是一步之遥,我只是不理解。
我考虑直接使用包中的Johnson分布,但是Johnson不会给我优美的双峰隆起,而我的数据却有。