首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用Mcomp包对每月时间序列进行批量预测时获得正确的输出?

如何在使用Mcomp包对每月时间序列进行批量预测时获得正确的输出?
EN

Stack Overflow用户
提问于 2021-12-17 23:12:40
回答 1查看 97关注 0票数 0

我试图用Mcomp包对月度时间序列进行批量预测。我已经准备了一个代码,但是我没有得到任何输出。

代码语言:javascript
复制
library(forecast)    
library(Mcomp)

使用seq函数,因为我需要选择以7结尾的特定时间序列。

代码语言:javascript
复制
tsset <- (seq(1507, 2797, 10)) 
tsset

horizon <- 18
fit1<-array(0,130)

for (tsi in 1:130){
  y <- tsset[[tsi]]$x
  yt <- head(y, length(y) - horizon)
  yv <- tail(y, horizon)

  for(i in 1:130){
    fit1 <-c(ets(yt))
  }
  print(fit1)
}
EN

回答 1

Stack Overflow用户

发布于 2021-12-18 00:38:33

考虑到时间序列中的前112个点(不需要循环),下面是对最后18个点的预测:

代码语言:javascript
复制
tsset<- seq(1507, 2797, 10) + 10*runif(130) # add noise
horizon <- 18

y <- tsset
n <- length(y)
yt <- head(y, n - horizon)
#yv <- tail(y, horizon)
fit1 <- ets(yt)
yv1 <- forecast(fit1, h=horizon)

start <- n - horizon + 1
plot(start:n, yv, type='l', col='red', lty=1, xlab='t', ylab='y(t)')
lines(start:n, yv1$mean, col='blue', lty=2)
lines(start:n, yv1$upper[,2], col='green', lty=2)
lines(start:n, yv1$lower[,2], col='green', lty=2)
legend("topleft", legend=c("original", "forecast", "95% CI"),
                  col=c("red", "blue", "green"), lty=c(1,2,2), cex=0.8)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70399737

复制
相关文章

相似问题

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