【发布时间】:2016-01-08 19:28:47
【问题描述】:
我使用 R 中的 hts 包在训练数据上拟合 HTS 模型,使用“arima”选项来预测和计算保持/测试数据的准确性。 这是我的代码:
library(hts)
data<-read.csv("C:/TS.csv")
ts_train <- ts(data[,-1],frequency=12, start=c(2000,1))
hts_train <- hts(ts_train, nodes=list(2, c(4, 2)))
data.test<-read.csv("C:/TStest.csv")
ts_test <- ts(data.test[,-1],frequency=12, start=c(2003,1))
hts_test <- hts(ts_test, nodes=list(2, c(4, 2)))
forecast <- forecast(hts_train, h=15, method="bu", fmethod="arima", keep.fitted = TRUE, keep.resid = TRUE)
accuracy<-accuracy.gts(forecast, hts_test)
现在,假设我对保留样本的准确性感到满意,我想将测试数据与训练数据集中起来,并使用完整集重新预测。
我尝试使用此代码:
data.full<-read.csv("C:/TS_full.csv")
ts_full <- ts(data.full[,-1],frequency=12, start=c(2000,1))
hts_full <- hts(ts_full, nodes=list(2, c(4, 2)))
forecast.full <- forecast(hts_full, h=15, method="bu", fmethod="arima", keep.fitted = TRUE, keep.resid = TRUE)
现在,我不确定这是否真的是正确的方法,因为我不知道用于估计我的火车数据的 ARIMA 模型是否与我现在用于预测的 ARIMA 模型相同完整的数据集(我假设 fmethod="arima" 使用 auto.arima)。我希望它们保持相同的模型,否则我的样本外准确性度量评估的模型与我用于最终预测的模型不同。
我看到有一个 FUN 参数表示“一个用户定义的函数,它返回一个可以传递给预测函数的对象”。也许这个论点可以在我的代码的最后一行以某种方式使用,以确保我适合训练数据的模型用于预测完整的数据集?
任何关于哪种 R 代码会有所帮助的建议将不胜感激。
【问题讨论】:
标签: r forecasting