Análisis mensual de la inflación en el periodo Enero 2020 a Marzo 2023

A partir de los datos del Banco de México de la inflación mensual en el periodo Enero 2020 a Marzo 2023 se realizará un análisis de cómo ha variado la inflación.

Paquetes a utilizar para analizar la inflación

Se inserta el token de la página del Banco de México

setToken("c15ab0ab6be47d4798a72cdc28e7055afb6a1f6acd2e761b327cb728885d1895")

Se realiza la consulta de la serie Sp30578 para la inflación

idSeries <- c("Sp30578")
series <- getSeriesData(idSeries, '2020-01-01','2023-03-31')
series
## $SP30578
## $SP30578$date
##  [1] "2020-01-01" "2020-02-01" "2020-03-01" "2020-04-01" "2020-05-01"
##  [6] "2020-06-01" "2020-07-01" "2020-08-01" "2020-09-01" "2020-10-01"
## [11] "2020-11-01" "2020-12-01" "2021-01-01" "2021-02-01" "2021-03-01"
## [16] "2021-04-01" "2021-05-01" "2021-06-01" "2021-07-01" "2021-08-01"
## [21] "2021-09-01" "2021-10-01" "2021-11-01" "2021-12-01" "2022-01-01"
## [26] "2022-02-01" "2022-03-01" "2022-04-01" "2022-05-01" "2022-06-01"
## [31] "2022-07-01" "2022-08-01" "2022-09-01" "2022-10-01" "2022-11-01"
## [36] "2022-12-01" "2023-01-01" "2023-02-01" "2023-03-01"
## 
## $SP30578$value
##  [1] 3.24 3.70 3.25 2.15 2.84 3.33 3.62 4.05 4.01 4.09 3.33 3.15 3.54 3.76 4.67
## [16] 6.08 5.89 5.88 5.81 5.59 6.00 6.24 7.37 7.36 7.07 7.28 7.45 7.68 7.65 7.99
## [31] 8.15 8.70 8.70 8.41 7.80 7.82 7.91 7.62 6.85
inflacion <- series$SP30578$value
inflacion
##  [1] 3.24 3.70 3.25 2.15 2.84 3.33 3.62 4.05 4.01 4.09 3.33 3.15 3.54 3.76 4.67
## [16] 6.08 5.89 5.88 5.81 5.59 6.00 6.24 7.37 7.36 7.07 7.28 7.45 7.68 7.65 7.99
## [31] 8.15 8.70 8.70 8.41 7.80 7.82 7.91 7.62 6.85

Medidas de tendencia central

Media

mediainflacion=mean(inflacion)
mediainflacion
## [1] 5.795641

Esto nos lleva a un valor de rango 5.795641

Mediana

La mediana, la calculamos con la función median:

medianainflacion=median(inflacion)
medianainflacion
## [1] 6

Esto nos lleva a un valor de mediana 6.

Moda

La moda se calcula con la función mfv:

modainflacion=mfv(inflacion)
modainflacion
## [1] 3.33 8.70

El valor de la moda es 3.33, 8.7.

Mínimo

El mínimo se calcula con la función min:

minimoinflacion=min(inflacion)
minimoinflacion
## [1] 2.15

Esto nos lleva a un valor de mínimo 2.15.

Máximo

El máximo se calcula con la función max:

maximoinflacion=max(inflacion)
maximoinflacion
## [1] 8.7

Esto nos lleva a un valor de máximo 8.7.

Medidas de dispersión

Rango

El rango se calcula con la operación de max-min:

rangoinflacion=maximoinflacion-minimoinflacion
rangoinflacion
## [1] 6.55

Esto nos lleva a un valor de rango 6.55.

A continución se imprimen los valores del mínimo, máximo y rango

minimoinflacion
## [1] 2.15
maximoinflacion
## [1] 8.7
rangoinflacion
## [1] 6.55

Intervalos

Se calcula el número de intérvalos utilizando la regla de Sturges para calcularlos se utiliza la fórmula

k=1+(log2(n))

n=length(inflacion)
k=ceiling(1+(log2(n)))
k
## [1] 7

Esto nos lleva a tener los siguientes 7 intervalos.

Histograma

Se crea un histograma con los intervalos calculados.

hist(inflacion,breaks = k,main = "Histograma a partir de Regla de Sturges", xlab="Valores",ylab="Frecuencia")

### Amplitud de intervalos

Se calcula la amplitud de los intervalos (h), se divide el rango (r) entre el número de intervalos (k):

h=rangoinflacion/k
h
## [1] 0.9357143

La amplitud de los intervalos es 0.9357143.

Definir intervalos

Se definen los intervalos con la función seq.

intervalos=seq(minimoinflacion,maximoinflacion, by=h)
intervalos
## [1] 2.150000 3.085714 4.021429 4.957143 5.892857 6.828571 7.764286 8.700000

Tabla de frecuencias

Se realiza una tabla de frecuencias con los valores de n distribuidos en los intervalos, se utiliza la función cut.

frecuenciasinflacion=cut(inflacion,breaks = intervalos, include.lowest = TRUE, right = FALSE)
frecuenciasinflacion
##  [1] [3.09,4.02) [3.09,4.02) [3.09,4.02) [2.15,3.09) [2.15,3.09) [3.09,4.02)
##  [7] [3.09,4.02) [4.02,4.96) [3.09,4.02) [4.02,4.96) [3.09,4.02) [3.09,4.02)
## [13] [3.09,4.02) [3.09,4.02) [4.02,4.96) [5.89,6.83) [4.96,5.89) [4.96,5.89)
## [19] [4.96,5.89) [4.96,5.89) [5.89,6.83) [5.89,6.83) [6.83,7.76) [6.83,7.76)
## [25] [6.83,7.76) [6.83,7.76) [6.83,7.76) [6.83,7.76) [6.83,7.76) [7.76,8.7] 
## [31] [7.76,8.7]  [7.76,8.7]  [7.76,8.7]  [7.76,8.7]  [7.76,8.7]  [7.76,8.7] 
## [37] [7.76,8.7]  [6.83,7.76) [6.83,7.76)
## 7 Levels: [2.15,3.09) [3.09,4.02) [4.02,4.96) [4.96,5.89) ... [7.76,8.7]

Frecuencias por intervalo

Se contabilizan las frecuencias por cada intervalo para ordenar los datos, se utiliza la función table.

Tablafrecuenciasinflacion=table(frecuenciasinflacion)
Tablafrecuenciasinflacion
## frecuenciasinflacion
## [2.15,3.09) [3.09,4.02) [4.02,4.96) [4.96,5.89) [5.89,6.83) [6.83,7.76) 
##           2          10           3           4           3           9 
##  [7.76,8.7] 
##           8

Frecuencia acumulada

Se calcula la frecuencia acumulada para comprobar los datos n, se utiliza la función cumsum.

frecuenciaacumuladainflacion=cumsum(Tablafrecuenciasinflacion)
frecuenciaacumuladainflacion
## [2.15,3.09) [3.09,4.02) [4.02,4.96) [4.96,5.89) [5.89,6.83) [6.83,7.76) 
##           2          12          15          19          22          31 
##  [7.76,8.7] 
##          39

Marcas de clase

Se calculan las marcas de clase con la operación que se representa en la siguiente fórmula: c=(Li+Ls)/2

marcasclaseinflacion=(intervalos+(intervalos+h))/2
marcasclaseinflacion
## [1] 2.617857 3.553571 4.489286 5.425000 6.360714 7.296429 8.232143 9.167857

Cuartiles

Se calculan los cuartiles de los intervalos.

intervalos <- seq(minimoinflacion, maximoinflacion, by=h)
limites_inferiores= intervalos[-length(intervalos)]
limites_superiores= intervalos[-1]
letras <-LETTERS[1:length(limites_inferiores)]
variable_categorica <- cut(inflacion, breaks = intervalos, right = FALSE, labels = letras)

for (i in 1:length(limites_inferiores)) {
  nombre_inferior <- paste("limite_inferior", letras [i], sep = "_")
  assign(nombre_inferior, limites_inferiores[i])
  
  nombre_superior <- paste("limite_superior", letras [i], sep = "_")
  assign(nombre_superior, limites_superiores[i])
}
limites_inferiores
## [1] 2.150000 3.085714 4.021429 4.957143 5.892857 6.828571 7.764286
limites_superiores
## [1] 3.085714 4.021429 4.957143 5.892857 6.828571 7.764286 8.700000

Posición de los cuartiles

La posición de los cuartiles se obtiene con la fórmula Qk=k(n+1)/4

# Primer cuartil
n=40
k1=1
Q1=(k1*(n+1))/4
Q1
## [1] 10.25
# Segundo cuartil (mediana)
k2=2
Q2=(k2*(n+1))/4
Q2
## [1] 20.5
# Tercer cuartil
k3=3
Q3=(k3*(n+1))/4
Q3
## [1] 30.75

Rango intercuartilico (RI)

Se calcula el rango intercuartilico con la fórmula RI=Q3-Q1

rango_intercuartilico=Q3-Q1
rango_intercuartilico
## [1] 20.5

El rango intercuartilico es 20.5.

Varianza

Se calcula la varianza con la función var.

varianza=var(inflacion)
varianza
## [1] 4.024025

La varianza de los datos es 4.0240252.

Desviación estándar

Se calcula la desviación estándar con la función sd

desviacionestandar=sd(inflacion)
desviacionestandar
## [1] 2.005997

La desviación estándar de los datos es 2.0059973.

Media muestral

Se calcula la media muestral con la función mean.

media1=mean(inflacion)
media1
## [1] 5.795641

La media muestral es 5.795641.

Desviación media absoluta

La desviación media absoluta se calcula con la función mad.

dmabs=mad(inflacion)
dmabs
## [1] 2.831766

La desviación media absoluta es 2.831766.

Medidas de forma

Asimetría

La asimetría se calcula con la función skewness.

asimetria=skewness(inflacion)
asimetria
## [1] -0.1930972

La asimetría es -0.1930972.

Curtosis

La medida de forma curtosis se calcula con la función kurtosis.

curtosis=kurtosis(inflacion)
curtosis
## [1] 1.558767

El valor de curtosis es 1.5587665.

Grados de libertad

Se calculan los grados de libertad con la fórmula gradoslibertad=n-1.

gradoslibertad=n-1
gradoslibertad
## [1] 39

Los grados de libertad son 39.

Valores estándar Zi

Para obtener el valor de Zi se utilizan las tablas de distribución normal

Zi=qnorm(0.99767)
Zi
## [1] 2.829643

El valor de Zi es 2.8296428.

Teorema de Chebyshev

proporcion <- sum(abs(inflacion - medianainflacion) <=2*desviacionestandar)/ length(inflacion)
kc=2
limite_inferior=1-(1/k^2)
if (proporcion >= limite_inferior) { print("El teorema de Chebyshev se cumple para kc=2")} else {print("El teorema de Chebyshev no se cumple para kc=2")
  }
## [1] "El teorema de Chebyshev se cumple para kc=2"

Gráfica de los valores de inflacion

plot(inflacion,type="l",col="orange",ylab="Inflación",xlab="Datos")

Resumen de los datos

resumeninflacion=summary(inflacion)
resumeninflacion
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.150   3.730   6.000   5.796   7.635   8.700
resumen1 <- list(Media = mediainflacion, Mediana = medianainflacion, Moda = modainflacion, Varianza = varianza, DesviacionEstandar = desviacionestandar, DesviacionMediaAbsoluta = dmabs, Rango = rangoinflacion)
resumen1
## $Media
## [1] 5.795641
## 
## $Mediana
## [1] 6
## 
## $Moda
## [1] 3.33 8.70
## 
## $Varianza
## [1] 4.024025
## 
## $DesviacionEstandar
## [1] 2.005997
## 
## $DesviacionMediaAbsoluta
## [1] 2.831766
## 
## $Rango
## [1] 6.55

Stargazer de medidas de resumen

Media <- c(mediainflacion)
Mediana <- c(medianainflacion)
Moda <- c(modainflacion)
Varianza <- c(varianza)
DesviacionEstandar <- c(desviacionestandar)
DesviacionMediaAbsoluta <- c(dmabs)
Rango <- c(rangoinflacion)

misDatos <-data.frame(Media, Mediana, Moda, Varianza, DesviacionEstandar, DesviacionMediaAbsoluta, Rango)
misDatos
##      Media Mediana Moda Varianza DesviacionEstandar DesviacionMediaAbsoluta
## 1 5.795641       6 3.33 4.024025           2.005997                2.831766
## 2 5.795641       6 8.70 4.024025           2.005997                2.831766
##   Rango
## 1  6.55
## 2  6.55
stargazer(misDatos, type = "text")
## 
## ====================================================
## Statistic               N Mean  St. Dev.  Min   Max 
## ----------------------------------------------------
## Media                   2 5.796  0.000   5.796 5.796
## Mediana                 2 6.000  0.000     6     6  
## Moda                    2 6.015  3.797   3.330 8.700
## Varianza                2 4.024  0.000   4.024 4.024
## DesviacionEstandar      2 2.006  0.000   2.006 2.006
## DesviacionMediaAbsoluta 2 2.832  0.000   2.832 2.832
## Rango                   2 6.550  0.000   6.550 6.550
## ----------------------------------------------------

Análisis

La inflación es el crecimiento continuo de los precios de bienes y servicios existentes en una economía(Larroulet & Mochón, 1995), o también se refiere a la disminución del poder adquisitivo del dinero, los valores de la inflación están dados por los indicadores de la variación del Índice de Precios al Consumo (IPC) y el deflactor de Producto Interno Bruto (PIB) (Casani et al., 2009; González González et al., 2009), en este ensayo analizaremos la inflación en México desde enero del 2020 hasta marzo del 2023.

La tasa de inflación en enero del 2020 fue de 3.24 y la tasa de inflación actual es de 6.85, quiere decir que subió 3.61. en el periodo de análisis se observa un mínimo 2.15 (abril 2020) y un máximo de 8.7 (agosto-septiembre2022), el rango se encuentra en 5.79, la mediana es 6, la moda es de 3.33 y 8.7, una varianza de 4.02 y una desviación estándar de 2.0059.

En los últimos años en la base de datos del Banco de México se observa que la tasa de inflación aumenta y disminuye, sin embargo desde el 2020 se observa un aumento constante esto se debe a varias razones como lo son: los costes de los alimentos y energía después de la pandemia del Covid-19, la invasión de Rusia a Ucrania, cierre de fábricas, restricciones en puertos, congestión del transporte marítimo, escasez de contenedores y ausencia de trabajadores (Alvarez & Barrett, 2022; Markovitz, 2022), otras causas se deben a que las personas tienen más dinero para gastar, por lo tanto la demanda de los productos aumenta y la cantidad de bienes y servicios en el mercado es la misma.

En perspectiva, la tasa de inflación tenderá a disminuir, ya que los mercados se empiezan a estabilizar después de la crisis de la pandemia, además el Banco de México está apoyando aumentando las tasas de interés, estás ayudan a frenar la inflación, aunque afectan a los endeudados.

Referencias

Alvarez, J., & Barrett, P. (2022, April 28). La inflación se mantendrá elevada más tiempo por la guerra, la demanda y los mercados de trabajo. Fondo Monetario Internacional.

Casani, F., Llorente, A., & Pérez, E. (2009). Economía. Editorial Editex S.A.

González González, M. J., Pérez Zabaleta, A., Castejón Montijano, R., Méndez Pérez, E., Martínez Merino, J. L., Gómez Barroso, J. L., & Monchón Sáez, A. (2009). Introducción a la Economía.

Larroulet, C., & Mochón, F. (1995). Economia. McGraw Hill education.

Markovitz, G. (2022, May 18). ¿Por qué la inflación es tan alta y seguirá siéndolo? World Economic Forum.