如何使用auto.arima预测样本内?

问题描述 投票:-1回答:1

考虑这个简单的例子

> WWWusage %>% as_tibble() %>% head()
# A tibble: 6 x 1
      x
  <dbl>
1    88
2    84
3    85
4    85
5    84
6    85

我知道我可以使用ARIMA包装适合forecast模型。这很简单。

> fit <- auto.arima(WWWusage)
> fit
Series: WWWusage 
ARIMA(1,1,1) 

Coefficients:
         ar1     ma1
      0.6504  0.5256
s.e.  0.0842  0.0896

sigma^2 estimated as 9.995:  log likelihood=-254.15
AIC=514.3   AICc=514.55   BIC=522.08

问题是我想在我的训练样本中预测一步提前预测。也就是说,如何在原始数据中包含prediction列,其中包含来自fit的预测?

使用forecast只会返回obs的预测。 101110(样本外)。

> forecast(fit)
    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
101       218.8805 214.8288 222.9322 212.6840 225.0770
102       218.1524 208.4496 227.8552 203.3133 232.9915

我也想要所有之前的(样本内)预测(使用相同的参数)。喜欢用broom:augment()lm

我怎么能在这里做到这一点?

谢谢!

r time-series forecasting
1个回答
1
投票

请参阅以下解决方案。

df <- WWWusage %>% as_tibble()
fit <- auto.arima(df)
df$fitted <- fitted(fit)

既然您正在使用dplyr,那么您还可以执行以下操作:

df <- df %>% 
  mutate(fitted = fitted(fit))

如果您想知道为什么拟合值与原始观测结果完全一致,您可以阅读forecast包文档。 Rob Hyndman开发了这个包,它非常复杂。他使用一系列移动平均线的后向和预测来填补缺失的信息。

有关更多解释,请参阅他在https://otexts.com/fpp2/预测的在线书籍以及forecasthttps://cran.r-project.org/web/packages/forecast/forecast.pdf文档。

© www.soinside.com 2019 - 2024. All rights reserved.