R:来自模型的示例数据,包`ks`

时间:2017-04-09 00:19:00

标签: r

如果在某个地方有明显的答案,我很抱歉,我找不到一个,而且我对R不太熟悉。

我正在使用内核平滑包ks来使用kde生成内核密度估算模型。我想对生成的模型进行抽样。

library(ks)
data <- read.table("data_file.txt", header=FALSE)
model <- kde(data)

然后我不知道该怎么办。我已经阅读了帮助文档,但没有找到必要的功能。

1 个答案:

答案 0 :(得分:2)

单变量案例

请参阅帮助文档: https://cran.r-project.org/web/packages/ks/ks.pdf

您可以看到dkdepkdeqkderkde与任何R发布版相同。

rkde(100, model)

它将从估计的分布中生成100个随机数。

多变量案例

我很惊讶发现ks包不是直接用prodive样本方法。无论如何,它原则上很容易。您只需要首先随机选择一个采样点,然后在其上应用估计的内核噪声。对于具有多变量普通内核的缓慢但基本的代码示例:

library(mvtnorm)

rmkde <- function(size,flat){
  n <- nrow(flat$x)
  s <- sample(1:n,size,replace=TRUE)
  t(apply(flat$x[s,],1,function(mean)rmvnorm(1,mean=mean,sigma=flat$H)))
}

rmkde(100, model)

由于rmvnorm多次计算相同的矩阵分解,因此速度很慢,您可以从rmvnorm源代码中选择分解来加速它。