#Pronóstico modelo de Holt Winters.

#Si la serie resulta tener un patrón estacional, está técnica permite realizar predicciones extrapolando los componentes de la serie temporal observada.

#Importación de los datos.

library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(readxl)
EMA22_IVAE_SLV <- read_excel("C:/Users/isaac/OneDrive/Escritorio/EMA22_IVAE_SLV.xlsx", col_types = c("skip","numeric"), skip=5)

EMA22_IVAE_SLV.ts <- ts(data = EMA22_IVAE_SLV,
                    start = c(2009, 1),
                    frequency = 12)
Yt <-EMA22_IVAE_SLV.ts
print(EMA22_IVAE_SLV)
## # A tibble: 147 × 1
##     IMAE
##    <dbl>
##  1  86.7
##  2  80.8
##  3  87.2
##  4  83.9
##  5  91.4
##  6  93.5
##  7  86.4
##  8  86.7
##  9  87.6
## 10  85.3
## # … with 137 more rows

#Usando la libreria “stats” y “forecast”.

library(forecast)

#Estimar el modelo
ModeloHW<-HoltWinters(x = Yt,
                      seasonal = "multiplicative",
                      optim.start = c(0.9,0.9,0.9))
print(ModeloHW)
## Holt-Winters exponential smoothing with trend and multiplicative seasonal component.
## 
## Call:
## HoltWinters(x = Yt, seasonal = "multiplicative", optim.start = c(0.9,     0.9, 0.9))
## 
## Smoothing parameters:
##  alpha: 0.8408163
##  beta : 0
##  gamma: 1
## 
## Coefficients:
##            [,1]
## a   117.0799442
## b     0.1600306
## s1    0.9502255
## s2    1.0233274
## s3    1.0518154
## s4    0.9900276
## s5    1.0007537
## s6    0.9807088
## s7    0.9600206
## s8    1.0149628
## s9    1.0915423
## s10   0.9796752
## s11   0.9584676
## s12   0.9994880
#Generar el pronóstico:
library(forecast)
PronosticosHW<-forecast(object = ModeloHW,h = 12,level = c(0.95))
print(PronosticosHW)
##          Point Forecast     Lo 95    Hi 95
## Apr 2021       111.4044 105.94952 116.8593
## May 2021       120.1386 112.77972 127.4976
## Jun 2021       123.6515 114.83356 132.4694
## Jul 2021       116.5461 107.01096 126.0813
## Aug 2021       117.9689 107.30373 128.6341
## Sep 2021       115.7630 104.33417 127.1918
## Oct 2021       113.4746 101.36814 125.5810
## Nov 2021       120.1312 106.57272 133.6897
## Dec 2021       129.3698 114.12877 144.6109
## Jan 2022       116.2681 101.78191 130.7543
## Feb 2022       113.9046  98.99575 128.8134
## Mar 2022       118.9394  81.61739 156.2614

#Gráfico de la serie original y del pronóstico.

PronosticosHW %>% autoplot()

#Usando Forecast (Aproximación por Espacios de los Estados ETS).

library(forecast)

#Generar el pronóstico:
PronosticosHW2<-hw(y = Yt,
                   h = 12,
                   level = c(0.95),
                   seasonal = "multiplicative",
                   initial = "optimal")
print(PronosticosHW2)
##          Point Forecast     Lo 95    Hi 95
## Apr 2021       107.4928  99.59377 115.3918
## May 2021       115.3370 106.85846 123.8155
## Jun 2021       115.6946 107.18632 124.2029
## Jul 2021       109.6301 101.56399 117.6962
## Aug 2021       112.2047 103.94477 120.4646
## Sep 2021       110.2284 102.10923 118.3476
## Oct 2021       107.9393  99.98348 115.8951
## Nov 2021       114.4306 105.99022 122.8710
## Dec 2021       122.6459 113.59234 131.6994
## Jan 2022       108.5830 100.56060 116.6054
## Feb 2022       107.1239  99.20182 115.0460
## Mar 2022       113.1678 104.79016 121.5455
#Gráfico de la serie original y del pronóstico.
library(forecast)
PronosticosHW2 %>% autoplot()