
Contexto
La base de datos AirPassengers contiene el número mensual de
pasajeros aéreos internacionales entre 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") #Para generar gráficas con mejor diseño
library(ggplot2)
#install.packages("forecast") #Para revisar tendencias y generar pronósticos
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. Ventas de una tienda en línea debido
al crecimiento del comercio electrónico.
- Ciclo: Ej. Las fluctiaciones en las ventas de
automóvil a lo 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 = "purple")+
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.

Podemos concluir de la gráfica anterior que la base de datostiene
tendencia creciente y patrón
estacional
Generar pronósticos
#Ajuste del modelo
modelo <- auto.arima(serie_de_tiempo)
#Realizar pronóstico a 12 meses
pronostico <- forecast(modelo, h=12)
#Graficar datos históricos y el pronóstico
autoplot(pronostico) +
labs(title="Pasajeros Aéreos Internacionales", x="Año", y="Número")

#Generar predicción para un mes en específico
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
df_prediccion[df_prediccion$Fecha == 1961.167, ] #Marzo de 1961
## [1] Fecha Prediccion
## <0 rows> (or 0-length row.names)
LS0tDQp0aXRsZTogIkFpciBQYXNzZW5nZXJzIg0KYXV0aG9yOiAiQW1iZXIgQWd1aWxhciBBMDA4MzU5NTgiDQpkYXRlOiAiMjAyNC0wOS0xMiINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiBsdW1lbg0KLS0tDQoNCiFbXShDOlxcVXNlcnNcXGFtYmVyXFxEb3dubG9hZHNcXHRvcC1ndW4tbWF2ZXJpY2stOC53ZWJwKQ0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij5Db250ZXh0bzwvc3Bhbj4NCkxhIGJhc2UgZGUgZGF0b3MgKkFpclBhc3NlbmdlcnMqIGNvbnRpZW5lIGVsIG7Dum1lcm8gbWVuc3VhbCBkZSBwYXNhamVyb3MgYcOpcmVvcyBpbnRlcm5hY2lvbmFsZXMgZW50cmUgZW50cmUgMTk0OSB5IDE5NjAgKDE0NCBvYnNlcnZhY2lvbmVzIG1lbnN1YWxlcykuICANCkVzdGEgYmFzZSBkZSBkYXRvcyBlcyBhbXBsaWFtZW50ZSB1dGlsaXphZGEgcGFyYSBlbCBhbsOhbGlzaXMgZGUgc2VyaWVzIGRlIHRpZW1wbywgcmVmbGVqYW5kbyBlbCBjcmVjaW1pZW50byBkZSBsYSBpbmR1c3RyaWEgZGUgbGEgYXZpYWNpw7NuIGNvbWVyY2lhbCBkZXNwdcOpcyBkZSBsYSAqKlNlZ3VuZGEgR3VlcnJhIE11bmRpYWwqKg0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij5JbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzPC9zcGFuPg0KYGBge3J9DQojaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpICNQYXJhIGdlbmVyYXIgZ3LDoWZpY2FzIGNvbiBtZWpvciBkaXNlw7FvDQpsaWJyYXJ5KGdncGxvdDIpDQojaW5zdGFsbC5wYWNrYWdlcygiZm9yZWNhc3QiKSAjUGFyYSByZXZpc2FyIHRlbmRlbmNpYXMgeSBnZW5lcmFyIHByb27Ds3N0aWNvcw0KbGlicmFyeShmb3JlY2FzdCkNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij5JbXBvcnRhciBiYXNlIGRlIGRhdG9zPC9zcGFuPg0KYGBge3J9DQpkZiA8LSBhcy5kYXRhLmZyYW1lKEFpclBhc3NlbmdlcnMpDQpzZXJpZV9kZV90aWVtcG8gPC0gQWlyUGFzc2VuZ2Vycw0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPklkZW50aWZpY2FyIHBhdHJvbmVzIG8gdGVuZGVuY2lhczwvc3Bhbj4NCkxvcyA0IGNvbXBvbmVudGVzIGRlIGxhcyBzZXJpZXMgZGUgdGllbXBvIHNvbjoNCg0KKiAqKlRlbmRlbmNpYToqKiBFai4gVmVudGFzIGRlIHVuYSB0aWVuZGEgZW4gbMOtbmVhIGRlYmlkbyBhbCBjcmVjaW1pZW50byBkZWwgY29tZXJjaW8gZWxlY3Ryw7NuaWNvLg0KKiAqKkNpY2xvOioqIEVqLiBMYXMgZmx1Y3RpYWNpb25lcyBlbiBsYXMgdmVudGFzIGRlIGF1dG9tw7N2aWwgYSBsbyBsYXJnbyBkZSBsb3MgY2ljbG9zIGVjb27Ds21pY29zIChleHBhbnNpw7NuIHkgcmVjZXNpw7NuKS4NCiogKipQYXRyw7NuIEVzdGFjaW9uYWw6KiogRWouIEF1bWVudG8gZW4gbGFzIHZlbnRhcyBkZSBqdWd1ZXRlcyBkdXJhbnRlIGxhIG5hdmlkYWQuDQoqICoqQWxlYXRvcmlvOioqIEVqLiBDYcOtZGEgZGUgbGFzIHZlbnRhcyBwb3IgdW4gZGVzYXN0cmUgbmF0dXJhbC4NCg0KIVtdKEM6XFxVc2Vyc1xcYW1iZXJcXERvd25sb2Fkc1xcdGltZS1zZXJpZXMtZ3JhcGgtZXhhbXBsZXMuanBnKQ0KDQpgYGB7cn0NCmdncGxvdChkZiwgYWVzKHg9dGltZShzZXJpZV9kZV90aWVtcG8pLCB5ID0gc2VyaWVfZGVfdGllbXBvKSkrDQogIGdlb21fbGluZShjb2xvciA9ICJwdXJwbGUiKSsNCiAgbGFicyh0aXRsZT0iTsO6bWVybyBkZSBQYXNhamVyb3MgQcOpcmVvcyBJbnRlcm5hY2lvbmFsZXMiLCB4PSJBw7FvIiwgeT0iTsO6bWVybyIpDQpgYGANCg0KUG9kZW1vcyBjb25jbHVpciBkZSBsYSBncsOhZmljYSBhbnRlcmlvciBxdWUgbGEgYmFzZSBkZSBkYXRvc3RpZW5lICoqdGVuZGVuY2lhIGNyZWNpZW50ZSoqIHkgKipwYXRyw7NuIGVzdGFjaW9uYWwqKg0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij5HZW5lcmFyIHByb27Ds3N0aWNvczwvc3Bhbj4NCmBgYHtyfQ0KI0FqdXN0ZSBkZWwgbW9kZWxvDQptb2RlbG8gPC0gYXV0by5hcmltYShzZXJpZV9kZV90aWVtcG8pDQoNCiNSZWFsaXphciBwcm9uw7NzdGljbyBhIDEyIG1lc2VzIA0KcHJvbm9zdGljbyA8LSBmb3JlY2FzdChtb2RlbG8sIGg9MTIpDQoNCiNHcmFmaWNhciBkYXRvcyBoaXN0w7NyaWNvcyB5IGVsIHByb27Ds3N0aWNvDQphdXRvcGxvdChwcm9ub3N0aWNvKSArDQogIGxhYnModGl0bGU9IlBhc2FqZXJvcyBBw6lyZW9zIEludGVybmFjaW9uYWxlcyIsIHg9IkHDsW8iLCB5PSJOw7ptZXJvIikNCg0KI0dlbmVyYXIgcHJlZGljY2nDs24gcGFyYSB1biBtZXMgZW4gZXNwZWPDrWZpY28NCmRmX3ByZWRpY2Npb24gPC0gZGF0YS5mcmFtZShGZWNoYSA9IHRpbWUocHJvbm9zdGljbyRtZWFuKSwgUHJlZGljY2lvbiA9IGFzLm51bWVyaWMocHJvbm9zdGljbyRtZWFuKSkNCg0KZGZfcHJlZGljY2lvbltkZl9wcmVkaWNjaW9uJEZlY2hhID09IDE5NjEuMCwgXSAjRW5lcm8gZGUgMTk2MQ0KZGZfcHJlZGljY2lvbltkZl9wcmVkaWNjaW9uJEZlY2hhID09IDE5NjEuMTY3LCBdICNNYXJ6byBkZSAxOTYxDQoNCiAgDQpgYGANCg0K