NSMX Tercera aproximación

Autor/a

Jorge Cornick, 11 de octubre 2025

Carga de bibliotecas
pacman::p_load(
  tidyverse, here, forcats, zoo, scales, knitr, gt, strucchange, seasonal
)

Mirada inicial

¿Qué nos dicen los datos sobre el NS en México? En este documento se aborda este tema desde la perspectiva de datos estadísticos en distintos niveles de agregación por producto o geografía1. Este es un primer paso en el análisis, que luego procederá a un mayor nivel de detalle en dos sentidos:

  • Desagregación de productos al nivel necesario para identificar el comportamiento específico de aquellos en los que los Estados Unidos a impuesto tarifas extraordinarias a las importaciones provenientes de China.
  • Desagregación regional que trate por separado las municipalidades que conforman la Zona Libre de la Frontera.

En esta mirada inicial se analizan:

  • El comportamiento de las exportaciones
  • El comportamiento de las importaciones
  • La inversión extranjera directa
  • Diversos indicadores relacionados con las empresas del régimen IMMEX

Exportaciones por destino INEGI

Código
xm <- readRDS(here::here("RDS", "MexXMPaisINEGI.rds"))
gt_metadata(xm)
Metadatos de la Fuente
Atributo Valor
name inegi_foreign_trade_country
measures Trade Value
table_es Comercio exterior (INEGI) por países
table_en Foreign Trade (INEGI) by Country
subtopic Hidden
topic_es Comercio exterior
topic_en Foreign Trade
source_name Instituto Nacional de Estadística y Geografía
source_link https://www.inegi.org.mx/sistemas/bie/

Valores

La Figura 1 muestra la evolución de las exportaciones mexicanas a Estados Unidos y el resto del mundo. El paquete strucchange fue utilizado para evaluar puntos de cambio estructural usando el Criterio de Información Bayesiano (BIC por sus siglas en inglés) 2, que permitió identificar un punto de quiebre para las exportaciones a Estados Unidos en 2021, de manera que en el gráfico se muestra la tendencia lineal para cada uno de los dos subperíodos resultantes. El mismo paquete permitió identificar dos puntos de quiebre en las exportaciones a otros destinso: 2006 y 2021 (que no se muestran en el gráfico). El lector interesado en el código y los resultados los puede visualizar haciendo “click” en la Nota siguiente.

Código
aggregated_df <- xm |>
  select(-Importaciones) |>
  mutate(Pais = if_else(Pais == "USA", "USA", "Otros")) |>
  group_by(Año, Pais) |>
  summarise(Exportaciones = sum(Exportaciones), .groups = 'drop')

usa_data <- aggregated_df |>
  filter(Pais == "USA")

otros_data <- aggregated_df |> 
  filter(Pais == "Otros")

bp_usa <- breakpoints(Exportaciones ~ Año, data = usa_data)
bp_otros <- breakpoints(Exportaciones ~ Año, data = otros_data)

# Años de cambio de tendencia exportaciones a otros destinos
bp_usa

     Optimal 2-segment partition: 

Call:
breakpoints.formula(formula = Exportaciones ~ Año, data = usa_data)

Breakpoints at observation number:
29 

Corresponding to breakdates:
0.8787879 
Código
usa_data$Año[bp_usa$breakpoints]
[1] 2021
Código
bp_otros

     Optimal 3-segment partition: 

Call:
breakpoints.formula(formula = Exportaciones ~ Año, data = otros_data)

Breakpoints at observation number:
14 29 

Corresponding to breakdates:
0.4242424 0.8787879 
Código
otros_data$Año[bp_otros$breakpoints]
[1] 2006 2021
Exportaciones USA y resto
xm |> 
  select(-Importaciones) |> 
  filter(Año < 2025) |> 
  mutate(Pais = if_else(Pais == "USA","USA","Otros")) |> 
  group_by(Año, Pais) |> 
  summarize(Exportaciones = sum(Exportaciones/1000000000),
            .groups = 'drop') |> 
  
ggplot(aes(Año, Exportaciones, color = Pais)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  scale_x_continuous(
      breaks = seq(from =1993, to = 2024, by = 2),
      expand = c(0,0)) +
  scale_y_continuous(breaks = seq(from = 0, to = 600, by = 100)) +
  geom_line(linewidth = 1) +
  geom_smooth(
    data = \(x) x |> filter(Año < 2022, Pais == "USA"),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3) +
  geom_smooth(
    data = \(x) x |> filter(Año > 2020, Pais == "USA"),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3) +
  labs(
    x = "",
    y = "", 
    color = NULL,
    caption = "J.Cornick con base en INEGI ") +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "bottom")
Figura 1: México: distribución de las exportaciones, USA y resto del mundo, 1994-2024
(miles de millones de US $)

Distribución porcentual

En la Figura 2 se presenta una visualización alternativa de la misma información. En esta visualización, es obvio el incremento del peso porcencual de las exportaciones a Estados Unidos desde 1993 hasta 2001, año de ingreso de China a la OMC. A partir de ese año, el perso relativo de los Estados Unidos decrece y alcanza su punto más bajo en 2011. A partir de allí se inicia una nueva fase de incremento, sin que la participación porcentual haya alcazado, en 2024 todavía, el mismo nivel que llegó a tener en 2001.

Destribucion exportaciones USA y resto
xm |> 
  select(-Importaciones) |> 
  filter(Año < 2025) |> 
  mutate(Pais = if_else(Pais == "USA","USA","Otros")) |> 
  group_by(Año, Pais) |> 
  summarize(Exportaciones = sum(Exportaciones/1000),
            .groups = 'drop') |> 
  
ggplot(aes(Año, Exportaciones, fill = Pais)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  scale_fill_brewer(palette = "Paired") +
  scale_x_continuous(
      breaks = seq(from =1993, to = 2024, by = 2),
      expand = c(0,0)) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), 
    labels = scales::percent,
    expand = c(0,0)) +
  geom_col(position = "fill") +
  labs(
    x = "",
    y = "", 
    fill = NULL,
    caption = "J.Cornick con base en INEGI") +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "bottom")
Figura 2: México: distribución de las exportaciones, USA y resto del mundo, 1994-2024

Si desagregamos la información un poco más y representamos de manera individual no solo las exportaciones a Estados Unidos sino también las destinadas a los seis principales destinos siguientes (y recalculamos la categoría “Otros”) el peso prepoderante de los Estados Unidos es aún más evidente: esos otros seis destinos no llegan a representar ni el 10% de las exportaciones mexicanas en 2024. El resto de los países del mundo constituye aproximadamente otro 10%, como se muestra en la Figura 3. Datos para años seleccionados se presentan en la ?@tbl-usaX.

Calculo distribución porcentual exportaciones por destino
# En el gráfico anterior ggplot() calcula los porcentajes "detrás de bambalinas" y aunque la representación gráfica es correcta, no podemos acceder a los números propiamente dichos.  por esta razón, aquí se calcula porcentajes de manera explícita, y en el próximo bloque de código se utilizan para calcular los porcentajes de exportación correspondientes a Estdos unidos en años específicos

xm_percentages <- xm |>
  filter( Año < 2025) |> 
  mutate(
    lump_weight = if_else(Año >= 2020, Exportaciones, 0),
    Pais = fct_lump_n(
      f = Pais,
      n = 7,
      w = lump_weight,
      other_level = "Otros")
  ) |>
  group_by(Año, Pais) |> 
  summarise(
    Exportaciones = sum(Exportaciones, na.rm = TRUE),
    .groups = "drop"
  ) |> 
  group_by(Año) |>
  mutate(percent_valor = Exportaciones / sum(Exportaciones, na.rm = TRUE)) |>
  ungroup() |> 
  mutate(Pais = fct_reorder(Pais, percent_valor, .fun = last))
Distribución exportaciones
ggplot(xm_percentages, aes(x = Año, y = percent_valor, fill = Pais)) +
  theme_bw() + 
  scale_fill_brewer(palette = "Spectral") +
  geom_col(position = "stack") + 
  scale_x_continuous(
    breaks = seq(from = 1993, to = 2025, by = 2),
    expand = c(0,0)) + 
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), 
    labels = scales::percent,
    expand = c(0,0)) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",
    linetype = "dotted",
    linewidth = 0.25) +
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base de INEGI") +
  theme(
    legend.position = "bottom",
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
  guides(fill = guide_legend(reverse = TRUE,nrow = 1))
Figura 3: Mexico, distribucion porcentual de las exportaciones, 1993 - 2024
Tabla 1: México, exportaciones a principales socios comericales
Porcentaje del total de exportaciones, años seleccionados
País 1993 2010 2017 2021 2024
USA 82.7% 80.0% 79.9% 80.7% 83.1%
Canadá 3.0% 3.6% 2.8% 2.6% 3.1%
China 0.1% 1.4% 1.6% 1.9% 1.6%
Alemania 0.8% 1.2% 1.7% 1.5% 1.2%
CoreaS 0.1% 0.3% 0.8% 1.4% 1.0%
España 1.7% 1.3% 1.0% 1.0% 0.9%
Japón 1.4% 0.6% 1.0% 0.8% 0.7%

Exportaciones por Sección HS

En esta sección se examina la evolución de las exportaciones por producto, desagregado a nivel de Sección del Sistema Armonizado. En la nota que sigue se pueden consultar las definiciones de estas secciones.

Existen dos fuentes de datos de exportaciones por Sección del HS, con diferencias importantes entre ellas.

  • Los datos del INEGI arrancan en 1993, y no incluyen la Sección 19: Armas.
  • Los datos del BCCM arrancan en 2006 e incluyen la sección 19
  • Además, la relación entre los capítulos 16 (Máquinas) y 17 (Transporte) es muy distinta en cada una de estas fuentes. Mientras que en los datos de INEGI las exportaciones de Máquinas representan menos de 1.5 veces el valor de las de Transporte, en los datos del BCCM representan 2.5 veces o más las de Transporte

Al momento de redactar este informe no está clara la fuente de la discrepancia, por lo que se presentan los datos de ambas fuentes.

Definición de las secciones

Como en los gráficos y tablas siguientes se usan nombres abreviados para las secciones, conviene recordar los nombres completo.

El Sistema Armonizado de Designación y Codificación de Mercancías se divide en 21 secciones. Estas agrupan los productos según su origen o materia constitutiva, yendo de lo más simple (animales vivos) a lo más elaborado (objetos de arte).

Lista de Secciones del Sistema Armonizado

Sección I: Animales vivos y productos del reino animal.

Sección II: Productos del reino vegetal.

Sección III: Grasas y aceites animales o vegetales; productos de su desdoblamiento; grasas alimenticias elaboradas; ceras de origen animal o vegetal.

Sección IV: Productos de las industrias alimentarias; bebidas, líquidos alcohólicos y vinagre; tabaco y sucedáneos del tabaco elaborados.

Sección V: Productos minerales.

Sección VI: Productos de las industrias químicas o de las industrias conexas.

Sección VII: Plásticos y sus manufacturas; caucho y sus manufacturas.

Sección VIII: Pieles, cueros, peletería y manufacturas de estas materias; artículos de talabartería o guarnicionería; artículos de viaje, bolsos de mano y continentes similares; manufacturas de tripa.

Sección IX: Madera, carbón vegetal y manufacturas de madera; corcho y sus manufacturas; manufacturas de espartería o cestería.

Sección X: Pasta de madera o de las demás materias fibrosas celulósicas; papel o cartón para reciclar (desperdicios y desechos); papel y sus aplicaciones.

Sección XI: Materias textiles y sus manufacturas.

Sección XII: Calzado, sombreros y demás tocados, paraguas, quitasoles, bastones, látigos, fustas, y sus partes; plumas preparadas y artículos de plumas; flores artificiales; manufacturas de cabello.

Sección XIII: Manufacturas de piedra, yeso fraguable, cemento, amianto (asbesto), mica o materias análogas; productos cerámicos; vidrio y sus manufacturas.

Sección XIV: Perlas finas (naturales) o cultivadas, piedras preciosas o semipreciosas, metales preciosos, chapados de metal precioso (placas) y manufacturas de estas materias; bisutería; monedas.

Sección XV: Metales comunes y manufacturas de estos metales (incluye Rieles).

Sección XVI: Máquinas y aparatos, material eléctrico y sus partes; aparatos de grabación o reproducción de sonido, aparatos de grabación o reproducción de imagen y sonido en televisión, y las partes y accesorios de estos aparatos.

Sección XVII: Vehiculos, aeronaves, embarcaciones y equipo de transporte.

Sección XVIII: Instrumentos y aparatos de óptica, fotografía o cinematografía, de medida, control o precisión; instrumentos y aparatos medicoquirúrgicos; aparatos de relojería; instrumentos musicales; partes y accesorios de estos instrumentos o aparatos.

Sección XIX: Armas, municiones, y sus partes y accesorios.

Sección XX: Mercancías y productos diversos.

Sección XXI: Objetos de arte o colección y antigüedades.

Datos INEGI

Carga de datos y metadatos
xmp <- readRDS(here::here("RDS", "MexExpSecINEGI.rds"))
gt_metadata(xmp)
Metadatos de la Fuente
Atributo Valor
name inegi_foreign_trade_product
measures Trade Value
topic_en Foreign Trade
table_en Foreign Trade (INEGI) by Product
topic_es Comercio exterior
subtopic Hidden
table_es Comercio exterior (INEGI) por producto
source_name Instituto Nacional de Estadística y Geografía
source_link https://www.inegi.org.mx/sistemas/bie/

La Figura 4 muestra esta información en términos de valores, mientras que en la Figura 5 se presenta la misma información en términos de proporciones.

Código
xmp |>
  mutate(Sección = fct_other(Sección, keep = top_secciones, other_level = "Otros")) |>
  group_by(Año, Sección) |>
  summarize(
    Exportaciones = sum(Exportaciones, na.rm = TRUE),
    .groups = "drop"
  ) |> 
  mutate(Sección = fct_reorder(Sección, desc(Exportaciones), .fun = last, .desc = TRUE)) |>
  filter(Año < 2025) |>
  
ggplot(aes(Año, Exportaciones/1000000000, color = Sección)) +
  theme_bw() +
  scale_color_brewer(palette = "Spectral") +
  scale_x_continuous(
      breaks = seq(from =1993, to = 2024, by = 2),
      expand = c(0,0)) +
   scale_y_continuous(
    breaks = seq(from = 0, to = 250, by = 25)
  ) +
  geom_line(linewidth = 1) + 
  labs(
    x = "",
    y = "",
    color = "",
    caption = "J.Cornick con base en INEGI" ) +
  guides(color = guide_legend(reverse = TRUE, nrow = 1)) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
        legend.position = "bottom")
Figura 4: Mexico, exportaciones principales productos, 1993 - 2024
(en miles de millones US $)
Código
xmp |>
  mutate(Sección = fct_other(Sección, keep = top_secciones, other_level = "Otros")) |>
  group_by(Año, Sección) |>
  summarize(
    Exportaciones = sum(Exportaciones, na.rm = TRUE),
    .groups = "drop"
  ) |> 
  mutate(Sección = fct_reorder(Sección, desc(Exportaciones), .fun = last, .desc = TRUE)) |>
  filter(Año < 2025) |>

ggplot(aes(Año, Exportaciones/1000000000, fill = Sección)) +
  theme_bw() +
  scale_fill_brewer(palette = "Spectral") +
  scale_x_continuous(
      breaks = seq(from =1993, to = 2024, by = 2),
      expand = c(0,0)) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), 
    labels = scales::percent,
    expand = c(0,0)) +
  geom_area(position = "fill",alpha = 0.8) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",                      
    linetype = "dotted",
    linewidth = 0.25) +
  labs(
    x = "",
    y = "",
    fill = NULL,
    caption = "J.Cornick con base en INEGI" ) +
  guides(fill = guide_legend(reverse = TRUE, nrow = 1)) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1), 
        legend.position = "bottom")
Figura 5: Mexico, distribución porcentual de lasexportaciones productos, 1993 - 2024
Cálculo de proporciones
prod_percentages <- xmp |>
  mutate(Secciión = fct_other(Sección, keep = top_secciones, other_level = "Otros")) |> 
  group_by(Año, Sección) |> 
  summarise(
    across(where(is.numeric), \(x) sum(x, na.rm = TRUE)),
    .groups = "drop"
  ) |> 
  group_by(Año, Sección) |>
  summarise(Exportaciones = sum(Exportaciones, na.rm = TRUE), .groups = "drop") |>
  group_by(Año) |>
  mutate(percent_valor = Exportaciones / sum(Exportaciones, na.rm = TRUE)) |>
  ungroup() |>
  mutate(Sección = fct_reorder(Sección, Exportaciones, .fun = sum, .desc = TRUE))

En la Tabla 2 se muestran los porcentajes a cada Sección como proporción del total de las exportaciones en 1993, 2001, 2018 y 2024.

De punta a punta, la participación de Instrumentos casi se duplica, mientras que la de Transportes de incrementa en un 80%, mientras que la de máquinas se reduce en un 12% y la de minerales se reduce en un 39%.

Desde 1993 hasta 2001, se incrementan la participación de Instrumentos, Máquinas y Transporte, pero Máquinas decrece fuertemente de allí en adelante, y se mantiene casi en el mismo nivel entre 2018 y 2024. Transporte crece fuertemente entre 2001 y 2018, pero solo moderadamente después. En resumen, estos datos con compatibles con un efecto positivo pero modesto de los aranceles impuestos a China por Estados Unidos a partir de 2018 sobre Instrumentos, Máquinas y Transporte.

Es posible que los efectos sean más marcados si el análisis se hace a nivel de Capítulos en vez de Secciones, y a esta tarea se dedica la sección siguiente.

De punta a punta, la participación de Instrumentos casi se duplica, mientras que la de Transportes de incrementa en un 80%, mientras que la de máquinas se reduce en un 12% y la de minerales se reduce en un 39%.

Tabla 2: Distribucion porcentual de las exportacions por Sección
y cambio en puntos porcentuales 2024 - 1993
Sección 1993 2001 2018 2024 24 - 93
Máquinas 36.6% 42.4% 35.6% 35.4% −1.2 pp
Transporte 13.8% 18.0% 26.8% 27.4% 13.6 pp
Minerales 14.8% 8.5% 8.2% 6.4% −8.4 pp
Instrumentos 2.4% 3.3% 4.4% 5.0% 2.6 pp
Alimentos 1.8% 1.9% 3.2% 4.1% 2.3 pp
Rieles 5.9% 4.4% 4.3% 4.0% −1.9 pp
Vegetales 4.0% 2.3% 3.4% 3.6% −0.4 pp
Plásticos 2.9% 2.3% 2.9% 2.9% 0.0 pp
Otros 3.0% 3.4% 3.1% 2.8% −0.2 pp
Quimicos 3.9% 2.9% 2.3% 2.3% −1.5 pp
MPreciosos 0.6% 0.5% 1.5% 1.5% 0.9 pp
Textiles 4.0% 6.4% 1.5% 1.5% −2.5 pp
Animales 1.7% 0.8% 1.0% 0.9% −0.8 pp
Piedra 1.5% 1.2% 0.9% 0.9% −0.6 pp
Papel 1.2% 0.8% 0.5% 0.5% −0.8 pp
CalzSomb 0.6% 0.3% 0.2% 0.2% −0.4 pp
Animal_Veg 0.1% 0.0% 0.1% 0.2% 0.1 pp
Pieles 0.4% 0.3% 0.2% 0.2% −0.3 pp
Madera 0.8% 0.2% 0.1% 0.1% −0.6 pp
J.Cornick con base en INEGI

Datos BCMM

Carga de datos y metadatos
xmpB <- readRDS(here::here("RDS", "MexExpSecBCMM.rds" ))
gt_metadata(xmpB)
Metadatos de la Fuente
Atributo Valor
name economy_foreign_trade_nat
measures Trade Value
subtopic Hidden
table_en Foreign Trade (BCMM)
topic_en Foreign Trade
source_name Secretaría de Economía
table_es Comercio exterior (BCMM)
source_link https://www.gob.mx/se
topic_es Comercio exterior
Código
xmpB |>
  mutate(Sección = fct_other(Sección, keep = top_secciones, other_level = "Otros")) |>
  group_by(Año, Sección) |>
  summarize(
    Exportaciones = sum(Exportaciones, na.rm = TRUE),
    .groups = "drop"
  ) |> 
  mutate(Sección = fct_reorder(Sección, desc(Exportaciones), .fun = last, .desc = TRUE)) |>
  filter(Año < 2025) |>
  
ggplot(aes(Año, Exportaciones/1000000000, color = Sección)) +
  theme_bw() +
  scale_color_brewer(palette = "Spectral") +
  scale_x_continuous(
      breaks = seq(from =2006, to = 2024, by = 1),
      expand = c(0,0)) +
   scale_y_continuous(
    breaks = seq(from = 0, to = 250, by = 25)
  ) +
  geom_line(linewidth = 1) + 
  labs(
    x = "",
    y = "",
    color = "",
    caption = "J.Cornick con base en BCMM" ) +
  guides(color = guide_legend(reverse = TRUE, nrow = 1)) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
        legend.position = "bottom")
Figura 6: Mexico, exportaciones principales productos, 1993 - 2024
(en miles de millones US $. Datos ajustados estacionalmente)

Exportaciones por Capítulo, principales Secciones

Carga de datos
xCapB<- readRDS(here::here("RDS", "MexExpCapBCMM.rds" ))
gt_metadata(xCapB)
Metadatos de la Fuente
Atributo Valor
name economy_foreign_trade_nat
measures Trade Value
source_name Secretaría de Economía
table_es Comercio exterior (BCMM)
source_link https://www.gob.mx/se
subtopic Hidden
topic_es Comercio exterior
topic_en Foreign Trade
table_en Foreign Trade (BCMM)

Las tres Secciones de mayor interés para este trabajo son Máquinas, Transporte e Instrumentos, las dos primeras por peso, la segunda y tercera por su crecimiento3

Seguidamente se presentan gráficos con las exportaciones de cada una de estas tres Secciones, desagregadas por capítulos.

PENDIENTE: ESTIMAR PUNTOS DE QUIEBRE DE LAS TENDENCIAS LINEALES

Maquinaria

Código
xCapB |> 
  filter(CapID %in% c(84,85), Año < 2025) |> 

ggplot(aes(Año, Exportaciones/1000000000, color = Capítulo)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  scale_x_continuous(
      breaks = seq(from =2006, to = 2024, by = 1),
      expand = c(0,0)) +
  geom_line(linewidth = 1) +
  labs(
    x = "",
    y = "",
    color  = NULL,
    caption = "J.Cornick con base en BCMM"
  ) +
   theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1), 
        legend.position = "bottom")
Figura 7: Mexico, exportaciones de Maquinaria por capítulo, 2006 - 2024
(en miles de millones US $)

Equipo transporte

Código
xCapB |> 
  filter(CapID %in% c(86,87,88,89), Año < 2025) |> 

ggplot(aes(Año, Exportaciones/1000000000, color = Capítulo)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  scale_x_continuous(
      breaks = seq(from =2006, to = 2024, by = 1),
      expand = c(0,0)) +
  geom_line(linewidth = 1) +
  labs(
    x = "",
    y = "",
    color  = NULL,
    caption = "J.Cornick con base en BCMM") +
  guides(color = guide_legend(reverse = TRUE, nrow = 1)) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1), 
        legend.position = "bottom")
Figura 8: Mexico, exportaciones de equipo de transporte por capítulo, 2006 - 2024
(en miles de millones US $)

Instrumentos

Código
xCapB |> 
  filter(CapID %in% c(90,91,92), Año < 2025) |> 
  mutate(Capítulo = fct_reorder(Capítulo, Exportaciones, .fun = last, .desc = TRUE)) |> 
  

ggplot(aes(Año, Exportaciones/1000000000, color = Capítulo)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  scale_x_continuous(
      breaks = seq(from =2006, to = 2024, by = 1),
      expand = c(0,0)) +
  geom_line(linewidth = 1) +
  labs(
    x = "",
    y = "",
    color  = NULL,
    caption = "J.Cornick con base en BCMM") +
  guides(color = guide_legend(reverse = TRUE, nrow = 2)) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1), 
        legend.position = "bottom")
Figura 9: Mexico, exportaciones de instrumentos por capítulo, 2006 - 2024
(en miles de millones US $)

Exportaciones por partida, principales capítulos

Carga de datos y metadatos
xmPart <- readRDS(here::here("RDS", "MexExpPartBCMM.rds" ))
gt_metadata(xmpB)
Metadatos de la Fuente
Atributo Valor
name economy_foreign_trade_nat
measures Trade Value
subtopic Hidden
table_en Foreign Trade (BCMM)
topic_en Foreign Trade
source_name Secretaría de Economía
table_es Comercio exterior (BCMM)
source_link https://www.gob.mx/se
topic_es Comercio exterior

Cap. 85 Maquinaria eléctrica, equipo audiovisual y partes

xmPart |>
  filter(CapID == 1685, Año < 2025) |> 
  mutate(Partida = fct_other(Partida, keep = top_part85, other_level = "Otros")) |>
  group_by(Año, Partida) |>
  summarize(
    Exportaciones = sum(Exportaciones, na.rm = TRUE),
    .groups = "drop"
  ) |> 
  mutate(Partida = fct_reorder(Partida, desc(Exportaciones), .fun = last, .desc = TRUE)) |>
  filter(Año < 2025)
# A tibble: 152 × 3
     Año Partida                                                   Exportaciones
   <int> <fct>                                                             <dbl>
 1  2006 Alambres y Cables Eléctricos                                 7971730171
 2  2006 Aparatos Eléctricos para Conmutar o Proteger Circuitos E…    3280467689
 3  2006 Monitores y Proyectores, que no Incorporan Aparatos de R…   16641528788
 4  2006 Motores y Generadores                                        2414995941
 5  2006 Tableros, Consolas y otras Bases para el Control o Distr…    1766659957
 6  2006 Teléfonos, Incluidos los Teléfonos Móviles y los de otra…    3164924273
 7  2006 Transformadores de Potencia, Convertidores Estáticos e I…    2218356797
 8  2006 Otros                                                       23934610929
 9  2007 Alambres y Cables Eléctricos                                 8366151540
10  2007 Aparatos Eléctricos para Conmutar o Proteger Circuitos E…    3213759159
# ℹ 142 more rows

La ___ muestra las exportaciones por Partida del Capítulo 854

POR AQUI VOY

Exportaciones a USA por Sección del HS

La información sobre exportaciones por Sección y país de destino solo está disponible en BCMM. Dado el foco de este trabajo, y la concentración de las exportaciones hacia Estados Unidos, únicamente se presenta información para ese destino.

Carga de datos
xsecUSAB <- readRDS(here::here("RDS", "MexExpSecDestBCMM.rds" ))
gt_metadata(xsecUSAB)
Metadatos de la Fuente
Atributo Valor
name economy_foreign_trade_nat
measures Trade Value
topic_en Foreign Trade
table_en Foreign Trade (BCMM)
source_name Secretaría de Economía
topic_es Comercio exterior
table_es Comercio exterior (BCMM)
subtopic Hidden
source_link https://www.gob.mx/se
Código
xsecUSAB |> 
  filter(País == "USA",Año > 0, Año < "2025") |> 
  mutate(
    lump_weight = if_else(Año >= "2020", replace_na(Exportaciones, 0),0),
    Sección = fct_lump_n(
      f = Sección,
      n = 7,
      w = lump_weight,
      other_level = "Otros")
  ) |>
  group_by(Año,Sección) |> 
  summarise(
    Exportaciones = sum(Exportaciones, na.rm = TRUE),
    .groups = "drop"
  ) |>
  mutate(Sección = fct_reorder(Sección, desc(Exportaciones), .fun = last,.na_rm = TRUE)) |> 
  filter(Sección != "Vegetales") |> 

ggplot(aes(Año,Exportaciones/1000000000, color = Sección)) + 
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line(linewidth = 1) +
  scale_x_continuous(
    breaks = seq(from = 2006, to = 2024, by = 1),
    expand = c(0,0)) +
  labs(
    x = "",
    y = "",
    color = "",
    caption = "J.Cornick con base en BCMM"
    ) +
  theme(
    legend.position = "bottom",
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
   guides(color = guide_legend(nrow = 1))
  #  guides(color = guide_legend(reverse = TRUE,nrow = 1))
Figura 10: México, principales exportaciones a USA
(en miles de millones US $)

Exportaciones por estado

Carga de datos y metadatos
xest <- readRDS(here::here("RDS", "MexExpEstBCMM.rds" ))
gt_metadata(xest)
Metadatos de la Fuente
Atributo Valor
name economy_foreign_trade_ent
measures Trade Value
topic_es Comercio exterior
topic_en Foreign Trade
subtopic Hidden
table_es Comercio exterior (BCMM) por estado
table_en Foreign Trade (BCMM) by State
source_name Secretaría de Economía
source_link https://www.gob.mx/se

En el gráfico siguiente, se muestan los 7 estados con mayores exportaciones totales. Nótese que CDMX, aunque no es un estado desde el punto de vista legal, es tratado como si lo fuera en los reportes estadísticos, de manera que los datos correspondientes a Estado de México no incluyen la información correspondiente a CDMX.

También es importante notar que INEGI organiza esta información según la localización de la producción, no de las sedes corporativas. Como se verá mas adelante, esto da lugar a un fenómeno interesante y que posiblemente amerita mayor estudio: aunque CDMX es con diferencia el principal “estado” exportador de México, no se enuentra entre los principales exportadores dentro del régimen IMMEX. ¿Cuáles son los costos o incentivos del sistema, particularmente para empresas que exportan a Estados Unidos, dentro o fuera de reglas T-MEC? ¿Existe una diferencia en las tasas de incorporación a IMMEX según región y producto exportado?

En Figura 11 se muestran las exportaciones por estado, para los 10 estados con mayores exportaciones, excluyendo la categoría residual “Otros”. Aunque no se muestra en el gráfico, el valor de las exportaciones correspondientes a este grupo es similar al de Nuevo León.

El gráfico sugiere que los estados exportadores pueden clasificarse en tres grupos, desde el punto de vista del valor de las exportaciones:

  • Ciudad de México
  • Chihuahua, Baja California y Nuevo León
  • Jalisco, Tamaulipas, Coahuila, Sonora, Puebla y Estado de México

Queda pendiente de analizar la composición sectorial de las exportaciones por estado así como su nivel de complejidad5

Código
xest |> 
  mutate(
    lump_weight = if_else(Año > "2020", replace_na(Exportaciones, 0),0),
    Estado = fct_lump_n(
      f = Estado,
      n = 7,
      w = lump_weight,
      other_level = "Otros")
  ) |>
  group_by(Año, Estado) |> 
  summarise(
    Exportaciones = sum(Exportaciones, na.rm = TRUE),
    .groups = "drop"
  ) |>
  mutate(Estado = fct_reorder(Estado, Exportaciones,.fun = sum, .desc = TRUE)) |>
  filter(Año < "2025", Estado != "Otros") |> 
  mutate(
    Estado =fct_recode(Estado,
                       "CDMX" = "Ciudad de México",
                       "Coahuila" = "Coahuila de Zaragoza",
                       "México" = "Estado de México")
  ) |> 
  
ggplot(aes(Año, Exportaciones/1000000000, color = Estado))+
  theme_bw()+
  scale_color_brewer(palette = "Paired") +
  geom_line(linewidth = 1)  +
  scale_x_continuous(
      breaks = seq(from = 2006, to = 2024, by = 1),
      expand = c(0,0)) +
   labs(
      x = "",
      y = "",
      color = "",
      caption = "J.Cornick con base en BCMM",
    ) +
  theme(
    legend.position = "bottom",
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
  guides(color = guide_legend(nrow = 1))
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `Estado = fct_recode(...)`.
Caused by warning:
! Unknown levels in `f`: Estado de México
Figura 11: Mexico,exportaciones por Estado
(en miles de millones US $)

Exportaciones IMMEX

Exportaciones IMMEX total (millones en pesos)

Figura 12: Exportaciones IMMEX, total, millones de pesos

Exportaciones IMMEX por estado

Los ocho principales estados exportadores representan el 80% del total de las exportaciones bajo el régimen IMMEX, por lo que el grupo residual, Otros, se excluye en los gráficos de esta sección. Llama la atención que la jerarquía de Estados según el valor de sus exportaciones totales y según el valor de sus exportaciones dentro del régimen IMMEX es diferente. De hecho, CDMX, el exportador más grande cuando se consideran las exportaciones totales, no es ni siquiera uno de los más importantes dentro del régimen IMMEX.

No queda claro en este momento a qué se debe esta diferencia. ¿Es una decisión de política respecto a la distribución geográfica de las licencias IMMEX? ¿Está asociada, más bien, a la composición sectorial de las exportaciones? Se requerirá de investigacion adicional para poder responder estas preguntas.

Código
mainE |>
  filter(entidad != "Otros") |> 
  ggplot(aes(Fecha, Exportaciones/1000, color = entidad)) +
  theme_bw() +
  scale_color_brewer(palette = "Spectral") +
  geom_line() +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Exportaciones, MM de pesos",
    color = "",
    caption = "j.Cornick con base en INEGI"
  )
Figura 13: Exportaciones IMMEX por Estado, 2007-2025 <> En millones de pesos
Código
mainE |>
  filter(entidad != "Otros") |> 
  ggplot(aes(Fecha, PorcEx, color = entidad, fill = entidad)) +
  theme_bw() +
  scale_color_brewer(palette = "Spectral") +
  scale_fill_brewer(palette = "Spectral") +
  geom_col(position = "fill") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  scale_y_continuous(expand = c(0,0))+
  labs(
    x = "",
    y = "Porcentaje de las exportaciones",
    color = "",
    fill = "",
    caption = "j.Cornick con base en INEGI",
  )
Figura 14: Exportaciones IMMEX por Estado, 2007-2025 v2
Distribucipon

Importaciones

De USA

En términos del valor de las importaciones provenientes de USA, la tendencia ascendiente que se observa desde 1993 no parece haberse modificado a partir del inicio de la guerra comercial entre Estados Unidos y China. Las dos caídas importates en dicho volumen, en 2009 y 2020, están asociadas a la crisis financiera global y a la pandemia del COVID-19, respectivamente.

Código
xm |>  
  filter(Pais == "USA", Año < 2025) |> 
  ggplot(aes(Año, Importaciones/1000))+
  theme_bw()+
  scale_color_brewer(palette = "Dark2")+
  scale_x_continuous(breaks = seq(from =1993, to = 2024, by = 2)) +
  geom_line(linewidth = 1, color = "steelblue4")+
  geom_smooth(method = "lm",
              color = "steelblue1", 
              fill = "steelblue1", alpha = 0.2,
              linetype = 3)+
  labs(
    x = "",
    y = "", 
    caption = "J.Cornick con base en Data Mexico "
  )
Figura 15: Mexico, importaciones totales de USA, 1993 - 2024
(En miles de millones de US $)

En cambio, en términos de la participación relativa de las importaciones provenientes de Estados Unidos si se produce un cambio muy marcado a partir de 2001, es decir, el año en que China se incorporó a la OMC. Hasta ese momento, las importaciones provenientes de Estados Unidos representaban cerca del 75% de las importaciones mexicanas, y las provenientes de China eran insignificantes. Para el año 2024, las importaciones provenientes de USA representan apenas el 40% del total, mientras que las provenientes de China representan el 20%. Ningún otro país individual alcanza una importancia semejante.

Código
xm_percentages <- xm |>
  mutate(
    lump_weight = if_else(Año >= "2020", replace_na(Importaciones, 0),0),
    Pais = fct_lump_n(
      f = Pais,
      n = 10,
      w = lump_weight,
      other_level = "Otros")
    ) |>
  group_by(
    Año, Pais
    ) |> 
  summarise(
    Importaciones = sum(Importaciones, na.rm = TRUE),
    .groups = "drop"
    ) |>
  group_by(Año) |>
  mutate(
    percent_valor = Importaciones / sum(Importaciones, na.rm = TRUE)
    ) |>
  ungroup() |> 
  mutate(Pais = fct_reorder(Pais, percent_valor, .fun = last))

xm_percentages |> 
  filter(Año < 2025) |> 
ggplot(aes(x = Año, y = percent_valor, fill = Pais)) +
  theme_bw() + 
  scale_fill_brewer(palette = "Spectral") + 
  geom_area() +
  scale_x_continuous(
    breaks = seq(from = 1993, to = 2024, by = 2),
    expand = c(0,0)
    ) + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), 
    labels = scales::percent,
    expand = c(0,0)
  ) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",
    linetype = "dotted",
    linewidth = 0.1
  ) +
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base de Data Mexico"
    )
Figura 16: Mexico, distribucion porcentual de las importaciones, 1993 - 2024

La Tabla 3 muestra los porcentajes correspondientes a 1993, 2000 (último año antes de que China ingresara a la OMC), 2017 (último año antes del inicio de la guerra comercial entre USA y China) y 2024. Aunque China es el país que muestra el incremento más grande, es notoria la tendencia al incremento de la participación de todos los demás países asiáticos incluidos en la tabla, con excepción de Japón, cuya participación en 2024 es prácticamente la mitad de lo que era en 1993.

Tabla 3: México, distribución de las importaciones por origen
Años seleccionados
Pais 1993 2000 2017 2024
USA 69.3% 73.1% 46.3% 40.1%
China 0.6% 1.7% 17.6% 20.8%
CoreaS 1.3% 2.1% 3.7% 3.7%
Alemania 4.4% 3.3% 3.9% 3.4%
Japón 6.0% 3.7% 4.3% 3.1%
TaiwanRC 1.1% 1.1% 1.8% 2.8%
Vietnam 0.0% 0.0% 1.1% 2.4%
Malasia 0.4% 0.8% 1.9% 2.1%
Canadá 1.8% 2.3% 2.3% 2.1%
Brasil 1.8% 1.0% 1.3% 1.9%
Source: J.Cornick con base en Data Mexico.

Si examinamos por separado las importaciones provenientes de China, queda claro que hay un cambio en el ritmo de crecimiento de las importaciones provenientes de ese país a partir de 2001 aproximadamente

China

Código
xm |> 
  filter(Año < 2025,Pais == "China") |> 
  ggplot(aes(Año, Importaciones/1000))+
  theme_bw()+
  geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(
    data = \(x) x |> filter(Año < 2003),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3) +
  geom_smooth(
    data = \(x) x |> filter(Año > 2001),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3) +  
  scale_x_continuous(
    breaks = seq(from =1993, to = 2024, by = 2)
    ) +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
  ) +
   labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base en Data Mexico"
    )
(a) Miles de millones de US $
Figura 17: México: Importaciones provenientes de China

Vietnam

Código
xm |> 
  filter(
    Año < 2025,
    Pais == "Vietnam"
  ) |> 
  ggplot(
    aes(Año, Importaciones/1000)
  ) +
  theme_bw(
  ) +
  geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3) +
  scale_x_continuous(
    breaks = seq(from =1993, to = 2024, by = 2)
    ) +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
   labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base en Data Mexico"
    )
Figura 18: Mexico, importaciones totales provenientes de Vietnam,1993 - 2024
(En miles de millones de US $)

Otros socios comerciales

Código
xm |>  
  filter(
    Pais != "USA", Año < 2025) |> 
  mutate(
    lump_weight = if_else(Año >= "2020", replace_na(Importaciones, 0),0),
    Pais = fct_lump_n(
      f = Pais,
      n = 7,
      w = lump_weight,
      other_level = "Otros")) |>
  group_by( Año, Pais) |> 
  summarise(
    Importaciones = sum(Importaciones, na.rm = TRUE),
    .groups = "drop") |>
  filter(
    Pais != "Otros",
    Pais != "China"
    ) |> 
  mutate(
    Pais = fct_reorder(Pais, desc(Importaciones), .fun = last)
    ) |>
  ggplot(aes(Año, Importaciones/1000, color = Pais)) +
  theme_bw() +
  scale_color_brewer(
    palette = "Spectral") +
  scale_x_continuous(breaks = seq(from =1993, to = 2024, by = 2)) +
  geom_line(linewidth = 1) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base en Data Mexico"
    )
Figura 19: Mexico, importaciones totales, países seleccionados, 1993 - 2024
(En miles de millones de US $)

El tema que queda pendiente es si este cambio en el origen de las importaciones va acompañado de un cambio en su composición. Parece razonable suponer que al menos una parte del incremento de las importaciones provenientes de China y Vietnam está relacionado con el establecimiento en México de plantas manufactureras de empresas originarias de dichos países, es decir, que parte del incremento de las importaciones corresponde a insumos o partes que se incorporan a productos manufacturados en México para exportación a Estados Unidos, pero no tenemos todavía información para validarlo.

De ser así, y dadas las reglas de la nueva política comercial de los Estados Unidos, cabría esperar una nueva reconfiguración del origen de las importaciones mexicanas a partir de 2025 y en los años inmediatamente posteriores.

Inversión extrajera directa

USA

En contraste con lo que sucede con el volumen de las exportaciones de México a Estados Unidos, en el caso de la IED de ese país en México parece haber un claro cambio en la tasa de crecimiento a partir del 2018. Como la inversión está sujeta a fuertes variaciones anuales, se ha calculado y graficado el promedio móvil a tres años, que se muestra en la Figura 20

Código
xmI |> 
  arrange(Año) |> 
  mutate(
    Inv3 = rollmean(Inversion, k = 3, fill = NA, align = "center")
    ) |> 
  filter(Pais == "USA") |> 
  ggplot(aes(Año,Inv3/1000)) +
    geom_line(linewidth = 1, color = "steelblue4") +
    theme_bw()+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = TRUE,
      fill = "steelblue1",
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = TRUE,
      fill = "steelblue1",
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    )+
    labs(
      x = "",
      y = "promedio movil 3 a;os",
      caption = "J.Cornick con base en Data Mexico"
    )
Figura 20: Mexico, IED de USA, 2000-2024, promedio móvil 3 años
(en miles de millones US $)

Japón, Alemania y Canadá.

Considerando siempre promedios móviles de tres años, los cambios son más sutiles en los casos de Japón, Alemania y Canadá. En el caso de Japón, parece producirse una ligera aceleración, mientra que sucede lo contrario en el caso de Canadá6. La inversión alemana sigue creciendo, aunque a u ritmo ligeramete inferior al observado antes dd 2018.

#| label: note2
#| include: false
# Los grandes picos en inversión canadiense (y de otros países, en los gráficos que siguen) corresponden a inversión en minas y petróleo? Estos gráficos sugieren que para entender estos patrones de IED deberemos desagregar la inversión por origen y sector. Verificar si este cruce está.
Código
xmI |> 
  arrange(Año) |> 
  mutate(
    Inv3 = rollmean(Inversion, k = 3, fill = NA, align = "center")
    ) |>
  filter(Pais %in% c("Japon", "Alemania", "Canada")) |> 
  mutate(Pais = fct_reorder(Pais, desc(Inversion), .fun = last)) |>
  ggplot(
    aes(Año,Inv3/1000, color = Pais)
    ) +
    theme_bw()+
    scale_color_brewer(palette = "Dark2")+
    geom_line(linewidth = 1)+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
    labs(
      x = "",
      y = "Miles de millones de US $",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico"
      ) 
Figura 21: Mexico, IED de Japón, Alemania y Canadá, 2000-2024, promedio móvil 3 años
(en miles de millones US $)

Otros países

La IED proveniente de otros países es muy modesta. En la Figura 22 se muestra su comportamiento. Llama la atención la fuerte caída de la IED española a partir de 2018.

Código
xmI|> 
  arrange(Año) |> 
  mutate(Inv3 = rollmean(Inversion, k = 3, fill = NA, align = "center") ) |>
  filter(!(Pais %in% c("Japon", "Alemania", "Canada", "USA", "Otros"))) |> 
  mutate(Pais = fct_reorder(Pais, Inversion, .fun = last, .desc = TRUE)) |>
  ggplot(
    aes(Año,Inversion/1000, color = Pais)
    ) +
    theme_bw()+
    scale_color_brewer(palette = "Dark2")+
    geom_line(linewidth = 1)+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
    labs(
      x = "",
      y = "Miles de millones de US $",
      
      color = "",
      caption = "J.Cornick con base en Data Mexico"
      )
Figura 22: Mexico, IED, paises selectos, 2000-2024
(en miles de millones US $)
Código
xmI |> 
  arrange(Año) |> 
  filter(!(Pais %in% c("Japon", "Alemania", "Canada", "USA", "Otros", "Espana", "Belgica"))) |> 
  mutate(Pais = fct_reorder(Pais, desc(Inversion), .fun = last)) |>
  ggplot(
    aes(Año,Inversion/1000, color = Pais)
    ) +
    theme_bw()+
    scale_color_brewer(palette = "Dark2")+
    geom_line(linewidth = 1)+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
    labs(
      x = "",
      y = "Miles de millones de US $",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico"
      )
Figura 23: Mexico, Países selectos 2,2000-2024
(en miles de millones US $)

IED por sector

Código
ggplot(ied_sec_perc, aes(x = Año, y = perc_ied, fill = Sector)) +
  theme_bw() + 
  scale_fill_brewer(palette = "Spectral") +
  geom_col(position = "stack") + 
  scale_x_continuous(
    breaks = seq(from = 1999, to = 2024, by = 1),
    expand = c(0,0)) + 
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), 
    labels = scales::percent,
    expand = c(0,0)) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",
    linetype = "dotted",
    linewidth = 0.25) +
  labs(
    x = "",
    y = "",
    fill = "",
    caption = "J.Cornick con base de Data Mexico") +
  theme(
    legend.position = "bottom",
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
  guides(fill = guide_legend(reverse = TRUE,nrow = 2))
Figura 24: Mexico, distribución sectorial de la IED, 1999-2024

Empleo y establecimientos IMMEX

Creación de vectores para selección de Estados. Para seleccionar ciudades simplemente elegiremos los niveles de entidad aque no se encuentren en Estados

Datos nacionales

Trabajadores

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  ggplot(
    aes(Fecha, Trabajadores/1000000)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: trabajadores en empresas IMMEX, 2007-2025",
    subtitle = "en millones",
    x = "",
    y = "Trabajadores",
    caption = "J.Cornick con base en INEGI"
  )
Figura 25: Mexico, trabajadores en empresas IMMEX
En millones

Empresas

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  ggplot(
    aes(Fecha, Establecimientos)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: establecimientos en régimen IMMEX, 2007-2025",
    subtitle = "en millones",
    x = "",
    y = "Establecimientos",
    caption = "J.Cornick con base en INEGI"
  )
Figura 26: Mexico, establecimientos en régimen IMMEX, 2007-2025

Remuneraciones

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  ggplot(
    aes(Fecha, Remuneraciones/1000)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: remuneraciones pagadas a trabajadores del régimen IMMEX, 2007-2025",
    subtitle = "en millones de pesos",
    x = "",
    y = "Remuneraciones",
    caption = "J.Cornick con base en INEGI"
  )
Figura 27: Mexico, remuneraciones pagadas al personal del régimen IMMEX, 2007-2025 <> En millones de pesos

Remuneraciones promedio

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  mutate(RemProm = Remuneraciones / Trabajadores) |> 
  ggplot(
    aes(Fecha, RemProm)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: remuneraciones promedio del régimen IMMEX, 2007-2025",
    subtitle = "en miles de pesos",
    x = "",
    y = "Remuneraciones",
    caption = "J.Cornick con base en INEGI"
  )
Figura 28: Mexico, remuneracioes promedio, del régimen IMMEX, 2007-2025 <> En miles de pesos

Datos estatales

Como primer paso, identificamos los estados cuyas exportaciones son más importantes

Traducimos los datos a porcentajes y los graficamos

Trabajadores por estado

Código
mainE |>
  filter(entidad != "Otros") |> 
  mutate(entidad = fct_reorder(entidad, Trabajadores, .fun = last, .desc = TRUE)) |>
  ggplot(aes(Fecha, Trabajadores)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line(aes(color=entidad)) +
  #geom_point(aes(shape = entidad), size = 0.75)+
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "",
    color = "",
    shape = "",
    caption = "j.Cornick con base en INEGI"
  )
Figura 29: Trabajadores IMMEX por Estado, 2007-2025

Traducimos los datos a porcentajes y los graficamos

Nótese que para generar gráficos con la distribución porcentual de una variable podemos usar dos métodos. Si usamos geom_col(position = fill) los porcentajes son calculados automáticamente por ggplot. Esto es muy conveniente, pero tienen al desventaja de que los datos en términos porcentuales no quedan incorporados en la base de datos. En el código que sigue, por lo tanto, ilustramos un método alternativo: primero se calculan explícitamente los porcentajes, y luego se procede a graficar. Aunque en este caso concreto no se han incorporado estos datos a la base de dato, sería muy fácil hacerlo si estuviésemos interesados en hacerlo.

Código
mainE |> 
  filter(entidad != "Otros") |> 
  group_by(Fecha) |> 
  mutate(PorcTrab = Trabajadores/sum(Trabajadores)) |> 
  ungroup() |> 
  mutate(entidad = fct_reorder(entidad, desc(PorcTrab), .fun = last)) |>
  ggplot(aes(Fecha,PorcTrab, color = entidad,fill = entidad)) +
  theme_bw() +
  geom_col(position = "stack") +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",                      
    linetype = "dotted",
    linewidth = 0.25) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1),
    labels = scales::percent,
    expand = c(0, 0)) +
  scale_color_brewer(palette = "Paired") +
  scale_fill_brewer(palette = "Paired") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Distribución Trabajadores IMMEX por Estado",
    fill = "",
    color = "",
    caption = "J.Cornick con base en INEGI"
  )
Figura 30: Trabajadores IMMEX por Estado, 2007-2025 <> En porcentajes

Empresas por estado

Código
mainE |>
  filter(entidad != "Otros") |> 
  ggplot(aes(Fecha, Establecimientos, color = entidad)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line() +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Establecimientos",
    color = "",
    caption = "j.Cornick con base en INEGI"
  )
Figura 31: Empresas IMMEX por Estado, 2007-2025 <> En millones de pesos

Traducimos los datos a porcentajes y los graficamos

Código
mainE |> 
  filter(entidad != "Otros") |> 
  group_by(Fecha) |> 
  mutate(PorcEmp = Establecimientos/sum(Establecimientos)) |> 
  ungroup() |> 
  mutate(entidad = fct_reorder(entidad, desc(PorcEmp), .fun = last)) |>
  ggplot(aes(Fecha,PorcEmp, color = entidad,fill = entidad)) +
  theme_bw() +
  geom_col(position = "stack") +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",                      
    linetype = "dotted",
    linewidth = 0.25) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1),
    labels = scales::percent,
    expand = c(0, 0)) +
  scale_color_brewer(palette = "Dark2") +
  scale_fill_brewer(palette = "Dark2") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Distribución establecimiewntos",
    fill = "",
    color = "",
    caption = "J.Cornick con base en INEGI"
  )
Figura 32: Empresas IMMEX por Estado, 2007-2025 <> En porcentajes

Remuneraciones por Estado

Código
mainE |> 
  filter(entidad != "Otros") |> 
  mutate(entidad = fct_reorder(entidad, desc(Remuneraciones), .fun = last)) |>
  ggplot(
    aes(Fecha, Remuneraciones/1000, color = entidad)
    ) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    x = "",
    y = "Remuneraciones",
    caption = "J.Cornick con base en INEGI"
  )
Figura 33: Remuneraciones pagadas al personal del régimen IMMEX
por Estado, 2007-2025 <> En millones de pesos

Remuneraciones promedio por Estado

Código
mainE |> 
  filter(entidad != "Otros") |> 
  mutate(RemProm = Remuneraciones / Trabajadores) |> 
  mutate(entidad = fct_reorder(entidad, desc(RemProm), .fun = last)) |>
  ggplot(aes(Fecha, RemProm, color = entidad)) +
  theme_bw() +
  geom_line() +
  scale_color_brewer(palette = "Paired") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    x = "",
    y = "Remuneraciones promedio",
    color = "",
    caption = "J.Cornick con base en INEGI"
  )
Figura 34: Remuneraciones promedio del régimen IMMEX, 2007-2025 por Estado

Notas

  1. Es decir, no se utilizan datos individuales a nivel de empresa↩︎

  2. Ver Strucchange para los detalles.↩︎

  3. El crecimiento de Alimentos es casi igual al de Instrumentos, pero de menos interés desde el punto de vista del NS↩︎

  4. Maquinaria y equipo electrónico y sus partes, equipo para grabar y reproducir sonido y sus partes, equipo para grabar y reproducir sonido e imagenes para televisión y sus partes↩︎

  5. Pendiente de determinar, también, si está disponible la información con ese nivel de desagregación↩︎

  6. Pero este aparente cambio puede ser simplemente un “artefacto” resultante del nivel extraordinariamente alto de la inversión canadiense en 2013↩︎