
Contexto
La base de datos AirPassangers contiene el numero
mensual de pasajero aereos internacionales entre 1949 y 1960 (144
observaciones mensuales). Esta base de datos es ampliamente utilizada
para el analisis de series de tiempo, reflejando el crecimiento de la
industria de la aviacion comercial despues de la Segunda Guerra
Mundial.
Instalar paquetes y llamar
librerias
# install.packages("tidyverse") # Paquete global para manipulavcion y analisis de datos
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# install.packages("forecast") # Para revisar tendencias y generar pronosticos
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
# install.packages("ggplot2") # Para generar graficas con mejor diseño
library(ggplot2)
Importat 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:
Tendencias: Ej. Aumento en las ventas de una tienda en
linea debido al crecimeinto de comercio electronico.
CLiclo: Ej. Las fluctraciones en las ventas de
automoviles a lo largo de los ciclos economicos (expansion y recesion).
Patron Estacional: Ej. Aumento en las ventas de jugetes
durante la navidad. Aletatorio: Ej. Caida 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 = "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 de la grafica anterior que la base de datos tiene
tendencia creciente y patron
estacional.
Generar Pronostico
# Ajuste de modelo
modelo <- auto.arima(serie_de_tiempo)
# Realizar pronostico a 12 meses
pronostico <- forecast(modelo, h=12)
# Grafica de 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 Prediccion
## 1 1961 445.6349
LS0tCnRpdGxlOiAiQWlyIFBhc3NhbmdlcnMiCmF1dGhvcjogIkFkcmlhbiBHYXJ6YSBHb256YWxleiIKZGF0ZTogIjIwMjQtMDktMTIiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogbHVtZW4KLS0tCgohW10oL1VzZXJzL21hY2Jvb2svRGVza3RvcC9kb3dubG9hZC5qcGcpCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpCmBgYAoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5Db250ZXh0bzwvc3Bhbj4KTGEgYmFzZSBkZSBkYXRvcyAqKkFpclBhc3NhbmdlcnMqKiBjb250aWVuZSBlbCBudW1lcm8gbWVuc3VhbCBkZSBwYXNhamVybyBhZXJlb3MgaW50ZXJuYWNpb25hbGVzIGVudHJlIDE5NDkgeSAxOTYwICgxNDQgb2JzZXJ2YWNpb25lcyBtZW5zdWFsZXMpLiBFc3RhIGJhc2UgZGUgZGF0b3MgZXMgYW1wbGlhbWVudGUgdXRpbGl6YWRhIHBhcmEgZWwgYW5hbGlzaXMgZGUgc2VyaWVzIGRlIHRpZW1wbywgcmVmbGVqYW5kbyBlbCBjcmVjaW1pZW50byBkZSBsYSBpbmR1c3RyaWEgZGUgbGEgYXZpYWNpb24gY29tZXJjaWFsIGRlc3B1ZXMgZGUgbGEgKlNlZ3VuZGEgR3VlcnJhIE11bmRpYWwqLgoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5JbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXJpYXM8L3NwYW4+CmBgYHtyfQojIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpICMgUGFxdWV0ZSBnbG9iYWwgcGFyYSBtYW5pcHVsYXZjaW9uIHkgYW5hbGlzaXMgZGUgZGF0b3MKbGlicmFyeSh0aWR5dmVyc2UpCiMgaW5zdGFsbC5wYWNrYWdlcygiZm9yZWNhc3QiKSAjIFBhcmEgcmV2aXNhciB0ZW5kZW5jaWFzIHkgZ2VuZXJhciBwcm9ub3N0aWNvcwpsaWJyYXJ5KGZvcmVjYXN0KQojIGluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKSAjIFBhcmEgZ2VuZXJhciBncmFmaWNhcyBjb24gbWVqb3IgZGlzZcOxbwpsaWJyYXJ5KGdncGxvdDIpCmBgYAoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5JbXBvcnRhdCBiYXNlIGRlIGRhdG9zPC9zcGFuPgpgYGB7cn0KZGYgPC0gYXMuZGF0YS5mcmFtZShBaXJQYXNzZW5nZXJzKQpzZXJpZV9kZV90aWVtcG8gPC0gQWlyUGFzc2VuZ2VycwpgYGAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+SWRlbnRpZmljYXIgcGF0cm9uZXMgbyB0ZW5kZW5jaWFzPC9zcGFuPgpMb3MgNCBjb21wb25lbnRlcyBkZSBsYXMgc2VyaWVzIGRlIHRpZW1wbyBzb246CioqVGVuZGVuY2lhczoqKiBFai4gQXVtZW50byBlbiBsYXMgdmVudGFzIGRlIHVuYSB0aWVuZGEgZW4gbGluZWEgZGViaWRvIGFsIGNyZWNpbWVpbnRvIGRlIGNvbWVyY2lvIGVsZWN0cm9uaWNvLgoqKkNMaWNsbzoqKiBFai4gTGFzIGZsdWN0cmFjaW9uZXMgZW4gbGFzIHZlbnRhcyBkZSBhdXRvbW92aWxlcyBhIGxvIGxhcmdvIGRlIGxvcyBjaWNsb3MgZWNvbm9taWNvcyAoZXhwYW5zaW9uIHkgcmVjZXNpb24pLgoqKlBhdHJvbiBFc3RhY2lvbmFsOioqIEVqLiBBdW1lbnRvIGVuIGxhcyB2ZW50YXMgZGUganVnZXRlcyBkdXJhbnRlIGxhIG5hdmlkYWQuCioqQWxldGF0b3JpbzoqKiBFai4gQ2FpZGEgZGUgbGFzIHZlbnRhcyBwb3IgdW4gZGVzYXN0cmUgbmF0dXJhbC4KCiFbXSgvVXNlcnMvbWFjYm9vay9EZXNrdG9wL2Rvd25sb2FkLnBuZykKCmBgYHtyfQpnZ3Bsb3QoZGYsIGFlcyh4PXRpbWUoc2VyaWVfZGVfdGllbXBvKSwgeT0oc2VyaWVfZGVfdGllbXBvKSkpICsgCiAgZ2VvbV9saW5lKGNvbG9yID0gImRhcmtncmVlbiIpICsgCiAgbGFicyh0aXRsZSA9ICJQYXNhamVyb3MgQWVyZW9zIEludGVybmFjaW9uYWxlcyIsIHg9IkHDsW8iLCB5PSJOdW1lcm8iKQpgYGAKUG9kZW1vcyBjb25jbHVpciBkZSBsYSBncmFmaWNhIGFudGVyaW9yIHF1ZSBsYSBiYXNlIGRlICBkYXRvcyB0aWVuZSAqKnRlbmRlbmNpYSBjcmVjaWVudGUqKiB5ICoqcGF0cm9uIGVzdGFjaW9uYWwqKi4KCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+R2VuZXJhciBQcm9ub3N0aWNvPC9zcGFuPgpgYGB7cn0KIyBBanVzdGUgZGUgbW9kZWxvCm1vZGVsbyA8LSBhdXRvLmFyaW1hKHNlcmllX2RlX3RpZW1wbykKCiMgUmVhbGl6YXIgcHJvbm9zdGljbyBhIDEyIG1lc2VzCnByb25vc3RpY28gPC0gZm9yZWNhc3QobW9kZWxvLCBoPTEyKQoKIyBHcmFmaWNhIGRlIGRhdG9zIGhpc3Rvcmljb3MgeSBlbCBwcm9ub3N0aWNvCmF1dG9wbG90KHByb25vc3RpY28pICsKICBsYWJzKHRpdGxlPSJQYXNhamVyb3MgQWVyZW9zIEludGVybmFjaW9uYWxlcyIsIHg9IkHDsW8iLCB5PSJOdW1lcm8iKQoKIyBHZW5lcmFyIHByZWRpY2Npb24gcGFyYSB1biBtZXMgZW4gZXNwZWNpZmljbwpkZl9wcmVkaWNjaW9uIDwtIGRhdGEuZnJhbWUoRmVjaGEgPSB0aW1lKHByb25vc3RpY28kbWVhbiksIFByZWRpY2Npb24gPSBhcy5udW1lcmljKHByb25vc3RpY28kbWVhbikpCmRmX3ByZWRpY2Npb25bZGZfcHJlZGljY2lvbiRGZWNoYSA9PSAxOTYxLjAsIF0gI0VuZXJvIGRlIDE5NjEKYGBgCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg==