【发布时间】:2019-08-10 17:46:36
【问题描述】:
enter code here我正在做一个项目来分析和预测客户销售和收入的时间序列。为了准确性,我想测试各种模型 - 即 Holt 线性方法、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 模型的输出?
谢谢!
【问题讨论】:
标签: r time-series arima forecast autocorrelation