Contexto

La base de datos AirPassangers contiene el numero mensual de pasajeros aereos internacionales entre 1949 y 1960 (144 observaciones mensuales). Esta base de datos es apliamente utilizada para el analisis de series de tiempo, reflejando e crecimiento de la indusria de la aviación comercial despues de la Segunda guerra mundial

Instalar paquetes y llamar librerias

#install.packages("ggplot2")#Para generar graficas con mejor diseño
library(ggplot2)

#install.packages("forecast")# Para revisar tendencias y realizar pronosticos
library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

Importar base de datos

df <- as.data.frame(AirPassengers)
serie_de_tiempo <- AirPassengers

Identificar patrones o tendencias

Los 4 componentes de las series de tiempo son

  • Tendencia:Ej. Aumento en las ventas de una tienda en linea debido al crecimiento del comercio electronico
  • Ciclo:Ej. Las fluctuaciones en las ventas de automóviles a lo largo de los ciclos economicos (expansión y recesión).
  • Patron estacional:Ej. Aumento en las ventas de juguetes durante la navidad.
  • Aleatorio: Ej. Caída de las ventas por un desastre natural.

ggplot(df, aes(x =time(serie_de_tiempo), y= serie_de_tiempo))+
  geom_line(color = "orange")+
  labs(title = "Numero de pasajeros aereos internacionales", x= "Año", y= "Numero")
## Don't know how to automatically pick scale for object of type <ts>. Defaulting
## to continuous.
## Don't know how to automatically pick scale for object of type <ts>. Defaulting
## to continuous.

Podemos concluir que la grafica anterior que la base de datos tiene tendencia creciente y patron estacional

Generar Pronóstico

#Ajuste del modelo
modelo <- auto.arima(serie_de_tiempo)

#Realizar pronóstico a 12 meses
pronostico <- forecast(modelo, h=12)

#Graficar datos historicos y el pronostico
autoplot(pronostico)+
  geom_line(color = "orange")

  labs(title = "Numero de pasajeros aereos internacionales", x= "Año", y= "Numero")
## $x
## [1] "Año"
## 
## $y
## [1] "Numero"
## 
## $title
## [1] "Numero de pasajeros aereos internacionales"
## 
## attr(,"class")
## [1] "labels"
#Generar predicción para un mes en especifico
df_prediccion <- data.frame(Fecha = time(pronostico$mean), Prediccion = as.numeric(pronostico$mean))

df_prediccion[df_prediccion$Fecha == 1961.0, ] #Enero de 1961
##   Fecha Prediccion
## 1  1961   445.6349