Tengo datos mensuales desde 1993 hasta 2015 y me gustaría hacer una previsión sobre estos datos. Utilicé el paquete tsoutliers para detectar los valores atípicos, pero no sé cómo seguir haciendo pronósticos con mi conjunto de datos.
Este es mi código:
product.outlier<-tso(product,types=c("AO","LS","TC"))
plot(product.outlier)
Esta es mi salida del paquete de tsoutliers
ARIMA(0,1,0)(0,0,1)[12]
Coefficients:
sma1 LS46 LS51 LS61 TC133 LS181 AO183 AO184 LS185 TC186 TC193 TC200
0.1700 0.4316 0.6166 0.5793 -0.5127 0.5422 0.5138 0.9264 3.0762 0.5688 -0.4775 -0.4386
s.e. 0.0768 0.1109 0.1105 0.1106 0.1021 0.1120 0.1119 0.1567 0.1918 0.1037 0.1033 0.1040
LS207 AO237 TC248 AO260 AO266
0.4228 -0.3815 -0.4082 -0.4830 -0.5183
s.e. 0.1129 0.0782 0.1030 0.0801 0.0805
sigma^2 estimated as 0.01258: log likelihood=205.91
AIC=-375.83 AICc=-373.08 BIC=-311.19
Outliers:
type ind time coefhat tstat
1 LS 46 1996:10 0.4316 3.891
2 LS 51 1997:03 0.6166 5.579
3 LS 61 1998:01 0.5793 5.236
4 TC 133 2004:01 -0.5127 -5.019
5 LS 181 2008:01 0.5422 4.841
6 AO 183 2008:03 0.5138 4.592
7 AO 184 2008:04 0.9264 5.911
8 LS 185 2008:05 3.0762 16.038
9 TC 186 2008:06 0.5688 5.483
10 TC 193 2009:01 -0.4775 -4.624
11 TC 200 2009:08 -0.4386 -4.217
12 LS 207 2010:03 0.4228 3.746
13 AO 237 2012:09 -0.3815 -4.877
14 TC 248 2013:08 -0.4082 -3.965
15 AO 260 2014:08 -0.4830 -6.027
16 AO 266 2015:02 -0.5183 -6.442
También tengo estos mensajes de advertencia.
Warning messages:
1: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval, :
stopped when ‘maxit’ was reached
2: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval, :
stopped when ‘maxit’ was reached
3: In locate.outliers.oloop(y = y, fit = fit, types = types, cval = cval, :
stopped when ‘maxit’ was reached
4: In arima(x, order = c(1, d, 0), xreg = xreg) :
possible convergence problem: optim gave code = 1
5: In auto.arima(x = c(5.77, 5.79, 5.79, 5.79, 5.79, 5.79, 5.78, 5.78, :
Unable to fit final model using maximum likelihood. AIC value approximated
Dudas:
- Si no me equivoco, el paquete de valores atípicos eliminará los valores atípicos que detecte y mediante el uso del conjunto de datos con valores atípicos eliminados, se nos dará el mejor modelo de Arima adecuado para el conjunto de datos, es decir ¿correcto?
- El conjunto de datos de las series de ajuste se está desplazando mucho hacia abajo debido a la eliminación del desplazamiento de nivel, etc. Esto no significa que si el pronóstico se hace sobre la serie ajustada, el resultado del pronóstico será muy inexacto, ya que los datos más recientes ya son más de 12, mientras que los datos ajustados lo desplazan a alrededor de 7-8.
- ¿Qué significa el mensaje de advertencia 4 y 5? ¿Significa que no puede hacer auto.arima usando la serie ajustada?
- ¿Qué significa el [12] en ARIMA(0,1,0)(0,0,1)[12]? ¿Es sólo la frecuencia/periodicidad de mi conjunto de datos, a la que lo configuro mensualmente? ¿Y esto también significa que mi serie de datos es también estacional?
- ¿Cómo detecto la estacionalidad en mi conjunto de datos? A partir de la visualización del gráfico de la serie de tiempo, no puedo ver ninguna tendencia obvia, y si utilizo la función de descomposición, se asumirá que hay una tendencia estacional? ¿Entonces sólo creo lo que me dicen los tsoutliers, donde hay una tendencia estacional, ya que hay MA de orden 1?
- ¿Cómo sigo haciendo mis previsiones con estos datos después de identificar estos valores atípicos?
- ¿Cómo incorporar estos valores atípicos a otros modelos de previsión - Suavizado exponencial, ARIMA, Modelo estrutural, Paseo aleatorio, theta? Estoy seguro de que no puedo eliminar los valores atípicos ya que hay un cambio de nivel, y si sólo tomo los datos de las series ajustadas, los valores serán demasiado pequeños, así que ¿qué hago?
¿Necesito añadir estos valores atípicos como regresores en el auto.arima para el pronóstico? ¿Cómo funciona esto entonces?