首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间序列交叉验证的实现

时间序列交叉验证的实现
EN

Stack Overflow用户
提问于 2021-01-08 10:52:12
回答 1查看 490关注 0票数 1

我工作的时间序列551的每月数据的M3比赛。

所以,我的数据是:

代码语言:javascript
复制
library(forecast)
library(Mcomp)
# Time Series
# Subset the M3 data to contain the relevant series 
ts.data<- subset(M3, 12)[[551]]
print(ts.data)

我想实现时间序列交叉验证的最后18个观察到的样本间隔

有些人通常会称之为“滚动起源的预测评估”或类似的东西。

我怎样才能做到这一点?采样间隔是什么意思?哪些是我必须评估的时刻表?

我很困惑,任何帮助来点燃这将是受欢迎的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-08 23:39:36

tsCV包的forecast函数是一个很好的起点。

从文件上看,

tsCV(y,预测函数,h= 1,window = NULL,xreg = NULL,初始值= 0,。..)

让“y”包含时间序列y1:T,然后将“预测函数”依次应用于时间序列y1:t,对于t=1,…,ft+h,作出预测ft+h,误差由et+h =yt+ Let +h给出。

首先,tsCV将模型拟合到y1中,然后预测y1 + h,然后将模型拟合为y1:2,预测T步骤的y2 +h等等。

tsCV函数返回预测错误。

将其应用于ts.data的训练数据

代码语言:javascript
复制
# function to fit a model and forecast
fmodel <- function(x, h){
  forecast(Arima(x, order=c(1,1,1), seasonal = c(0, 0, 2)), h=h)
}
 
# time-series CV
cv_errs <- tsCV(ts.data$x, fmodel, h = 1)

# RMSE of the time-series CV
sqrt(mean(cv_errs^2, na.rm=TRUE))
# [1] 778.7898

在你的情况下,也许你应该

ts.data$xx1

  • fit

  • 对ts.data$x进行了建模,然后对c(ts.data$x,ts.data$xx1)和预测(ts.data$xx2)等模式进行了预测。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65627659

复制
相关文章

相似问题

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