简体   繁体   English

Forecast :: ets,auto.arima偏移一

[英]forecast::ets, auto.arima offset by one

I'm not sure if this is intended behaviour. 我不确定这是否是预期的行为。 Consider the following snippet of code - 考虑以下代码片段-

library(forecast)
x <- c(
  0, 0, 0, 0, 0.00217764964493354, 0.00339032724317772, 0.00357374918778428, 
  0.00282328811130057, 0.00272679331678393, 0.0030360769697858, 
  0.00316665914235777, 0.00163300219677676, 0.00249817841157489, 
  0.00207838479809976, 0.00192104504850639, 0.00209700948212983, 
  0.00216356555603635, 0.00250983016815862, 0.0017474879860201
)
tsData <- ts(data = x, start = 2000, frequency = 1)
df <- data.frame(
  x = x, 
  fittedets = fitted(forecast(ets(tsData), h = 7)), 
  fittedarima = fitted(forecast(auto.arima(tsData), h = 7))
)
df

             x     fittedets fittedarima
1  0.000000000 -6.997521e-07 0.000000000
2  0.000000000 -7.065016e-11 0.000000000
3  0.000000000 -7.133162e-15 0.000000000
4  0.000000000 -7.201966e-19 0.000000000
5  0.002177650  0.000000e+00 0.000000000
6  0.003390327  2.177430e-03 0.002007587
7  0.003573749  3.390205e-03 0.003125561
8  0.002823288  3.573731e-03 0.003294659
9  0.002726793  2.823364e-03 0.002602805
10 0.003036077  2.726803e-03 0.002513846
11 0.003166659  3.036046e-03 0.002798976
12 0.001633002  3.166646e-03 0.002919360
13 0.002498178  1.633157e-03 0.001505474
14 0.002078385  2.498091e-03 0.002303084
15 0.001921045  2.078427e-03 0.001916074
16 0.002097009  1.921061e-03 0.001771022
17 0.002163566  2.096992e-03 0.001933245
18 0.002509830  2.163559e-03 0.001994603
19 0.001747488  2.509795e-03 0.002313826

The actual values are 0 until the fifth value, while in case of both models, the fitted values are about 0 until the sixth value. 实际值直到第五个值都为0,而在两个型号的情况下,拟合值约为第六个值为止的0。

I would assume them to be approximately 0 for the first five values, like the x column. 我会假设它们对于前五个值(例如x列)大约为0。 Am I missing something basic? 我缺少基本的东西吗?

It also has to do with the ARIMA model that auto.arima is fitting to your data. 它也与auto.arima适合您的数据的ARIMA模型有关。 If you look at the model that it's being fitted: 如果您查看所安装的模型,请执行以下操作:

Series: tsData 
ARIMA(1,0,0) with zero mean 

Coefficients:
         ar1
      0.9219
s.e.  0.0638

sigma^2 estimated as 6.076e-07:  log likelihood=108.59
AIC=-213.17   AICc=-212.42   BIC=-211.28

Remember that ARIMA stands for Autoregressive Integrated Moving Average, and the output tells us that only the AR part of the model was fitted, which makes it an AR(1) model: 请记住,ARIMA代表自回归综合移动平均值,并且输出告诉我们,仅拟合了模型的AR部分,这使其成为AR(1)模型:

y[t] = c + p1 * y[t-1] y [t] = c + p1 * y [t-1]

With this equation you can get a sense of what happened here: 通过此等式,您可以了解此处发生的情况:

             x     fittedets fittedarima
1  0.000000000 -6.997521e-07 0.000000000
2  0.000000000 -7.065016e-11 0.000000000 # .9219 * 0 = 0
3  0.000000000 -7.133162e-15 0.000000000 # .9219 * 0 = 0
4  0.000000000 -7.201966e-19 0.000000000 # .9219 * 0 = 0
5  0.002177650  0.000000e+00 0.000000000 # .9219 * 0 = 0
6  0.003390327  2.177430e-03 0.002007587 # .9219 * .00217 = .002007
7  0.003573749  3.390205e-03 0.003125561 # .9219 * .00339 = .003125

You can also observe this behavior with a plot: 您还可以通过绘图观察此行为:

library(ggplot2)
fcast <- forecast(auto.arima(tsData), h = 7)

autoplot(fcast) + 
  autolayer(fitted(fcast))

在此处输入图片说明

For the ets model a similar thing happens, but I hope this made it clear why auto.arima had such result. 对于ets模型, auto.arima发生类似的事情,但是我希望这可以弄清楚auto.arima为什么auto.arima产生这样的结果。 Next time you could explore more forecasting models that are included in the forecast package. 下次您可以探索包含在forecast包中的更多预测模型。

Hope this helped! 希望这对您有所帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM