Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ELABORADO POR:
DHEYBI CERVAN
TABLA DE CONTENIDO
1 Introducción .......................................................................................................................... 3
4 Pronóstico ............................................................................................................................ 11
Para el análisis de series de tiempo en R, existen una gran variedad de librerias. En este tutorial
se emplea la librería fpp2, la cual contiene contiene:
Si aun desconoces como instalar librerías, te sugiero mirar este video. Si desconoces el uso del
software R, puedes mirar esta lista de reproducción y/o revisar algunos recursos de aprendizaje.
2 ELABORANDO LA SERIE DE TIEMPO EN R
Recordemos que se puede leer datos directamente desde una API, SQL u otros medios. Para este
tutorial empleo la lectura de datos desde Excel. Entonces para ello emplearemos las siguientes
funciones:
• La función read_excel() nos permite leer datos desde un archivo excel. Para ello es
necesario instalar la libreria readxl
• La función head() nos muestra los primeros datos de nuestra tabla de datos
library(readxl)
library(fpp2)
Anual 1 2000
Trimestral 4 c(2000,2)
Mensual 12 c(2000,9)
Nota: Los resultados de esta guía corresponden a Data1 del archivo excel. Sugiero que también
practiques con las otras series de tiempo como Data2 o Data3.
3 ANÁLISIS DE LA SERIE DE TIEMPO
Para el análisis de datos, esta librería fpp2 nos permite emplear las siguientes funciones:
Para el gráfico simple de la serie de tiempo empleamos la función autoplot(). Donde solo se
requiere ingresar el objeto de la serie de tiempo.
autoplot(data_serie)+
labs(title = "Serie de tiempo",
x = "Tiempo",
y = "Valor",
colour = "#00a0dc")+
theme_bw()
3.2 DESCOMPOSICIÓN DE LA SERIE DE TIEMPO
x = "Tiempo",
y = "Valor",
colour = "Gears")+
theme_bw()
3.3 GRÁFICO DE LA SERIE DE TIEMPO CON SU TENDENCIA
El siguiente fragmento de código nos permite graficar la serie de tiempo con su tendencia. Nótese
que emplea el objeto fit en el cual guardamos previamente los valores de la descomposición.
Nótese que se emplea la función trendcycle() para obtener los datos de tendencia del objeto
fit.
ggseasonplot(data_serie)
4 PRONÓSTICO
Para el pronóstico de series de tiempo mediante métodos básicos, la librería fpp2 nos brinda las
siguientes funciones:
Finalmente, para verificar el ajuste del método podemos emplear las siguientes funciones:
# elaborando el método
m1 <- snaive(data_serie, h=24)
# graficando el pronóstico
autoplot(m1)
# verificando el ajuste del método
autoplot(m1)+autolayer(fitted(m1), series="Ajuste")
## Ljung-Box test
##
## data: Residuals from Seasonal naive method
## Q* = 229.01, df = 24, p-value < 2.2e-16
##
## Model df: 0. Total lags used: 24
4.2 MÉTODO REGRESIÓN
Para el pronóstico de series de tiempo mediante regresión, la librería fpp2 nos brinda la función
tslm(). Esta función la emplearemos para crear una regresión de la serie de tiempo con los
datos de la descomposición estacional y/o tendencia. Entonces:
Finalmente, para verificar el ajuste del método podemos emplear las siguientes funciones:
# elaborando el pronostico
m2 <- forecast(regresion, h=96)
# graficando el pronóstico
autoplot(m2)
# verificando el ajuste del método
autoplot(m2)+autolayer(fitted(m2), series="Ajuste")
Para el pronóstico de series de tiempo mediante holt winters, la librería fpp2 nos brinda la
función hw().
• La serie de tiempo
• El valor de h. Este valor de h es la cantidad de datos que deseamos pronosticar.
• El tipo de descomposición a usar para la estacionalidad. Los tipos de descomposición que
acepta esta función es additive y multiplicative.
Finalmente, para verificar el ajuste del método podemos emplear las siguientes funciones:
# elaborando el pronostico
m3 <- hw(data_serie, h=96, seasonal = 'multiplicative')
# graficando el pronóstico
autoplot(m3)
# verificando el ajuste del método
autoplot(m3)+autolayer(fitted(m3), series="Ajuste")
Para el pronóstico de series de tiempo mediante ARIMA, la librería fpp2 nos brinda la función
auto.arima().
Primero crearemos un modelo ARIMA, para ello el argumento a colocar en esta función es la
serie de tiempo. Luego con la función forecast realizamos el pronóstico. El argumento a
colocar en esta función es el modelo ARIMA y el valor de h. Este valor de h es la cantidad de
datos que deseamos pronosticar.
Considerar que esta función auto.arima() es solo una aproximación iterativa que busca los
índices de AR y MA. Pues en determinadas series de tiempo podría no encontrar los índices
adecuados para un modelo ARIMA. En ese caso lo adecuado es seguir la metodología de
estimación de índices ARIMA. Esta metodología no está cubierta en este tutorial.
Finalmente, para verificar el ajuste del método podemos emplear las siguientes funciones:
# elaborando el pronostico
m4 <- forecast(modelo_arima, h=96)
# graficando el pronóstico
autoplot(m4)
# verificando el ajuste del método
autoplot(m4)+autolayer(fitted(m4), series="Ajuste")
Para el pronóstico de series de tiempo mediante una red neuronal, la librería fpp2 nos brinda la
función nnetar().
Primero crearemos un modelo de red neuronal (neural network), para ello el argumento a
colocar en esta función es la serie de tiempo.
Finalmente, para verificar el ajuste del método podemos emplear las siguientes funciones:
# elaborando el pronostico
m5 <- forecast(neural_network, h=96)
# graficando el pronóstico
autoplot(m5)
# verificando el ajuste del método
autoplot(m5)+autolayer(fitted(m5), series="Ajuste")
Para estimar los errores de pronóstico, se debe realizar con los valores ocurridos o reales. Es
decir, este error se mide tiempo después de haber realizado el pronóstico. Supongamos que los
valores reales ocurridos para la Data1 son los siguientes:
Entonces, para poder comparar nuestros datos será necesario almacenarlo en un objeto de serie
de tiempo. Entonces:
real <- c(13487, 12776, 13812, 13032, 14268, 14473, 15359, 14457 )
data_real <- ts(real, frequency=12,start=2019)
Entonces lo que realizará esta función es comparar el pronóstico de los siguientes 8 datos y el
valor real. Pues estamos considerando que ya pasaron 8 meses, y nos encontramos en la etapa de
evaluar el error de pronóstico de nuestros modelos.
Entonces a partir de estos errores de pronóstico podemos determinar cuál es el modelo más
adecuado. En la práctica se suelen evaluar varios modelos e incluso tomar como pronóstico un
valor medio de los resultados de dos o más modelos.