PRÁCTICA 2 Inmaculada Meca Sáez 5 de marzo de 2018

EJERCICIO 1

Realiza un breve análisis descriptivo numérico y gráfico. Convierte los datos en formato de serie temporal y dibuja la serie.

library(forecast) 
## Warning: package 'forecast' was built under R version 3.4.3
df <- read.csv("D:/SERIES TEMPORALES/unemployment.csv")
#("http://www.r-exercises.com/wp-content/uploads/2017/04/unemployment.csv")
#Para que lea los datos
unempl <- ts(df, start = c(2012, 1), frequency = 12)   #Con el comando ts generamos una serie temporal
#El 1 significa que saltamos el nombre de las variables que es la primera fila.
plot(unempl)     #AQUI dibuja el gráfico

EJERCICIO 2

Usa la función ses del paquete forecast para obtener la predicción basada en un suavizado esponencial simple para los próximos 12 meses, y dibuja esa predicción.

fcast_ses <- ses(unempl, h = 12)   #ses SIMPLE EXPONENTIAL SMOOTHING
plot(fcast_ses)

En este caso, con el Suavizado Exponencial Simple no se aprecia la tendencia, por lo que no sería un Método adecuado para este tipo de series.

summary(fcast_ses)
## 
## Forecast method: Simple exponential smoothing
## 
## Model Information:
## Simple exponential smoothing 
## 
## Call:
##  ses(y = unempl, h = 12) 
## 
##   Smoothing parameters:
##     alpha = 0.9999 
## 
##   Initial states:
##     l = 8.8217 
## 
##   sigma:  0.3577
## 
##      AIC     AICc      BIC 
## 137.4810 137.8878 143.9104 
## 
## Error measures:
##                       ME      RMSE       MAE       MPE     MAPE      MASE
## Training set -0.06701777 0.3576975 0.2828898 -1.197171 4.552993 0.3661772
##                   ACF1
## Training set 0.1088765
## 
## Forecasts:
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Apr 2017        4.60003 4.141622 5.058438 3.898956 5.301104
## May 2017        4.60003 3.951776 5.248284 3.608611 5.591449
## Jun 2017        4.60003 3.806097 5.393963 3.385815 5.814245
## Jul 2017        4.60003 3.683283 5.516777 3.197987 6.002073
## Aug 2017        4.60003 3.575081 5.624979 3.032506 6.167554
## Sep 2017        4.60003 3.477258 5.722802 2.882899 6.317161
## Oct 2017        4.60003 3.387301 5.812759 2.745321 6.454739
## Nov 2017        4.60003 3.303570 5.896490 2.617266 6.582794
## Dec 2017        4.60003 3.224929 5.975131 2.496994 6.703066
## Jan 2018        4.60003 3.150548 6.049512 2.383238 6.816822
## Feb 2018        4.60003 3.079801 6.120259 2.275041 6.925019
## Mar 2018        4.60003 3.012204 6.187856 2.171660 7.028400

Con el Suavizado Exponencial Simple, obtenemos un alpha (CONSTANTE DE PONDERACIÓN) de 0.99, cercano a 1. Por tanto, vamos a tener en cueta todo lo ocurrido anteriormente para predecir con mayor exactitud.

El MAPE es un indicador del desempeño del Pronóstico de Demanda que mide el tamaño del error (absoluto) en términos porcentuales.

El MAPE es quizá la medida más fácil de interpretar. Por ejemplo, un resultado cuyo MAPE es del 6% indica claramente que no depende de aspectos como la magnitud de los datos de entrada.

En este caso, obtenemos un MAPE de 4.5529 que comparándolo con otro modelo si podríamos obtener una conclusión clara sobre éste.

Pero Por ejemplo, afirmar que el “error porcentual promedio es de un 4.5%” nos indica que el ajuste del modelo es más adecuado. Valores más pequeños por lo general indican un modelo de ajuste más adecuado.

EJERCICIO 3

ESTIMA UN MODELO de suavizado exponencial usando la función ETS con los parámetros por defecto.

fit_ets_default <- ets(unempl)

Luego PASA EL MODELO COMO INPUT PARA UNA PREDICCIÓN (usa la funcion textsl{forecast}) de los próximos 12 meses, y

fcast_ets_default <- forecast(fit_ets_default, h = 12)  #h=12 es el periodo del que queremos que nos haga la prediccion

dibuja la predicción.

plot(fcast_ets_default)

Una vez observado este gráfico vemos que al ser la serie de esta forma, para analizarla cogeríamos una muestra de bastantes datos.

summary(fcast_ets_default)
## 
## Forecast method: ETS(M,A,M)
## 
## Model Information:
## ETS(M,A,M) 
## 
## Call:
##  ets(y = unempl) 
## 
##   Smoothing parameters:
##     alpha = 0.5717 
##     beta  = 1e-04 
##     gamma = 1e-04 
## 
##   Initial states:
##     l = 8.4353 
##     b = -0.0564 
##     s=0.9567 0.9453 0.957 0.9669 1.0245 1.0591
##            1.0365 0.9642 0.9403 1.0224 1.0542 1.0729
## 
##   sigma:  0.021
## 
##      AIC     AICc      BIC 
## 37.38299 50.98299 73.81628 
## 
## Error measures:
##                        ME      RMSE      MAE        MPE     MAPE      MASE
## Training set -0.009791689 0.1271141 0.102154 -0.1209349 1.687472 0.1322298
##                    ACF1
## Training set 0.08649403
## 
## Forecasts:
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Apr 2017       4.214062 4.100504 4.327620 4.040391 4.387734
## May 2017       4.266957 4.134078 4.399836 4.063737 4.470177
## Jun 2017       4.528341 4.370177 4.686506 4.286449 4.770233
## Jul 2017       4.567010 4.391492 4.742528 4.298579 4.835441
## Aug 2017       4.360016 4.178077 4.541954 4.081765 4.638266
## Sep 2017       4.060523 3.878331 4.242716 3.781884 4.339163
## Oct 2017       3.964638 3.774780 4.154497 3.674275 4.255002
## Nov 2017       3.862770 3.666497 4.059042 3.562597 4.162942
## Dec 2017       3.855468 3.648587 4.062350 3.539071 4.171866
## Jan 2018       4.263455 4.022792 4.504117 3.895393 4.631516
## Feb 2018       4.129576 3.885146 4.374005 3.755753 4.503398
## Mar 2018       3.947202 3.702884 4.191521 3.573549 4.320856

En este caso obtenemos un error porcentual promedio es de un 1.68%, el cual nos indica que el ajuste del modelo es más adecuado. Comparándolo con el Método de Suavizado Exponencial Simple dónde obteníamos un error porcentual promedio de 4.5%. Podemos concluir que utilizando SES y ETS a nivel de predicción capta mucho mejor la evolución de la serie el método ETS.

EJERICIO 4

Realiza un “summary” del modelo estimado en el ejercicio anterior y encuentra la estructura de la estimación. ¿Incluye esta los componentes de tendencia y estacionalidad? Si estas componentes están presentes, ¿el modelo es aditivo o multiplicativo?

Incluye las componentes de TENDENCIA (descendiente) y ESTACIONALIDAD (patrón que se repite). El MODELO ES ADITIVO (SE OBSERVA EN LA GRÁFICA). Con los DATOS se hace comparando los dos modelos y viendo los AIC como en el ejercicio 5. Éste es el mejor modelo (ets) porque capta la forma de la serie temporal.

summary(fit_ets_default)
## ETS(M,A,M) 
## 
## Call:
##  ets(y = unempl) 
## 
##   Smoothing parameters:
##     alpha = 0.5717 
##     beta  = 1e-04 
##     gamma = 1e-04 
## 
##   Initial states:
##     l = 8.4353 
##     b = -0.0564 
##     s=0.9567 0.9453 0.957 0.9669 1.0245 1.0591
##            1.0365 0.9642 0.9403 1.0224 1.0542 1.0729
## 
##   sigma:  0.021
## 
##      AIC     AICc      BIC 
## 37.38299 50.98299 73.81628 
## 
## Training set error measures:
##                        ME      RMSE      MAE        MPE     MAPE      MASE
## Training set -0.009791689 0.1271141 0.102154 -0.1209349 1.687472 0.1322298
##                    ACF1
## Training set 0.08649403

ESTO ES UN MODELO CON ECUACIONES RECURRENTES

SOLUCION: Implica que (1) el modelo tiene errores (RUIDO), tendencias y componentes estacionales. TENDENCIA porque se ve una clara tendencia descendiente. ESTACIONALIDAD porque se repite un patrón. ALFA, BETA Y GAMMA son parámetros que pueden cambiar según la serie que tengamos. ME son los errores.

  1. El error y los componentes estacionales son multiplicativos, El componente trend es aditivo.

EJERCICIO 5

Usa la función ets para estimar dos modelos, uno con tendencia y otro sin capturar la tendencia de esta serie. Realiza la predicción para los próximos 12 meses y dibuja las predicciones de las estimaciones.

Con TENDENCIA

fit_ets_damped_trend <- ets(unempl, damped = TRUE)
fcast_ets_damped_trend <- forecast(fit_ets_damped_trend, h = 12)
plot(fcast_ets_damped_trend)

summary(fit_ets_damped_trend)
## ETS(M,Ad,M) 
## 
## Call:
##  ets(y = unempl, damped = TRUE) 
## 
##   Smoothing parameters:
##     alpha = 0.3926 
##     beta  = 0.0671 
##     gamma = 1e-04 
##     phi   = 0.9658 
## 
##   Initial states:
##     l = 8.4934 
##     b = -0.0519 
##     s=0.9564 0.9491 0.9587 0.9737 1.024 1.0593
##            1.0387 0.9616 0.9392 1.017 1.0524 1.0699
## 
##   sigma:  0.0207
## 
##      AIC     AICc      BIC 
## 37.87171 53.41717 76.44814 
## 
## Training set error measures:
##                       ME      RMSE       MAE        MPE     MAPE      MASE
## Training set -0.02314036 0.1287874 0.1013243 -0.3506129 1.667008 0.1311558
##                   ACF1
## Training set 0.1065758

SIN TENDENCIA

fit_ets_no_trend <- ets(unempl, model = "ZNZ")
fcast_ets_no_trend <- forecast(fit_ets_no_trend, h = 12)
plot(fcast_ets_no_trend)

summary(fit_ets_no_trend)
## ETS(M,N,M) 
## 
## Call:
##  ets(y = unempl, model = "ZNZ") 
## 
##   Smoothing parameters:
##     alpha = 0.8606 
##     gamma = 1e-04 
## 
##   Initial states:
##     l = 7.7404 
##     s=0.96 0.9442 0.9605 0.9688 1.0211 1.0551
##            1.0339 0.9605 0.9355 1.02 1.0576 1.0827
## 
##   sigma:  0.0247
## 
##      AIC     AICc      BIC 
## 54.88326 65.09602 87.03028 
## 
## Training set error measures:
##                       ME      RMSE      MAE       MPE    MAPE      MASE
## Training set -0.05882104 0.1559882 0.117757 -1.024958 1.92539 0.1524265
##                    ACF1
## Training set 0.01888684

Mirando ambas gráficas observamos que con tendencia el modelo se ajusta mejor a los datos.

Utilizando el criterio del AIC siempre es preferible el modelo que tenga un menor valor, en este caso es el modelo CON TENDENCIA.