#Se instalan los paquetes “forecast” y “fpp2”, el primero es para aplicar métodos de pronóstico, el segundo y tercero son para crear gráficos interesantes.

#install.packages("forecast")
#install.packages("fpp2")
library(forecast)
## Warning: package 'forecast' was built under R version 4.0.5
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(fpp2)
## Warning: package 'fpp2' was built under R version 4.0.5
## -- Attaching packages ---------------------------------------------- fpp2 2.4 --
## v ggplot2   3.3.5     v expsmooth 2.3  
## v fma       2.4
## Warning: package 'ggplot2' was built under R version 4.0.5
## Warning: package 'fma' was built under R version 4.0.5
## Warning: package 'expsmooth' was built under R version 4.0.5
## 
library(ggplot2)

#Utilizamos la misma serie de tiempo que en el capítulo 4 sección 4.6 (Suavización exponencial simple)

ventas<-c(125,132,155,135,152,147,140,154,153,177,179)

#Definimos la variable “ventas” y aplicamos la función de series de tiempo “ts” comenzando en el periodo 1 con frecuencia 1, es decir, en este caso mes a mes.

ventas<-ts(ventas,start=1, frequency=1)
ventas
## Time Series:
## Start = 1 
## End = 11 
## Frequency = 1 
##  [1] 125 132 155 135 152 147 140 154 153 177 179

#Graficamos la serie de tiempo

plot(ventas)

#Definimos la variable Fit_ses para aplicar la función de ses con un alpha de 0.1. Se obtiene el pronóstico para periodo 12 y los intervalos de predicción. El pronóstico para el periodo 12 es de 145.2211 con los respectivos intervalos de predicción Lo (Bajo) y Hi (Alto)

fit_ses<-ses(ventas,h=1, initial ="simple", alpha=0.1)
fit_ses
##    Point Forecast   Lo 80    Hi 80    Lo 95    Hi 95
## 12       145.2211 116.764 173.6782 101.6997 188.7425

#Se realiza un resumen de modelo con alpha=0.1, incluye algunos métricos de la exactitus en el pronóstico, por ejemplo el MAPE.

summary(fit_ses)
## 
## Forecast method: Simple exponential smoothing
## 
## Model Information:
## Simple exponential smoothing 
## 
## Call:
##  ses(y = ventas, h = 1, initial = "simple", alpha = 0.1) 
## 
##   Smoothing parameters:
##     alpha = 0.1 
## 
##   Initial states:
##     l = 125 
## 
##   sigma:  22.2052
## Error measures:
##                    ME     RMSE      MAE      MPE     MAPE     MASE      ACF1
## Training set 18.38283 22.20521 18.38283 11.54382 11.54382 1.531902 0.1629924
## 
## Forecasts:
##    Point Forecast   Lo 80    Hi 80    Lo 95    Hi 95
## 12       145.2211 116.764 173.6782 101.6997 188.7425

#Graficamos los históricos y el punto de pronóstico(145.2211)

plot(fit_ses)

#Definimos la variable Fit_ses para aplicar la función de ses con un alpha de 0.7. Se obtiene el pronóstico para periodo 12 y los intervalos de predicción. El pronóstico para el periodo 12 es de 176.1714 con los respectivos intervalos de predicción Lo (Bajo) y Hi (Alto). El resultado obtenido es el mismo que obtuvimos en la sección 4.6 de este libro corriéndolo manualmente.

fit_ses2<-ses(ventas,h=1, initial ="simple", alpha=0.7)
fit_ses2
##    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 12       176.1714 159.2721 193.0706 150.3262 202.0165

#Se obtiene un resumen de este método con la serie de tiempo dada,lo reelevante es observar el MAPE=6.72, se minimiza con respecto a los otros parámetros tomados alpha=0.1 y alpha=0.90

summary(fit_ses2)
## 
## Forecast method: Simple exponential smoothing
## 
## Model Information:
## Simple exponential smoothing 
## 
## Call:
##  ses(y = ventas, h = 1, initial = "simple", alpha = 0.7) 
## 
##   Smoothing parameters:
##     alpha = 0.7 
## 
##   Initial states:
##     l = 125 
## 
##   sigma:  13.1865
## Error measures:
##                    ME     RMSE      MAE      MPE     MAPE      MASE       ACF1
## Training set 6.645631 13.18654 10.42727 3.968638 6.723464 0.8689388 -0.3755289
## 
## Forecasts:
##    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 12       176.1714 159.2721 193.0706 150.3262 202.0165

#Graficamos los históricos y el punto de pronóstico (176.1714)

plot(fit_ses2)

#Definimos la variable Fit_ses para aplicar la función de ses con un alpha de 0.9. Se obtiene el pronóstico para periodo 12 y los intervalos de predicción. El pronóstico para el periodo 12 es de 178.5597 con los respectivos intervalos de predicción Lo (Bajo) y Hi (Alto).

fit_ses3<-ses(ventas,h=1, initial ="simple", alpha=0.9)
fit_ses3
##    Point Forecast    Lo 80    Hi 80    Lo 95  Hi 95
## 12       178.5597 161.3105 195.8089 152.1793 204.94
summary(fit_ses3)
## 
## Forecast method: Simple exponential smoothing
## 
## Model Information:
## Simple exponential smoothing 
## 
## Call:
##  ses(y = ventas, h = 1, initial = "simple", alpha = 0.9) 
## 
##   Smoothing parameters:
##     alpha = 0.9 
## 
##   Initial states:
##     l = 125 
## 
##   sigma:  13.4596
## Error measures:
##                    ME     RMSE      MAE      MPE     MAPE      MASE       ACF1
## Training set 5.410068 13.45962 10.58351 3.164563 6.923181 0.8819592 -0.5116393
## 
## Forecasts:
##    Point Forecast    Lo 80    Hi 80    Lo 95  Hi 95
## 12       178.5597 161.3105 195.8089 152.1793 204.94

#Graficamos los históricos y el punto de pronóstico (178.5597)

plot(fit_ses3)

#Correr el modelo mediante un alpha automático que considera el menor error en las métricas de exactitud en el pronóstico, simplemente no se define el parámetro alpha.

fit_ses4<-ses(ventas,h=1, initial ="simple")
fit_ses4
##    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 12       176.6382 159.7491 193.5274 150.8085 202.4679

#Se obtiene un resumen de este método con la serie de tiempo dada,lo relevante es que el alpha se calcula en automatico.

summary(fit_ses4)
## 
## Forecast method: Simple exponential smoothing
## 
## Model Information:
## Simple exponential smoothing 
## 
## Call:
##  ses(y = ventas, h = 1, initial = "simple") 
## 
##   Smoothing parameters:
##     alpha = 0.7282 
## 
##   Initial states:
##     l = 125 
## 
##   sigma:  13.1787
## Error measures:
##                    ME     RMSE      MAE      MPE     MAPE      MASE       ACF1
## Training set 6.446426 13.17866 10.43875 3.838956 6.745867 0.8698956 -0.3957395
## 
## Forecasts:
##    Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 12       176.6382 159.7491 193.5274 150.8085 202.4679

#Graficamos los históricos y el punto de pronóstico (176.6382)

plot(fit_ses4)

#Fuente: Elaboración propia