嘿,伙计们,我知道有很多关于模拟的东西,但我还没有找到我需要的东西。我有一个视图数据的向量。这是一个视频的点击量,以百万为单位。
totalBeforeViews = (c( 1.19,2.29,2.05,1.96,2.07,1.77,1.50,1.77,4.49,9.76,6.55,5.17,6.56,10.31))我想对这个数据进行1000次重复模拟。所以我正在寻找某种函数,它可以随机地进行模拟,但通过上面的向量进行训练。我正在考虑这样做
sdViewsBefore = sd(totalBeforeViews)
simulatedBeforeViews = rnorm(n = 1000, mean = totalBeforeViews, sd = sdViewsBefore)然而,这让我得到了负值,我不能使用,因为在视频上不能有负面的观点。另外,我的最终目标是对我拥有的另一组数据运行1000个T测试。任何帮助都是非常感谢的。谢谢
发布于 2019-04-08 05:08:44
可以考虑截断正态分布。我还没有测试过下面的代码,但可能会有所帮助:
library(truncnorm)
rtruncnorm(n=1000, a=0, b=Inf, mean=totalBeforeViews, sd=sdViewsBefore)在这个link中,作者提供了一个自定义的截断正态分布抽样,你可以调整到你自己的,而不需要安装新的软件包。
mysamp <- function(n, m, s, lwr, upr, nnorm) {
samp <- rnorm(nnorm, m, s)
samp <- samp[samp >= lwr & samp <= upr]
if (length(samp) >= n) {
return(sample(samp, n))
}
stop(simpleError("Not enough values to sample from. Try increasing nnorm."))
}
set.seed(42)
mysamp(n=10, m=39.74, s=25.09, lwr=0, upr=340, nnorm=1000)https://stackoverflow.com/questions/55563302
复制相似问题