Facultad de Contaduría y Administración (UNAM - Unidad de Posgrado)

Maestría en Administración de las Organizaciones

Métodos Cuantitativos Aplicados a la Administración

Doctor: Carlos Rodríguez Contreras

alt text

alt text

¿Para que se utiliza el Método Holt Winters?

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.

¿Cómo visualizar datos de un archivo de Excel en R y realizar con ellos una predicción con el Método Holt Winters?

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)

Fuentes de Consulta

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