我正在尝试模拟一天中每秒捕获的流量。我每小时都有一个平均流量值,并希望创建一个随机向量来模拟该平均流量。
我尝试rpois
模拟三小时,平均分为20,10%和30%,如下所示:
r<-vector()
lambda <- c(20,10,30)
for (i in 1:length(lambda)) {
r <- append( r, rpois(3600,lambda[i]) ) # 3600 = number of seconds in 1 hour
}
plot(r, col='red', type='l')
通过检查图表,小时之间的转换会发生突然变化,这使得数据不太现实。我的问题是在R中有一种方法可以平滑过渡之间的值,同时保持平均值吗?
答案 0 :(得分:2)
我猜不是 - 因为价值取决于平均值==如果平均值“跳”,则随机值“跳”;
但当然您可以使用所需的“Bridge-Average-Valuse”手动“平滑”过渡之间的值:
r<-vector()
lambda <- c(20,15,10,21,30)
for (i in 1:length(lambda)){
if (lambda[i]%%10>0) {
r <- append( r, rpois(100,lambda[i]) )
} else {
r <- append( r, rpois(3200,lambda[i]) )
}
}
plot(r, col='red', type='l')