I N T R O D U C C I Ó N

La api de BANXICO llamada “siebanxicor” no es nada mas que el sistema de informacion economica, publicada en 2018 y propiedad de DGIE - Banco de México, con la cual podremos acceder de forma rapida y a tiempo real a nuestros indicadores de interes.

LIBRERIAS

library(siebanxicor) # API DE BANXICO
library(tidyverse)   # MANIPULACION DE DATOS
library(lubridate)   # FECHA Y HORA
library(ggplot2)     # GRAFICOS
library(plotly)      # GRAFICO DINAMICO 
library(bookdown)    # INDICE FLOTANTE 

MANIPULACION DE DATOS

Ingresamos nuestro token que nos servira para poder accesar a los indicadores

setToken('dcaaadd6d87d5dbe4b8a76e47df134d861cee3e0c6df85283a32643572e66bb5')

Identificamos la serie economica de proporcionada por el catalogo de indicadores.

donde :

SG29 = Gastos Presupuestales del Sector Público Clasificación Económica Gasto presupuestario Gasto programable ; de periodicidad mensial en millones de pesos

SG9 = Ingresos y Gastos Presupuestales del Gobierno Federal Medición por Ingreso-Gasto, Flujos de Caja Ingreso total ; de periodicidad mensial en millones de pesos

idSeries <- c("SG29", "SG9")

para poder ver la informaicon de nuestras series de tiempo podemos acceder a los metadatos que daran mas detalles sobre el indice.

metadata <- getSeriesMetadata(idSeries)


metadata
##   idSerie
## 1     SG9
## 2    SG29
##                                                                                                              title
## 1                   Revenues and Expenditures of the Federal Government Accumulated monthly figures Total Revenues
## 2 Public Sector Budgetary Expenditures Accumulated monthly figures Budgetary Expenditures Programmable Expenditure
##    startDate    endDate frequency          dataType              unit
## 1 1977-01-01 2024-01-01   Monthly Accumulated flows Millions of Pesos
## 2 1977-01-01 2024-01-01   Monthly Accumulated flows Millions of Pesos

Usamos la fecha de hoy y un punto en el pasado para analizar nuestros resultados

hoy <- Sys.Date()


series <- getSeriesData(idSeries, '2000-01-01', hoy)

hacemos nuestro data frame y ocupamos na.omit para saltarnos los resultados que no tinen datos y asi poder graficar

df = as.data.frame(series)

df <- na.omit(df)

head(df)
##    SG29.date SG29.value   SG9.date SG9.value
## 1 2000-01-01    60942.5 2000-01-01   88732.2
## 2 2000-02-01   114182.6 2000-02-01  148705.1
## 3 2000-03-01   167687.1 2000-03-01  223882.8
## 4 2000-04-01   227775.5 2000-04-01  300131.5
## 5 2000-05-01   289353.8 2000-05-01  363623.1
## 6 2000-06-01   353551.5 2000-06-01  426376.1

limpieza del data frame, primero veremos que en la serie tenemos una columna con los mismos valores que es la de la fecha (SG29.date y SG9.date)

#eliminamos la columna 3 porque era la que nos estorbaba 
df <- df[ ,-c(3)]
str(df) # vemos propiedades 
## 'data.frame':    289 obs. of  3 variables:
##  $ SG29.date : Date, format: "2000-01-01" "2000-02-01" ...
##  $ SG29.value: num  60943 114183 167687 227776 289354 ...
##  $ SG9.value : num  88732 148705 223883 300132 363623 ...
head(df)
##    SG29.date SG29.value SG9.value
## 1 2000-01-01    60942.5   88732.2
## 2 2000-02-01   114182.6  148705.1
## 3 2000-03-01   167687.1  223882.8
## 4 2000-04-01   227775.5  300131.5
## 5 2000-05-01   289353.8  363623.1
## 6 2000-06-01   353551.5  426376.1

Grafico

Hacemos nuestro grafico para poder ver el comportamiento de nuestras series de tiempo

g = ggplot(df, aes(x = SG29.date)) +
     geom_line(aes(y = SG29.value, color = "gasto")) +
     geom_line(aes(y = SG9.value, color = "ingreso")) +
     labs(x = "Fecha", y = "Millones de Pesos", color =   "Series") +
     ggtitle("Ingreso vs Gasto 2000-2023") +
     theme_minimal() +
     scale_y_continuous(labels = scales::comma) # Esto ajusta     el formato de los números en el eje y


#grafico dinamico 

ggplotly(g)

Elaborado por FERNANDO LAZCANO CÁRDENAS

fuentes :

https://cran.r-project.org/web/packages/siebanxicor/siebanxicor.pdf

https://rpubs.com/ecodiegoale/api_banxico