auto.arima()
给了我系列的季节性组件,尽管我可以看到有一个存在。该函数给出了一个非季节性的ARIMA模型(5,0,0)。因此,当我尝试使用该模型进行预测时,它只是给出了平均值。时间序列是澳大利亚墨尔本的每日最低温度十年。
Click this link to see the data and the auto.arima forecast
`
library(readr)
temp <- read_csv("~/Downloads/Melbourne Minimum Temp.csv",
col_types = cols(Date = col_date(format = "%m/%d/%y"),
Temp = col_number()))
t <- ts(temp$Temp, start = temp$Date\[1], end = temp$Date[nrow(temp)])
auto.arima(t, trace = T)
`
尝试将数据用作ts对象,作为xts对象,以及作为向量。
答案 0 :(得分:1)
报告一个很好的解释 - 像往常一样 - 由Rob Hyndman撰写博客。
https://robjhyndman.com/hyndsight/dailydata/
你问题的相关部分是(完全按照页面引用):
如果时间序列足够长,可以使用一年以上,那么 可能有必要允许每年的季节性和每周一次 季节性。在这种情况下,TBATS等多季节模型是 必需的。
y <- msts(x, seasonal.periods=c(7,365.25))
fit <- tbats(y)
fc <- forecast(fit)
plot(fc)
这应该捕获每周模式以及更长的年度模式 图案。 365.25期是一年允许的平均长度 闰年。在一些国家,替代或额外的一年 长度可能是必要的。
我认为它完全符合您的要求。
我还尝试简单地用msts创建时间序列
y <- msts(x[1:1800], seasonal.periods=c(7,365.25))
(我将时间序列减半以便更快)
然后直接在其上运行auto.arima(),强制使用D = 1
的季节性组件fc = auto.arima(y,D=1,trace=T,stepwise = F)
这需要一段时间..因为我设置了逐步= FALSE(如果你想要查看没有快捷键的所有组合,你可以设置近似值= FALSE)
Series: y
ARIMA(1,0,3)(0,1,0)[365]
Coefficients:
ar1 ma1 ma2 ma3
0.9036 -0.3647 -0.3278 -0.0733
s.e. 0.0500 0.0571 0.0405 0.0310
sigma^2 estimated as 12.63: log likelihood=-3854.1
AIC=7718.19 AICc=7718.23 BIC=7744.54
然后是预测
for_fc = forecast(fc)
plot(for_fc)
我正在添加一个带有完整时间序列(红色)的数字 图(for_fc) 它似乎运行得很好 - 但它只是一个快速的测试。