Contexto

La base de datos AirPassengers contiene el número mensual de pasajeros aéreos internacionales entre 1949 y 1960 (144 observaciones mensuales.) Esta base de datos es ampliamente utilizada para el análisis de series de tiempo, reflejando el crecimiento de la industria de la aviación comercial después de la Segunda Guerra Mundial

Instalar paquetes y llamar librerías

# install.packages("ggplot2") # Generar gráficos presentables
library(ggplot2)

# install.packages("forecast") # Generar series de tiempo y pronósticos
library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

Importar la base de datos

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

Identificar patrones y tendencias

Los 4 componentes de las series de tiempo son:

Tendencia: Ej. Aumento en las ventas de una tienda en línea debido al crecimiento del comercio electrónico.

Ciclo: Ej. Las fluctuaciones en las ventas de automóviles a los largo de los ciclos económicos (expansión y recesión).

Patrón 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= "darkgreen") +
  labs(title="Número de Pasajeros Aéreos Internacionales", x="Año", y= "Número")
## 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.

‹span style=“color: blue;”>Generar Pronostico

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

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

#Graficar datos historicos y el pronostico
autoplot(pronostico) + labs(title="Pasajeros Aereos Internacionales", x="Año", y="Numero")

#Generar prediccion 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
## 1  1961.000
## 2  1961.083
## 3  1961.167
## 4  1961.250
## 5  1961.333
## 6  1961.417
## 7  1961.500
## 8  1961.583
## 9  1961.667
## 10 1961.750
## 11 1961.833
## 12 1961.917