【问题标题】:Auto.Arima incorrectly predicts first pointAuto.Arima 错误地预测了第一点
【发布时间】:2020-12-06 00:19:22
【问题描述】:

我正在尝试完成一些水库数据的时间序列分析,并且正在使用带有傅里叶分量的 auto.arima 来解释季节性,如此处所述https://otexts.com/fpp2/dhr.html#dhr 我使用的代码如下所示,数据集 I使用的可以在这里找到https://www.dropbox.com/sh/563nu3daeid0agb/AAB6NSddVUKgBCCbQtuqXPsZa?dl=0

Reservoir = read.csv("Reservoir1.csv",TRUE,",")
#impute missing data from data set
Reservoir = imputeTS::na_interpolation(Reservoir)
#Create Time Series
Reservoir = ts(Reservoir[,2],frequency = (365.25),start = c(2013,116))

plots = list()
for (i in seq (10)) {
  fit = auto.arima(Reservoir, xreg = fourier(Reservoir, K = i), seasonal = FALSE)
  plots[[i]] = autoplot(forecast(fit, xreg = fourier(Reservoir, K = i, h=10))) + 
    xlab(paste("K=",i,"AICC=",round(fit[["aicc"]],2))) + ylab("")
}

gridExtra::grid.arrange(plots[[1]],plots[[2]],plots[[3]],plots[[4]],plots[[5]],
                        plots[[6]],plots[[7]],plots[[8]],plots[[9]],plots[[10]],
                        nrow=5)
bestfit = auto.arima(Reservoir, xreg=fourier(Reservoir, K=9), seasonal=FALSE)
summary(bestfit)
checkresiduals(bestfit)
plot(Reservoir,col="red")
lines(fitted(bestfit),col="blue")

模型拟合良好,但第一次预测不正确。我不知道为什么只有这个值会如此遥远。或者,这是一个可以接受的错误吗?

【问题讨论】:

    标签: r time-series fft arima


    【解决方案1】:

    残差是使用所有先前观察的一步预测误差。在时间 1,残差是没有先前观察的预测误差,因此它只是基于拟合模型。事实上,这是一个人为的“好”预测,因为差异意味着模型无法知道数据的位置,直到有观察。但是在 R 中实现 ARIMA 模型的方式使得第一个预测使用的信息比它应该使用的多一点。

    【讨论】:

    • 当您说预测是人为好的时,您是指整个预测还是仅指时间 1 的预测?如果是后者,有没有更好的方法来模拟这个系统?
    • 时间 1 的预测。模型可能没问题,但这是一个不同的问题。
    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 2018-07-15
    • 2020-12-17
    • 1970-01-01
    • 2018-04-11
    • 2020-07-12
    相关资源
    最近更新 更多