r - 使用 r 中的核密度估计生成样本

标签 r random

我需要使用 R 中的核密度估计从现有数据生成样本。在我的数据中缺少负值(并且不能),但在生成样本中存在负值。

library(ks)
set.seed(1)
par(mfrow=c(2,1))

x<-rlnorm(100)
hist(x, col="red", freq=F)

y <- rkde(fhat=kde(x=x, h=hpi(x)), n=100)
hist(y, col="green", freq=F)

如何限制KDE和生成样本的范围?

最佳答案

rkde 传递一个positive 参数:

y <- rkde(
  fhat = kde(x=x, h=hpi(x)), 
  n    = 100, 
  positive = TRUE
)

另一种方法是在估计之前转换数据(例如,使用对数), 使其不受约束,并在生成随机数后将其转换回来。

x2 <- log(x)
y2 <- rkde(fhat=kde(x=x2, h=hpi(x2)), n=100)
y <- exp(y2)
hist(y, col="green", freq=F)

关于r - 使用 r 中的核密度估计生成样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16102048/

相关文章:

javascript - JS生成随机 boolean 值

randomForest 使用因子变量作为连续变量?

r - SMOTE 函数 'subscript out of bond'

r - 如何过滤掉 data.table 中的坐标(纬度、经度)?

python - 选择列表中受其位置影响的随机元素

language-agnostic - 从逻辑分布中生成样本

python - 我可以在python中设置random.randint()函数的条件吗

javascript - 生成 0 - 9 之间的随机数,但不是 6

r - 从 r 中的以下行值填充空单元格

r - 分面的不同 geom_rect() 对象