繁体   English   中英

R:来自模型“ ks”包的样本数据

[英]R: Sample data from model, package `ks`

很抱歉,如果在某个地方有一个明显的答案,我还没有找到答案,并且我对R不太有经验。

我正在使用内核平滑软件包ks使用kde生成内核密度估计模型。 然后,我想对生成的模型进行采样。

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

然后我不确定如何继续。 我已经阅读了帮助文档,但是没有找到必要的功能。

单变量情况

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

您可以看到dkdepkdeqkderkde与任何R发行版一样。

rkde(100, model)

它将根据估计的分布生成100个随机数。

多元案例

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

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源代码中选择分解来加速分解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM