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]。这意味着什么?残差图看起来像这样
在此之后,我将假期添加为外生变量
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],这是残差图。
对于这两种情况,如果我看到预测值和观察值的差异,则百分比差异的平均范围为3%-50%。如何改善模型并了解ARIMA模型的输出?
谢谢!
答案 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)