嘿伙计,所以我知道有很多关于模拟,但我还没找到我需要的东西。我有一个视图数据向量。这是视频的观看次数,以百万计。
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测试时获得另一组数据。任何帮助表示赞赏。谢谢
可以考虑截断正态分布。我还没有在下面测试过,但可能有所帮助:
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)