时间序列预测-ARIMA / ARIMAX,每日数据为R

时间:2019-03-20 05:06:02

标签: r time-series arima forecast autocorrelation

enter code here我正在从事一个项目,以分析和预测客户的销售和收入的时间序列。为了准确起见,我想测试各种模型-即 Holt Linear Method(霍特线性方法),Holt Winter方法,ARIMA,季节性ARIMA和ARIMAX (因为我也想考虑数据中的分类变量)。 该数据为每日数据,因此我选择的频率为7。

startW <- as.numeric(strftime(head(revenue$date, 1), format = "%W"))
startD <- as.numeric(strftime(head(revenue$date, 1) + 1, format =" %w")) 
revenue <- ts(revenue$amount, start = c(startW, startD), frequency = 7)

然后我将其分为训练和测试,将上个月保留为保留设置。

我对ARIMA模型使用了auto.arima()函数,它给出了ARIMA(0,0,0)(2,1,0)[7]。这意味着什么?残差图看起来像这样Residual Plot 1

在此之后,我将假期添加为外生变量

encoded_regressors <- sparse.model.matrix(amount~holiday, data = train_set)
encoded_regressors <- (encoded_regressors[,-1])
model2 <- auto.arima(revenue.train, xreg = encoded_regressors)

我现在得到的模型是ARIMA(0,0,1)(2,1,0)[7],这是残差图Residual Plot 2

对于这两种情况,如果我看到预测值和观察值的差异,则百分比差异的平均范围为3%-50%。如何改善模型并了解ARIMA模型的输出?

谢谢!

2 个答案:

答案 0 :(得分:0)

您似乎正在使用auto.arima()软件包中的forecast。您可以在R here中找到有关使用此程序包和时间序列预测的很多很好的信息。对于给定的输出,第一个括号中的3个值是指ARIMA模型中p,d和q的顺序。 p是自回归项,d是微分阶数,q是移动平均项。第二个括号中的3个值表示季节性分量P,D和Q,每个值分别表示自回归项,差分项和移动平均值项。括号中的数字7是您选择的频率。

通常,要找到最佳的ARIMA模型,您可以查看Akaike信息标准(AIC)或贝叶斯信息标准(BIC),并尝试将其最小化。同样,请查看链接以获取更多详细信息。

答案 1 :(得分:0)

时间序列的ACF和PACF图如下 ACF Plot PACF Plot

如果我的理解是正确的,ACF建议q = 7,而PACF建议p = 7?