alt text
El método de Holt Winters es utilizado para realizar pronósticos del comportamiento de una serie temporal a partir de los datos obtenidos anteriormente. El método se basa en un algoritmo iterativo que a cada tiempo (mes o semana) realiza un pronóstico sobre el comportamiento de la serie en base a promedios debidamente ponderados de los datos anteriores.
En RStudio, Holt Winters es un método interactivo que sirve para análizar y predecir series de tiempo. Veamos unos ejemplos sencillos de este programa en R.
Primero crearemos el comando del método de Holt Winters, para ello generamos primero los valores de “X” y “Y” desde la consola de R, lo cual nos permitirá posteriormente generar una gráfica.
x=1:24
y=5*x+rnorm(24,2,8)
plot(y)
Con lo anterior se ha generado una serie que permite notar que los datos muestran una tendencia.
Para analizar una serie de tiempo en R, el programa nos pide transformar los datos a datos de serie de tiempo. Para ello, podemos utilizar el comando times series (“ts”) y colocar los datos, la frecuencia que en este caso será trimestral e iniciarlo en el año 2010 del mes de enero. Con ello, podremos visualizar los datos como se muestra a continuación.
datos=ts(y,frequency = 4, start = c(2010, 1))
datos
## Qtr1 Qtr2 Qtr3 Qtr4
## 2010 -2.481626 15.611103 20.193700 31.755973
## 2011 20.388848 38.781762 45.607606 28.905154
## 2012 37.055715 59.026902 56.827072 63.738146
## 2013 72.879689 80.140206 82.199346 71.526655
## 2014 92.296554 95.065620 101.638020 110.191712
## 2015 104.620871 116.057877 119.665512 129.900067
Como se observa, se visualizan los valores de cada año por trimestre. Una vez obtenidos estos datos, procedemos a graficarlos, como se observa a continuación.
plot(datos)
Se observa que existe una tendencia y una estacionalidad leve.
Ahora bien, el método Holt Winters, permite combinar esta tendencia y también la estacionalidad. Para visualizar esto, se puede generar un modelo con el comando HoltWinters, como se visualiza a continuación.
mod1=HoltWinters(datos, seasonal = "additive")
plot(mod1)
Se puede observar que R a través del comando HoltWinters crea una gráfica en color rojo, en donde se crean una nueva serie de datos que en teoría están muy cerca de los datos originales que son los de color negro. Ahora bien, hay que tener en cuenta que toda serie de tiempo tiene un componente normal, una constante, una tendencia y un componente estacional, de esta manera, para poder componer la serie de acuerdo a estas características procedemos a realizar lo siguiente:
plot(fitted(mod1))
Como se puede, se puede visualizar en la gráfica la descomposición en estas cuatro partes que se mencionaron anteriormente.
Ahora bien, algo muy importante que se puede realizar con la serie de tiempo y el método Holt Winters es PREDECIR, para ello generamos lo siguiente:
pred=predict(mod1, 4, prediction.interval = TRUE)
pred
## fit upr lwr
## 2016 Q1 129.7596 145.9308 113.5883
## 2016 Q2 140.5141 156.7064 124.3218
## 2016 Q3 144.1480 160.3736 127.9223
## 2016 Q4 149.3175 165.5916 133.0435
Se observa que nos realiza una predicción para los próximos cuatro trimestres del siguiente año que en este caso, sería 2016. Para gráficar esta predicción realizamos lo siguiente:
plot(mod1, pred)
De esta manera se pueden visualizar en la gráfica la tendencia de los valores pronosticados para el año 2016, con sus respectivos intervalos de confianza.
Realizaremos un ejemplo muy sencillo para visualizar los datos de un archivo que se encuentra en Excel en R guardados en el formato .csv, el archivo se llama “holt.csv”. Realizamos lo siguiente.
data <- read.csv("holt.csv")
data
## X Month.of.year sessions
## 1 1 201601 84873
## 2 2 201602 92300
## 3 3 201603 95297
## 4 4 201604 93948
## 5 5 201605 94398
## 6 6 201606 85606
## 7 7 201607 94301
## 8 8 201608 84579
## 9 9 201609 97513
## 10 10 201610 98715
## 11 11 201611 84318
## 12 12 201612 94681
## 13 13 201701 94286
## 14 14 201702 81927
## 15 15 201703 84626
## 16 16 201704 98735
## 17 17 201705 98375
## 18 18 201706 87459
## 19 19 201707 12458
## 20 20 201708 45782
## 21 21 201709 24579
## 22 22 201710 54783
## 23 23 201711 28649
## 24 24 201712 15789
par(mfrow=c(3, 1))
Posteriormente, podremos visualizar los datos y graficarlos.
plot(data[,2], main = "Gráfica 1", ylim = c(0, max(data[,2])))
Posteriormente procedemos a ordenar esos datos en una serie de tiempo y graficarlos, indicándole que comience en el año 2016 del mes de enero. Para ello, realizamos lo siguiente:
data.ts <- ts(data[,2], start = c(2016, 1), frequency = 12)
plot(data.ts, main= "Gráfica 2", ylim = c(0, max(data.ts)))
Y finalmente, con el método Holt Winters procedemos a realizar la predicción para el año 2017, el cual quedará indicado en la gráfica con color rojo. Procedemos a realizar lo siguiente:
par(mfrow=c(1,1))
fitHW <- HoltWinters(data.ts, seasonal = "multiplicative")
plot(fitHW)
Tutorial Analyse predictive avec R (Holt Winters) Disponible en: https://www.youtube.com/watch?v=g4Q_dusTfec
Método de Holt Winters en R. Disponible en: https://www.youtube.com/watch?v=vRWVNN8xSyU