
Series de tiempo
0. Conceptos
Una serie de tiempo es una colección de
observaciones sobre un determinado fenómeno efectuadas en monetos de
tiempo sucesivos, usualmente equiespaciados.
Ejemplos de series de tiempo son:
1. Precio de
acciones.
2. Niveles de inventario.
3. Rotación de personal.
4. Ventas.
1. Instalar paquetes y llamar
librerías
#install.packages("forecast")
library(forecast)
2. Crear la serie de tiempo
# Paso 1. Obtener los valores dependientes
produccion <- c(50,53,55,57,55,60)
# Paso 2. Agregar los valores anteriores a su tiempo correspondiente
serie_de_tiempo <- ts(data = produccion, start = c(2020,1), frequency = 4)
serie_de_tiempo
## Qtr1 Qtr2 Qtr3 Qtr4
## 2020 50 53 55 57
## 2021 55 60
3. Crear modelo ARIMA
# ARIMA: AutoRegressive Integrated Moving Average o Modelo Autorregresivo.
# Integrado de Media Móvil
# ARIMA (p,d,q)
# p = orden de auto regresión
# d = orden de integración (diferenciación)
# q = orden de promedio móvil
# ¿Cúando se usa?
#Cuando las estimaciones futuras, se explican por los datos de pasado.
#y no por variables independientes.
#Ejemplo: Tipo de Cambio.
modelo <- auto.arima(serie_de_tiempo, D = 1)
summary(modelo)
## Series: serie_de_tiempo
## ARIMA(0,0,0)(0,1,0)[4] with drift
##
## Coefficients:
## drift
## 1.5000
## s.e. 0.1768
##
## sigma^2 = 2.01: log likelihood = -2.84
## AIC=9.68 AICc=-2.32 BIC=7.06
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.03333332 0.5787923 0.3666667 0.03685269 0.6429133 0.06111111
## ACF1
## Training set -0.5073047
El error MAPE indica el error en %
4. Realizar el modelo
pronostico <- forecast(modelo, level= c(95), h=5)
pronostico
## Point Forecast Lo 95 Hi 95
## 2021 Q3 61 58.22127 63.77873
## 2021 Q4 63 60.22127 65.77873
## 2022 Q1 61 58.22127 63.77873
## 2022 Q2 66 63.22127 68.77873
## 2022 Q3 67 63.07028 70.92972

Banco Mundial
0. Concepto
El Banco Mundial (WB) es un organismo multinacional especializado en
finanzas.
En R se puede acceder a sus indicadoreesa través de la
librería WBI.
1. Instalar paquetes y llamar
librerías
#install.packages("WDI")
#install.packages("wbstats")
#install.packages("tidyverse")
library(WDI)
library(wbstats)
library(tidyverse)
library(dplyr)
2. Crear la serie de tiempo
# Paso 1. Obtener los valores dependientes: Producto Interno Bruto
gdp_data <- wb_data(country = "MX", indicator = "NY.GDP.MKTP.CD", start_date = 1973, end_date = 2022)
gdp_data <- gdp_data %>%
select(4,5)
# Paso 2. Agregar los valores anteriores a su tiempo correspondiente
serie_BM <- ts(data = gdp_data$NY.GDP.MKTP.CD, start = c(1973,1), frequency = 1)
serie_BM
## Time Series:
## Start = 1973
## End = 2022
## Frequency = 1
## [1] 5.528021e+10 7.200018e+10 8.800000e+10 8.887679e+10 8.191250e+10
## [6] 1.026473e+11 1.345296e+11 2.055770e+11 2.638021e+11 1.846036e+11
## [11] 1.561675e+11 1.842312e+11 1.952414e+11 1.345561e+11 1.475426e+11
## [16] 1.816112e+11 2.214031e+11 2.612537e+11 3.131397e+11 3.631578e+11
## [21] 5.007334e+11 5.278106e+11 3.600725e+11 4.109730e+11 5.004160e+11
## [26] 5.264997e+11 6.002330e+11 7.079099e+11 7.567029e+11 7.721097e+11
## [31] 7.293350e+11 7.822429e+11 8.774769e+11 9.753834e+11 1.052697e+12
## [36] 1.109987e+12 9.000470e+11 1.057801e+12 1.180487e+12 1.201094e+12
## [41] 1.274444e+12 1.315356e+12 1.171870e+12 1.078493e+12 1.158912e+12
## [46] 1.222406e+12 1.269010e+12 1.090515e+12 1.272839e+12 1.414187e+12
## attr(,"label")
## [1] GDP (current US$)
3. Crear modelo ARIMA
# ARIMA: AutoRegressive Integrated Moving Average o Modelo Autorregresivo.
# Integrado de Media Móvil
# ARIMA (p,d,q)
# p = orden de auto regresión
# d = orden de integración (diferenciación)
# q = orden de promedio móvil
# ¿Cúando se usa?
#Cuando las estimaciones futuras, se explican por los datos de pasado.
#y no por variables independientes.
#Ejemplo: Tipo de Cambio.
modelo <- auto.arima(serie_BM)
summary(modelo)
## Series: serie_BM
## ARIMA(0,1,0)
##
## sigma^2 = 7.381e+21: log likelihood = -1303.18
## AIC=2608.36 AICc=2608.44 BIC=2610.25
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 27179245230 85046847387 67623045592 4.943879 14.05421 0.980016
## ACF1
## Training set -0.01519178
El error MAPE indica el error en %
4. Realizar el modelo (5Y)
pronostico <- forecast(modelo, level= c(95), h=5)
pronostico
## Point Forecast Lo 95 Hi 95
## 2023 1.414187e+12 1.245806e+12 1.582568e+12
## 2024 1.414187e+12 1.176060e+12 1.652314e+12
## 2025 1.414187e+12 1.122543e+12 1.705832e+12
## 2026 1.414187e+12 1.077425e+12 1.750949e+12
## 2027 1.414187e+12 1.037676e+12 1.790699e+12

LS0tCnRpdGxlOiAiQWN0IDQuIDggU2VyaWVzIGRlIHRpZW1wbyIKYXV0aG9yOiAiWnVsZXljYSBTYXJhaHkgWmF5YXMgQmVsdHLDoW4iCmRhdGU6ICIyMDIzLTA5LTI5IgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6ICJzaW1wbGV4IgogICAgaGlnaGxpZ2h0OiAibW9ub2Nocm9tZSIKLS0tCiFbXSgvVXNlcnMvc2FyYWh5emF5YXMvTGlicmFyeS9Nb2JpbGUgRG9jdW1lbnRzL2NvbX5hcHBsZX5DbG91ZERvY3MvMS4gVEVDIC83IHNlbS9NNF9SYXVsIC9zZXJpZV9kZV90aWVtcG8uZ2lmKXt3aWR0aD03NTBweCBoZWlnaHQ9MzUwcHh9CgojIDxzcGFuIHN0eWxlID0gImNvbG9yOiBvcmFuZ2U7Ij5TZXJpZXMgZGUgdGllbXBvPC9zcGFuPgoKIyMgPHNwYW4gc3R5bGUgPSAiY29sb3I6IG9yYW5nZTsiPjAuIENvbmNlcHRvczwvc3Bhbj4KVW5hICoqc2VyaWUgZGUgdGllbXBvKiogZXMgdW5hIGNvbGVjY2nDs24gZGUgb2JzZXJ2YWNpb25lcyBzb2JyZSB1biBkZXRlcm1pbmFkbyBmZW7Ds21lbm8gZWZlY3R1YWRhcyBlbiBtb25ldG9zIGRlIHRpZW1wbyBzdWNlc2l2b3MsIHVzdWFsbWVudGUgZXF1aWVzcGFjaWFkb3MuIDxicj4KCioqRWplbXBsb3MgZGUgc2VyaWVzIGRlIHRpZW1wbyBzb246KiogPGJyPgoxLiBQcmVjaW8gZGUgYWNjaW9uZXMuIDxicj4KMi4gTml2ZWxlcyBkZSBpbnZlbnRhcmlvLiA8YnI+CjMuIFJvdGFjacOzbiBkZSBwZXJzb25hbC4gPGJyPgo0LiBWZW50YXMuIDxicj4KCgoKIyMgPHNwYW4gc3R5bGUgPSAiY29sb3I6IG9yYW5nZTsiPjEuIEluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXM8L3NwYW4+CmBgYHtyLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojaW5zdGFsbC5wYWNrYWdlcygiZm9yZWNhc3QiKQpsaWJyYXJ5KGZvcmVjYXN0KQpgYGAKCiMjIDxzcGFuIHN0eWxlID0gImNvbG9yOiBvcmFuZ2U7Ij4yLiBDcmVhciBsYSBzZXJpZSBkZSB0aWVtcG88L3NwYW4+CmBgYHtyfQojIFBhc28gMS4gT2J0ZW5lciBsb3MgdmFsb3JlcyBkZXBlbmRpZW50ZXMKcHJvZHVjY2lvbiA8LSBjKDUwLDUzLDU1LDU3LDU1LDYwKQoKCiMgUGFzbyAyLiBBZ3JlZ2FyIGxvcyB2YWxvcmVzIGFudGVyaW9yZXMgYSBzdSB0aWVtcG8gY29ycmVzcG9uZGllbnRlCnNlcmllX2RlX3RpZW1wbyA8LSB0cyhkYXRhID0gcHJvZHVjY2lvbiwgc3RhcnQgPSBjKDIwMjAsMSksIGZyZXF1ZW5jeSA9IDQpCnNlcmllX2RlX3RpZW1wbwoKYGBgCgojIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogb3JhbmdlOyI+My4gQ3JlYXIgbW9kZWxvIEFSSU1BPC9zcGFuPgpgYGB7cn0KIyBBUklNQTogQXV0b1JlZ3Jlc3NpdmUgSW50ZWdyYXRlZCBNb3ZpbmcgQXZlcmFnZSBvIE1vZGVsbyBBdXRvcnJlZ3Jlc2l2by4gCiMgSW50ZWdyYWRvIGRlIE1lZGlhIE3Ds3ZpbCAKIyBBUklNQSAocCxkLHEpCiMgcCA9IG9yZGVuIGRlIGF1dG8gcmVncmVzacOzbiAKIyBkID0gb3JkZW4gZGUgaW50ZWdyYWNpw7NuIChkaWZlcmVuY2lhY2nDs24pCiMgcSA9IG9yZGVuIGRlIHByb21lZGlvIG3Ds3ZpbCAKCiMgwr9Dw7phbmRvIHNlIHVzYT8KICAjQ3VhbmRvIGxhcyBlc3RpbWFjaW9uZXMgZnV0dXJhcywgc2UgZXhwbGljYW4gcG9yIGxvcyBkYXRvcyBkZSBwYXNhZG8uIAogICN5IG5vIHBvciB2YXJpYWJsZXMgaW5kZXBlbmRpZW50ZXMuIAogICNFamVtcGxvOiBUaXBvIGRlIENhbWJpby4gCgptb2RlbG8gPC0gYXV0by5hcmltYShzZXJpZV9kZV90aWVtcG8sIEQgPSAxKQoKc3VtbWFyeShtb2RlbG8pCgpgYGAKRWwgZXJyb3IgTUFQRSBpbmRpY2EgZWwgZXJyb3IgZW4gJSA8YnI+CgoKCiMjIDxzcGFuIHN0eWxlID0gImNvbG9yOiBvcmFuZ2U7Ij40LiBSZWFsaXphciBlbCBtb2RlbG88L3NwYW4+CmBgYHtyfQpwcm9ub3N0aWNvIDwtIGZvcmVjYXN0KG1vZGVsbywgbGV2ZWw9IGMoOTUpLCBoPTUpCnByb25vc3RpY28KCnBsb3QocHJvbm9zdGljbykKCgpgYGAKCiMgPHNwYW4gc3R5bGUgPSAiY29sb3I6IHJlZDsiPkJhbmNvIE11bmRpYWw8L3NwYW4+CgojIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogcmVkOyI+MC4gQ29uY2VwdG88L3NwYW4+CkVsIEJhbmNvIE11bmRpYWwgKFdCKSBlcyB1biBvcmdhbmlzbW8gbXVsdGluYWNpb25hbCBlc3BlY2lhbGl6YWRvIGVuIGZpbmFuemFzLiA8YnI+CkVuIFIgc2UgcHVlZGUgYWNjZWRlciBhIHN1cyBpbmRpY2Fkb3JlZXNhIHRyYXbDqXMgZGUgbGEgbGlicmVyw61hIFdCSS4gPGJyPgoKCiMjIDxzcGFuIHN0eWxlID0gImNvbG9yOiByZWQ7Ij4xLiBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzPC9zcGFuPgpgYGB7ciwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KCiNpbnN0YWxsLnBhY2thZ2VzKCJXREkiKQojaW5zdGFsbC5wYWNrYWdlcygid2JzdGF0cyIpCiNpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQoKbGlicmFyeShXREkpCmxpYnJhcnkod2JzdGF0cykKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoZHBseXIpCmBgYAoKIyMgPHNwYW4gc3R5bGUgPSAiY29sb3I6IHJlZDsiPjIuIENyZWFyIGxhIHNlcmllIGRlIHRpZW1wbzwvc3Bhbj4KYGBge3J9CiMgUGFzbyAxLiBPYnRlbmVyIGxvcyB2YWxvcmVzIGRlcGVuZGllbnRlczogUHJvZHVjdG8gSW50ZXJubyBCcnV0bwpnZHBfZGF0YSA8LSB3Yl9kYXRhKGNvdW50cnkgPSAiTVgiLCBpbmRpY2F0b3IgPSAiTlkuR0RQLk1LVFAuQ0QiLCBzdGFydF9kYXRlID0gMTk3MywgZW5kX2RhdGUgPSAyMDIyKQoKCmdkcF9kYXRhIDwtIGdkcF9kYXRhICU+JQogIHNlbGVjdCg0LDUpCgoKIyBQYXNvIDIuIEFncmVnYXIgbG9zIHZhbG9yZXMgYW50ZXJpb3JlcyBhIHN1IHRpZW1wbyBjb3JyZXNwb25kaWVudGUKc2VyaWVfQk0gPC0gdHMoZGF0YSA9IGdkcF9kYXRhJE5ZLkdEUC5NS1RQLkNELCBzdGFydCA9IGMoMTk3MywxKSwgZnJlcXVlbmN5ID0gMSkKc2VyaWVfQk0KCgoKCgoKYGBgCgojIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogcmVkOyI+My4gQ3JlYXIgbW9kZWxvIEFSSU1BPC9zcGFuPgpgYGB7cn0KIyBBUklNQTogQXV0b1JlZ3Jlc3NpdmUgSW50ZWdyYXRlZCBNb3ZpbmcgQXZlcmFnZSBvIE1vZGVsbyBBdXRvcnJlZ3Jlc2l2by4gCiMgSW50ZWdyYWRvIGRlIE1lZGlhIE3Ds3ZpbCAKIyBBUklNQSAocCxkLHEpCiMgcCA9IG9yZGVuIGRlIGF1dG8gcmVncmVzacOzbiAKIyBkID0gb3JkZW4gZGUgaW50ZWdyYWNpw7NuIChkaWZlcmVuY2lhY2nDs24pCiMgcSA9IG9yZGVuIGRlIHByb21lZGlvIG3Ds3ZpbCAKCiMgwr9Dw7phbmRvIHNlIHVzYT8KICAjQ3VhbmRvIGxhcyBlc3RpbWFjaW9uZXMgZnV0dXJhcywgc2UgZXhwbGljYW4gcG9yIGxvcyBkYXRvcyBkZSBwYXNhZG8uIAogICN5IG5vIHBvciB2YXJpYWJsZXMgaW5kZXBlbmRpZW50ZXMuIAogICNFamVtcGxvOiBUaXBvIGRlIENhbWJpby4gCgptb2RlbG8gPC0gYXV0by5hcmltYShzZXJpZV9CTSkKCnN1bW1hcnkobW9kZWxvKQoKCmBgYAoKRWwgZXJyb3IgTUFQRSBpbmRpY2EgZWwgZXJyb3IgZW4gJSA8YnI+CgoKIyMgPHNwYW4gc3R5bGUgPSAiY29sb3I6IHJlZDsiPjQuIFJlYWxpemFyIGVsIG1vZGVsbyAoNVkpPC9zcGFuPgpgYGB7cn0KcHJvbm9zdGljbyA8LSBmb3JlY2FzdChtb2RlbG8sIGxldmVsPSBjKDk1KSwgaD01KQpwcm9ub3N0aWNvCgpwbG90KHByb25vc3RpY28pCgoKYGBgCgoKCgoKCgoKCgoK