带有外生回归变量的auto.arima的预测功能如何工作?

时间:2019-04-23 22:40:04

标签: r dynamic regression forecast

我正在尝试使用auto.arima拟合动态回归模型。我有每个客户的天然气(供暖)使用量(我想预测)的月度数据,以及一组回归数据(例如供暖度日,天然气价格,特定年份的结构假人和季节性假人)。我有外生回归变量的预测值。每位客户的使用数据从2005年1月至2018年3月可用,所有其他数据都从2005年1月至2021年12月。我正在尝试预测2020年所有月份的每客户使用量。 我不确定如何在auto.arima函数的xreg和Forecast函数之间划分数据。我当前产生的预测值与使用月份不匹配,例如,2018年4月每个客户的使用预测与2005年1月的实际使用情况一样高,几乎相等。情况并非如此。

我正在尝试使用forecats软件包中的动态回归模型预测住宅用户的天然气使用量。我已经参考了Rob J. Hyndman教授的在线教科书     https://otexts.com/fpp2/forecasting.html

#I generated the time series for the period for which the data is available (Jan 2005-Mar 2018)
Med_ros_upc.ts.test<-ts(Med_ros_upc.ts[,"ORMEDSCH410upc.r"], 
frequency    = 12, start = c(2005,1), end = c(2018,3))                        
#This is the set of external regressors including seasonal dummies(sd.ts)
xreg_Med<- cbind(Hdd = Med_ros_upc.ts[, "MEDHDD"],
             Hdd2 = Med_ros_upc.ts[, "MEDHDD2"],
             RPA = Med_ros_upc.ts[, "ORSCH410RPAt1.r"],  sd, 
             Jan2009, intdummf)
#I convert the xreg matrix into a time series. I use this in auto.arima
xreg_Med.ts<-ts(xreg_Med, frequency = 12, start = c(2005,1), 
end = c(2018,3))
#I generate a different xreg for forecast"
xreg_Med.ts1<-ts(xreg_Med, frequency = 12, start = c(2018,4),
 end = c(2021, 12))
fitdyn <- auto.arima(Med_ros_upc.ts.test, xreg =xreg_Med.ts)
fcast <- forecast(fitdyn , xreg = xreg_Med.ts1)

预期结果              积分预测
2005年1月111.19 2005年2月89.22 ... 2005年4月53.86

实际结果点预测

2018年4月111.19 2018年5月89.22 ... 2018年6月53.86

2 个答案:

答案 0 :(得分:0)

您的训练数据将于2005年1月开始,到2018年3月结束。因此,您的预测将从2018年4月开始。根据定义,预测将是训练数据的未来。

答案 1 :(得分:0)

谢谢! 这就是我所做的:

`fitdyn <- auto.arima(Med_ros_upc.ts[,"ORMEDSCH410upc.r"], xreg =xreg_Med, stationary= TRUE)`
`fit<-fitted(fitdyn)`
`fcast_fit<-forecast(fit, h=36, xreg= xreg_Med)`

现在我有两个单独的表,其中一个具有拟合值和预测值,这些值看起来还不错。

但是,我收到此错误消息:

etsmodel中的错误(y,错误类型[i],趋势类型[j],季节类型[k],阻尼[l] 、:   未使用的参数(xreg = xreg_Med) 另外:警告消息: 在ets(object,lambda = lambda,biasadj = biasadj,allow.multiplicative.trend = allow.multiplicative.trend,:   缺少值。使用时间序列的最长连续部分

这是否意味着我获得的预测没有考虑外部回归因素?