首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从R中的先前数据创建模拟数据

从R中的先前数据创建模拟数据
EN

Stack Overflow用户
提问于 2019-04-08 04:19:38
回答 1查看 47关注 0票数 0

嘿,伙计们,我知道有很多关于模拟的东西,但我还没有找到我需要的东西。我有一个视图数据的向量。这是一个视频的点击量,以百万为单位。

代码语言:javascript
复制
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次重复模拟。所以我正在寻找某种函数,它可以随机地进行模拟,但通过上面的向量进行训练。我正在考虑这样做

代码语言:javascript
复制
sdViewsBefore = sd(totalBeforeViews)
simulatedBeforeViews = rnorm(n = 1000, mean = totalBeforeViews, sd = sdViewsBefore)

然而,这让我得到了负值,我不能使用,因为在视频上不能有负面的观点。另外,我的最终目标是对我拥有的另一组数据运行1000个T测试。任何帮助都是非常感谢的。谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-04-08 05:08:44

可以考虑截断正态分布。我还没有测试过下面的代码,但可能会有所帮助:

代码语言:javascript
复制
library(truncnorm)
rtruncnorm(n=1000, a=0, b=Inf, mean=totalBeforeViews, sd=sdViewsBefore)

在这个link中,作者提供了一个自定义的截断正态分布抽样,你可以调整到你自己的,而不需要安装新的软件包。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55563302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档