【问题标题】:Different results when generating random samples from kernel density从核密度生成随机样本时的不同结果
【发布时间】:2014-09-27 03:03:17
【问题描述】:
library(ks)

x<-rnorm(1000)
hist(x, col="red")

y <- rkde(kde(x), n=1000)
hist(y, col="green")

y <- rkde(density(x), n=1000)
hist(y, col="blue")

最后一个直方图是错误的。我之前使用过density,我发现它对于更复杂的分布是准确的。为什么在这种情况下它表现如此糟糕?谢谢

【问题讨论】:

  • 如果你要使用非基础函数,你需要告诉我们你使用的是哪个包

标签: r random-sample kernel-density


【解决方案1】:

因为你用错了函数。 rkde 需要一个 kde 类的对象。 density 不返回 kde 对象并且结构不同。

这就像告诉某人开枪并递给他们霰弹枪弹,然后想知道为什么当他们开火时它并没有真正起到任何作用。

【讨论】:

  • 好的。我认为rkde 可用于从每个内核生成随机样本。我是这样,如何从使用density 或其他包(如ash)获得的内核生成随机样本?
  • 看看 rkde 在做什么,并为密度返回的对象模仿它
  • 我的目的不是开发一个使用Silverman, B. (1986) Density Estimation for Statistics and Data Analysis . Chapman &amp; Hall/CRC. London的包,而是使用一个存在的函数(如果存在)。
  • 对于快速而肮脏的事情,以下似乎是合理的:x &lt;- rnorm(30);o &lt;- density(x); my_samp &lt;- sample(o$x, 1000, replace = TRUE, prob = o$y)
  • 查看 rkde 的代码,我的方法似乎与它正在做的非常接近,但它们为每个采样值添加了少量抖动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多