Introducción al estudio. Este análisis tiene como objetivo principal examinar la distribución de los créditos otorgados por el FIFOMI (Fideicomiso de Fomento Minero) en 2024 en pesos mexicanos. Se desglosan los datos para entender patrones de inversión por Entidad Federativa y por Actividad Económica, incluyendo el número de empresas beneficiadas.

Accede al conjunto de datos haciendo clic aqui

Preparación de datos y estadísticas descriptivas carga y limpieza de Datos

# Carga de las librerías esenciales
library(tidyverse) # Para manipulación de datos (dplyr, ggplot2,etc.)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.6
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.1     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.2.0     
## ── 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
library(scales)    # Para formatear etiquetas de ejes
## 
## Adjuntando el paquete: 'scales'
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
library(knitr)
library(kableExtra)
## 
## Adjuntando el paquete: 'kableExtra'
## 
## The following object is masked from 'package:dplyr':
## 
##     group_rows
##Analisis estadistico. Montos en pesos mexicanos de los créditos o
#otorgados por el FIFOMI en el 2024. Desagregados por entidad federativa y actividad que se realiza. 
#Incluye el número de empresas a las que se les otorgó el crédito.

# Asegúrate de que el archivo 'apoyo.csv' esté en tu directorio de trabajo
datos <- read_csv("apoyo.csv")
## Rows: 4778 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): entidad_federativa, actividad
## dbl (3): monto_credito_pesos, numero_empresas, clave_actividad
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
cat("✅ Datos cargados correctamente. Dimensiones:", dim(datos), "\n\n")
## ✅ Datos cargados correctamente. Dimensiones: 4778 5
# 3. INSPECCIÓN INICIAL DE DATOS


cat("--- Estructura y Tipo de Variables ---\n")
## --- Estructura y Tipo de Variables ---
print(glimpse(datos))
## Rows: 4,778
## Columns: 5
## $ monto_credito_pesos <dbl> 15000000, 10000000, 8294289, 7000000, 5000000, 488…
## $ entidad_federativa  <chr> "Ciudad de Mexico", "Ciudad de Mexico", "Estado de…
## $ numero_empresas     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ clave_actividad     <dbl> 16, 16, 97, 16, 16, 18, 18, 18, 18, 18, 97, 97, 18…
## $ actividad           <chr> "Explotacion petreos", "Explotacion petreos", "Ind…
## # A tibble: 4,778 × 5
##    monto_credito_pesos entidad_federativa numero_empresas clave_actividad
##                  <dbl> <chr>                        <dbl>           <dbl>
##  1           15000000  Ciudad de Mexico                 0              16
##  2           10000000  Ciudad de Mexico                 0              16
##  3            8294289. Estado de Mexico                 0              97
##  4            7000000  Ciudad de Mexico                 0              16
##  5            5000000  Ciudad de Mexico                 0              16
##  6            4887898. Nuevo Leon                       0              18
##  7            4849901. Nuevo Leon                       0              18
##  8            4707546. Nuevo Leon                       0              18
##  9            4470967. Nuevo Leon                       0              18
## 10            4454161. Nuevo Leon                       0              18
## # ℹ 4,768 more rows
## # ℹ 1 more variable: actividad <chr>
cat("\n--- Resumen Estadístico Inicial ---\n")
## 
## --- Resumen Estadístico Inicial ---
# Muestra estadísticas para variables numéricas (min, max, media, cuartiles)
print(summary(datos))
##  monto_credito_pesos entidad_federativa numero_empresas clave_actividad
##  Min.   :     160    Length:4778        Min.   :0       Min.   :16.00  
##  1st Qu.:   15583    Class :character   1st Qu.:0       1st Qu.:33.00  
##  Median :   22552    Mode  :character   Median :0       Median :33.00  
##  Mean   :  232001                       Mean   :0       Mean   :41.19  
##  3rd Qu.:  103131                       3rd Qu.:0       3rd Qu.:33.00  
##  Max.   :15000000                       Max.   :0       Max.   :98.00  
##   actividad        
##  Length:4778       
##  Class :character  
##  Mode  :character  
##                    
##                    
## 
# 4. LIMPIEZA Y PREPARACIÓN DE DATOS

# 4.1. Limpieza de NA (Valores Faltantes)
datos_limpios <- na.omit(datos)
cat(paste("\nNúmero de filas eliminadas por NA:", nrow(datos) - nrow(datos_limpios), "\n"))
## 
## Número de filas eliminadas por NA: 0
# 4.2. Corrección y Conversión de Tipos
datos_limpios <- datos_limpios %>%
  mutate(
    # Asegurar que las categóricas sean factores
    entidad_federativa = as.factor(entidad_federativa),
    actividad = as.factor(actividad),
    clave_actividad = as.factor(clave_actividad)
  )

Estadísticas clave del monto de crédito

monto_desc <- datos_limpios %>%
  summarise(
    N_Registros = n(),
    Media_Credito = mean(monto_credito_pesos),
    Mediana_Credito = median(monto_credito_pesos),
    Desv_Estandar = sd(monto_credito_pesos),
    Min_Credito = min(monto_credito_pesos),
    Max_Credito = max(monto_credito_pesos)
  )

# Generación de la tabla formateada con knitr::kable para una excelente presentación
monto_desc %>%
  pivot_longer(everything(), names_to = "Métrica", values_to = "Valor") %>%
  mutate(Valor_Formato = case_when(
    str_detect(Métrica, "Credito|Desv_Estandar") ~ dollar(Valor, big.mark = ",", decimal.mark = ".", prefix = "$", suffix = " MXN"),
    TRUE ~ as.character(Valor)
  )) %>%
  select(Métrica, Valor_Formato) %>%
  knitr::kable(
    caption = "Tabla 1: Estadísticas Descriptivas del Monto de Crédito (Pesos Mexicanos)",
    col.names = c("Métrica", "Valor"),
    align = c('l', 'r')
  )
Tabla 1: Estadísticas Descriptivas del Monto de Crédito (Pesos Mexicanos)
Métrica Valor
N_Registros 4778
Media_Credito $232,001 MXN
Mediana_Credito $22,552 MXN
Desv_Estandar $619,420 MXN
Min_Credito $160 MXN
Max_Credito $15,000,000 MXN

Interpretación de Estadísticas Los datos muestran una alta asimetría en la distribución de los créditos. La Media del Crédito es significativamente superior a la Mediana, lo que indica que la mayoría de los créditos otorgados son de montos bajos, mientras que la media es elevada por un pequeño número de operaciones financieras grandes (outliers). La alta Desviación Estándar confirma la gran dispersión en los montos.

Visualización: Distribución de Montos

1. Distribución del Monto de Crédito (Histograma Logarítmico)

# Usar escala logarítmica para manejar la alta asimetría
ggplot(datos_limpios, aes(x = monto_credito_pesos)) +
  geom_histogram(bins = 50, fill = "#1f77b4", color = "white") +
  scale_x_log10(labels = scales::dollar_format(big.mark = ",", prefix = "$")) +
  labs(
    title = "Gráfico 1: Distribución del Monto de Crédito",
    subtitle = "Escala logarítmica para visualizar la concentración de créditos pequeños",
    x = "Monto de Crédito (Pesos)",
    y = "Frecuencia de Registros"
  ) +
  theme_minimal()

Interpretación El histograma confirma la interpretación estadística: hay una fuerte concentración de créditos pequeños en el extremo izquierdo. La escala logarítmica es esencial para ver la forma de la distribución, demostrando que el programa crediticio logra una amplia cobertura con muchas operaciones de bajo importe.

2. Monto de crédito por entidad federativa (Boxplot)

ggplot(datos_limpios, aes(y = entidad_federativa, x = monto_credito_pesos, fill = entidad_federativa)) +
  geom_boxplot(outlier.shape = 1, alpha = 0.7) + 
  scale_x_continuous(labels = scales::dollar_format(big.mark = ",", prefix = "$")) +
  labs(
    title = "Gráfico 2: Distribución del Monto de Crédito por Entidad Federativa",
    subtitle = "Ordenado por la mediana del monto de crédito (valor típico)",
    x = "Monto de Crédito (Pesos)",
    y = "Entidad Federativa"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

Interpretación Este gráfico permite comparar la estructura de los créditos entre estados. Las entidades en la parte superior tienen una mediana más alta (la línea central de la caja), lo que significa que el crédito típico otorgado en esos estados es mayor. La longitud de la caja y la presencia de outliers indican la variabilidad y el riesgo potencial de los montos dentro de cada región.

3. Monto de crédito por actividad económica (Boxplot Logarítmico)

ggplot(datos_limpios, aes(y = actividad, x = monto_credito_pesos, fill = actividad)) +
  geom_boxplot(outlier.shape = 1, alpha = 0.7) +
  scale_x_log10(labels = scales::dollar_format(big.mark = ",", prefix = "$")) +
  labs(
    title = "Gráfico 3: Distribución del Monto de Crédito por Actividad Económica",
    subtitle = "Actividades ordenadas por la mediana del monto de crédito (Escala Logarítmica)",
    x = "Monto de Crédito (Pesos)",
    y = "Actividad Económica"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

Interpretación La visualización sectorial ayuda a identificar qué actividades económicas reciben consistentemente montos de crédito más altos (mediana superior). La escala logarítmica permite ver la distribución de los créditos en sectores con amplia variación de montos.

Visualización: frecuencia e inversión total

4. Frecuencia de créditos por entidad federativa

frecuencia_entidades<-as.data.frame(table(datos_limpios$entidad_federativa))
frecuencia_entidades <- frecuencia_entidades %>%
  rename(entidad_federativa=Var1,Frecuencia=Freq)

ggplot(frecuencia_entidades, aes(x = Frecuencia, y = reorder(entidad_federativa, Frecuencia))) +
  geom_col(fill = "#2ca02c") + 
  labs(
    title = "Gráfico 4: Frecuencia de Créditos por Entidad Federativa",
    subtitle = "Número de empresas o registros de crédito otorgados",
    x = "Número de Créditos (Registros)",
    y = "Entidad Federativa"
  ) +
  theme_minimal() +
  scale_x_continuous(labels = scales::comma)

#grafica
kable(frecuencia_entidades,col.names = c("Entidad federativa","Número de creditos (registros)"))
Entidad federativa Número de creditos (registros)
Aguascalientes 347
Baja California Sur 4
Ciudad de Mexico 4
Estado de Mexico 31
Nuevo Leon 4054
Quintana Roo 284
Sonora 54

Interpretación Las entidades en la parte superior del gráfico representan la máxima penetración en términos de número de operaciones y empresas beneficiadas, independientemente del monto individual de los créditos.

5. Monto total acumulado por actividad económica

# Calcular el monto total sumado por actividad
monto_total_actividad <- datos_limpios %>%
  group_by(actividad) %>%
  summarise(Monto_Total = sum(monto_credito_pesos)) %>%
  ungroup()

ggplot(monto_total_actividad, aes(x = Monto_Total, y = reorder(actividad, Monto_Total))) +
  geom_col(fill = "#d62728") +
  labs(
    title = "Gráfico 5: Monto Total Acumulado por Actividad Económica",
    subtitle = "Identificación de los sectores con mayor inversión financiera total",
    x = "Monto Total Acumulado (Pesos)",
    y = "Actividad Económica"
  ) +
  theme_minimal() +
  scale_x_continuous(labels = scales::dollar_format(big.mark = ",", prefix = "$", scale = 1e-6, suffix = " Millones"))

# Crear una tabla sencilla

kable(monto_total_actividad,col.names = c("Actividad","Monto total(millones)"))
Actividad Monto total(millones)
Explotacion arena 51730168
Explotacion minerales metǭlicos 296264663
Explotacion petreos 37000000
Industria construccion 671104627
Produccion tornillos 10399385
Proveedor industria construccion 42000000

Interpretación Este es el indicador de impacto financiero. Muestra qué sectores económicos concentran la mayor parte de la inversión total del FIFOMI. Es crucial comparar este resultado con el Gráfico 3 (mediana) para determinar si la alta inversión se debe a muchos créditos pequeños o a pocos créditos masivos.

6. Monto total acumulado por entidad federativa

#. Calcular el monto total sumado por Entidad Federativa
monto_total_entidad <- datos_limpios %>%
  group_by(entidad_federativa) %>%
  summarise(Monto_Total = sum(monto_credito_pesos)) %>%
  ungroup()

ggplot(monto_total_entidad, aes(x = Monto_Total, y = reorder(entidad_federativa, Monto_Total))) +
  geom_col(fill = "#ff7f0e") +
  labs(
    title = "Gráfico 6: Monto Total Acumulado por Entidad Federativa",
    subtitle = "Distribución del volumen financiero total entre los estados",
    x = "Monto Total Acumulado (Pesos)",
    y = "Entidad Federativa"
  ) +
  theme_minimal() +
  scale_x_continuous(labels = scales::dollar_format(big.mark = ",", prefix = "$", scale = 1e-6, suffix = " Millones"))

# Crear una tabla sencilla

kable(monto_total_entidad,col.names = c("Entidad federativa","Monto total(millones)"))
Entidad federativa Monto total(millones)
Aguascalientes 337717218
Baja California Sur 8000000
Ciudad de Mexico 37000000
Estado de Mexico 21864294
Nuevo Leon 329044831
Quintana Roo 276122500
Sonora 98750000

Interpretación Este gráfico contrasta directamente con el Gráfico 4. Muestra dónde se dirige el capital total. Las entidades con las barras más largas son las que reciben el mayor volumen de inversión. Si un estado tiene alta frecuencia (G4) pero bajo monto total (G6), su foco es el microcrédito; si tiene bajo G4 pero alto G6, recibe pocos proyectos, pero de gran escala.

Conclusión final y resultados del estudio

El análisis detallado de los créditos FIFOMI 2024 revela una estrategia dual en la colocación de recursos:

Foco en Cobertura: El programa logra una alta capilaridad, llegando a un gran número de beneficiarios a través de muchos créditos de bajo monto (evidenciado por la alta frecuencia y la diferencia entre media y mediana).

Concentración de Capital: Gran parte del presupuesto total se concentra en un grupo limitado de Entidades Federativas y Actividades Económicas, a través de proyectos de alto valor.

Resultado final

El estudio permite a las autoridades del FIFOMI evaluar si la distribución actual de capital y operaciones se alinea con sus objetivos estratégicos de fomento, identificando claramente las regiones y sectores que impulsan el volumen total de inversión y aquellos que maximizan la cobertura a nivel de pequeñas empresas.