Carga de bibliotecas
pacman::p_load(tidyverse, here, forcats, zoo, scales, knitr, gt, strucchange, seasonal, treemapify, patchwork)pacman::p_load(tidyverse, here, forcats, zoo, scales, knitr, gt, strucchange, seasonal, treemapify, patchwork)La reconfiguración de las cadenas globales de valor (CGV), y en particular, la reducción de la distancia entre los centros de manufactura y los de consumo final, conocida como “Nearshoring” (NS) pueden tener lugar mediante diversos mecanismos
De estos tres mecanismos, el primero es el más rápido, y el último el que puede demorar más tiempo, por lo que cabe cabe esperar que NS se exprese primero en cambios en los flujos comerciales y solo con un rezago considerable en cambios en los flujos de inversión. Puede expresarse, asimismo, en cambios en la distribución sectorial de la IED, y cambios en el origen nacional de la IED.
Como se discutió en la sección anterior, resulta indiferente si esta transformación de las CGV se financia mediante inversiones nuevas o mediante reinversión de utilidades.
El proceso puede incluir un cuarto mecanismo, que ha sido poco estudiado: la profundización de las cadenas de suministro locales. Es decir, una EMN puede trasladar una línea de producción del país A al país B, pero puede además tratar de sustituir, al menos en parte, la cadena de suministro que estba ubicada en A y sus países vecinos, por una cadena de suministro centrada en B. Como veremos en el Capítulo 3, México tiene oportunidades importantes asociadas precisamente a este mecanismo, aunque por ahora resulta difícil cuantificar su impacto 1.
En este capítulo examinaremos la evoluación de las exportaciones mexicanas, particularmente lae exportaciones a los Estados Unidos (EUA) en el período 2010 - 2020, que incluye la imposición de aranceles a las importaciones de EUA provenientes de China en el primero gobierno de Trump, la política industrial durante el gobierno de Biden, y la turbulenta política comercial del segundo gobierno de Trump.
El capítulo se divide en cuatro secciones principales
Tanto en el caso de las exportaciones como en el de las inversiones procederemos mediante una serie de aproximaciones sucesivas, cada una con mayor nivel de detalle y granularidad. En el caso de las exportaciones, se examinan primero las exportaciones totales a Estados Unidos, y luego se descomponen según Secciones del Sistema Armonizado (SA). Una vez identificadas las Secciones más importantes, se identifican los Capítulos de más peso dentro de cada una de ellas, y finalmente, se identifican las Partidas más importantes dentro de cada Sección. En general, trabajamos con cifras anuales, pero para los dos últimos años se presentan, además, datos mensuales para las Partidas más importantes previamente identificadas.
Adicionalmente, esta sección incorpora los resultados de estudios econométricos recientes que han intentado evaluar el impacto sobre México de las tarifas a las importaciones chinas del primer gobierno de Trump. Por razones obvias, no existen aún estudios econométricos sobre el impacto de la política comercial del segundo gobierno de Trump: en primer lugar no ha pasado suficiente tiempo como para medir ese impacto, y en segundo lugar, y de mayor importancia, esa política no tiene aún una configuración estable. La incertidumbre es en este momento el principal disruptor de los flujos comerciales 4, aunque el examen de los datos mensuales también permite identificar fluctuaciones que responden claramente a cambios recientes en la estructura tarifaria de los EUA
xm <- readRDS(here::here("RDS", "MexXMPaisINEGI.rds"))
gt_metadata(xm)| Metadatos de la Fuente | |
| Atributo | Valor |
|---|---|
| name | inegi_foreign_trade_country |
| measures | Trade Value |
| source_name | Instituto Nacional de Estadística y Geografía |
| subtopic | Hidden |
| table_es | Comercio exterior (INEGI) por países |
| table_en | Foreign Trade (INEGI) by Country |
| topic_es | Comercio exterior |
| topic_en | Foreign Trade |
| source_link | https://www.inegi.org.mx/sistemas/bie/ |
La Figura 1 muestra la evolución de las exportaciones mexicanas a Estados Unidos y el resto del mundo, de 2010 a 2025. 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) 5, 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 sub períodos resultantes. El mismo paquete permitió identificar dos puntos de quiebre en las exportaciones a otros destinos: 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.
Aunque por las diferencias en magnitud puede parecer que las exportaciones al resto del mundo tiene un crecimiento apenas moderado, el cálculo del cambio porcentual entre 2025 y 2010 es notable tanto para las exportaciones que se destinan a los Estados Unidos, que se incrementan en un 110.2%, como las que se dirigen al resto del mundo, que se incrementan en un 71.5% 6. El rápido incremento de las exportaciones a Estados Unidos a partir de 2021 es congruente con la hipótesis de que existe un rezago entre el cambio en los aranceles (Trump 2018) y el cambio en los flujos comerciales, que se explica porque en un primer momento las empresas no saben si los nuevos aranceles se van a mantener o si serán efímeros, y en segundo lugar porque una vez que las empresas llegan a la conclusión de que los nuevos aranceles representan un cambio duradero en la política comercial de los EUA, deben tomar una serie de decisiones que no se pueden ejecutar de manra inmediata.
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
usa_data$Año[bp_usa$breakpoints][1] 2021
bp_otros
Optimal 6-segment partition:
Call:
breakpoints.formula(formula = Exportaciones ~ Año, data = otros_data)
Breakpoints at observation number:
12 16 20 24 28
Corresponding to breakdates:
0.3636364 0.4848485 0.6060606 0.7272727 0.8484848
otros_data$Año[bp_otros$breakpoints][1] 2004 2008 2012 2016 2020
# 1. Preparación de los datos y cálculo de incrementos
data_plot <- xm |>
select(-Importaciones) |>
filter(Año > 2009) |>
mutate(Pais = if_else(Pais == "USA", "USA", "Otros")) |>
group_by(Año, Pais) |>
summarize(Exportaciones = sum(Exportaciones / 1000000000), .groups = 'drop')
# Calcular el % de incremento para las etiquetas
incrementos <- data_plot |>
filter(Año %in% c(2010, 2025)) |>
group_by(Pais) |>
summarize(
pct = (Exportaciones[Año == 2025] / Exportaciones[Año == 2010] - 1) * 100,
val_2025 = Exportaciones[Año == 2025]
)
# 2. Generación del gráfico con etiquetas
ggplot(data_plot, aes(Año, Exportaciones, color = Pais)) +
theme_bw() +
scale_color_brewer(palette = "Paired") +
scale_x_continuous(breaks = seq(2010, 2025, 1), expand = c(0, 0)) +
scale_y_continuous(breaks = seq(0, 600, 100), limits = c(0, 550)) +
geom_line(linewidth = 1) +
# Tendencias (Tus geom_smooth originales)
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) +
geom_vline(xintercept = 2021, linetype = "dotted", color = "red", linewidth = 0.75) +
# Cuadros de texto con los incrementos
geom_label(
data = incrementos,
aes(x = 2025, y = val_2025,
label = paste0("Δ 2010-2025: ", round(pct, 1), "%")),
hjust = 1.1, vjust = -0.5,
show.legend = FALSE,
fill = "white",
fontface = "bold"
) +
labs(x = "", y = "Miles de millones de USD", color = NULL,
caption = "Elaboración propia con base en INEGI") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
legend.position = "bottom")Una visualización alternativa se presenta en la Figura 2, en la que se identifican los 6 principales destinos de las exportaciones mexicanas, aparte de los Estados Unidos, y una categoría residual. En 2025, las exportaciones mexicanas a Estados Unidos, Canadá, China, Alemania, Corea del Sur, España y Brasil representan el 91.5% del total de las exportaciones mexicanas.
# 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 > 2009) |>
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))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 = 2010, to = 2025, 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 = "Elaboración propia con base en INEGI") +
annotate(
"text",
x = c(2018),
y = c(0.45, 0.45, 0.45),
label = c("Tarifas Trump 1"),
color = "white",
angle = 90,
fontface = "bold",
size = 3.5
) +
annotate(
"text",
x = c(2025),
y = c(0.45, 0.45, 0.45),
label = c("Tarifas Trump 2"),
color = "white",
angle = 90,
fontface = "bold",
size = 3.5
) +
theme(
legend.position = "bottom",
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
) Sin embargo, el comportamiento de los destinos menores ha sido desigual, como lo muestra la Tabla 1: mientras que las exportaciones a Canadá apenas recuperan en 2025 la participación porcentual que tenìan en 2010, la participación de Alemania se reduce ligeramente mientras que las de España y Brasil se reducen a poco más de la mitad de la participación que tuvieron en 2010. Las exportacones a China aumentan lingeramente, y las exportaciones a Corea del Sur se triplican, pero apenas representan un 1% del total en 2025.
| País | 2010 | 2017 | 2021 | 2025 |
|---|---|---|---|---|
| USA | 80.0% | 79.9% | 80.7% | 83.1% |
| Canadá | 3.6% | 2.8% | 2.6% | 3.4% |
| China | 1.4% | 1.6% | 1.9% | 1.5% |
| Alemania | 1.2% | 1.7% | 1.5% | 1.1% |
| CoreaS | 0.3% | 0.8% | 1.4% | 1.0% |
| España | 1.3% | 1.0% | 1.0% | 0.7% |
| Brasil | 1.3% | 0.9% | 0.7% | 0.7% |
Una última visualización se presenta en Figura 3, que permite comparar fácilmente el cambio en la importancia relativa de los distintos destinos comparando únicamente los años 2010 y 2025
# 1. Preparar los datos con la etiqueta combinada
xm_treemap <- xm_percentages |>
filter(Año %in% c(2010, 2025)) |>
mutate(
etiqueta = paste0(Pais, "\n", percent(percent_valor, accuracy = 1))
)
# 2. Generar el gráfico con los ajustes de diseño
ggplot(xm_treemap, aes(area = percent_valor, fill = Pais, label = etiqueta)) +
geom_treemap(layout = "squarified", color = "white") +
geom_treemap_text(
place = "centre",
size = 12,
colour = "black",
reflow = TRUE,
fontface = "bold" # Mantiene negrita en el contenido para legibilidad
) +
facet_wrap(~ Año) +
scale_fill_brewer(palette = "Spectral") +
theme_bw() +
labs(
caption = "Elaboración propia con base en INEGI",
x = NULL,
y = NULL
) +
theme(
legend.position = "none",
# Elimina el cuadro gris de los años
strip.background = element_blank(),
# Quita la negrita de los años y ajusta el tamaño
strip.text = element_text(size = 16, face = "plain"),
# Centra el título
plot.title = element_text(hjust = 0.5, size = 16)
)El Diccionario de Datos de Data México advierte que para proteger el anonimato de la información, la suma de los datos de un determinado nivel de agregación, como Partida, no necesariamente es igual al total del Capítulo, que se visualiza a un nivel de mayor agregación: cuando suministrar información en el nivel más desagregado permite identificar a empresas individuales, esa información se suprime al consultar los datos desagregados
xusasec <- readRDS(here::here("RDS", "Mex_X_USA_Sec.rds"))
gt_metadata(xusasec)| Metadatos de la Fuente | |
| Atributo | Valor |
|---|---|
| name | economy_foreign_trade_mun |
| measures | Trade Value |
| subtopic | Hidden |
| topic_en | Foreign Trade |
| source_name | Secretaría de Economía |
| source_link | https://www.gob.mx/se |
| topic_es | Comercio exterior |
| table_es | Comercio exterior (BCMM) por municipio |
| table_en | Foreign Trade (BCMM) by Municipality |
En esta sección el foco pasa de las exportaciones totales a las exportaciones específicamente destinadas a los Estados Unidos. El incremento de las exportaciones totales a ese país fue presentado en la sección anterior de este documento, y ahora procedemos a realizar un acercamiento (“zoom”) que nos permite entender este comportamiento de manera más granular. En primer lugar, se identifican las exportaciones más importantes a nivel de Sección del SA. En segundo lugar, para esas secciones, se desagrega el comportamiento de las exportaciones por Capítulo. Finalmente, para los Capítulos más importantes, la información se examina a nivel de Partida.
Empezamos comparando la distribución de las exportaciones mexicanas por Sección del SA en 2010 y 2025. La Figura 4 presenta esta información. Los tres sectores dominantes en 2025, Maquinaria, Equipo de Transporte e Instrumentos, son al mismo tiempo los más relevantes desde el punto de vista del NS.
# 1. Preparar los datos y las etiquetas con los años solicitados
Mex_top10 <- xusasec |>
mutate(Sec = fct_lump_n(Sec, n = 10, w = Exportaciones, other_level = "Otros")) |>
group_by(Año, Sec) |>
summarize(Exportaciones = sum(Exportaciones), .groups = "drop") |>
group_by(Año) |>
mutate(percent_valor = Exportaciones / sum(Exportaciones)) |>
ungroup()
Mex_tree_top <- Mex_top10 |>
filter(Año %in% c(2010, 2025)) |>
mutate(
etiqueta = paste0(Sec, "\n", percent(percent_valor, accuracy = 1))
)
# 2. Generar la visualización
ggplot(Mex_tree_top, aes(area = percent_valor, fill = Sec, label = etiqueta)) +
geom_treemap(layout = "squarified", color = "white") +
# Etiquetas internas centradas y ajustables
geom_treemap_text(
place = "centre",
size = 12,
colour = "black",
reflow = TRUE,
fontface = "bold"
) +
facet_wrap(~ Año) +
scale_fill_brewer(palette = "Spectral") +
theme_bw() +
labs(
caption = "Elaboración propia con base en Secretaría de Economía"
) +
theme(
legend.position = "none",
# Estética limpia para las facetas (sin cuadros grises y texto normal)
strip.background = element_blank(),
strip.text = element_text(size = 16, face = "plain"),
plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
plot.subtitle = element_text(hjust = 0.5)
)El volumen anual, y el incremento porcentual 2010-2025 para cada una de estas Secciones se muestra en Figura 5
# 1. Filtro y preparación
sectores_interes <- c("Maquinaria", "Instrumentos", "Equip_Transp")
data_lineas <- xusasec |>
filter(Sec %in% sectores_interes, Año >= 2010) |>
group_by(Año, Sec) |>
summarize(Exportaciones = sum(Exportaciones / 1000000000), .groups = 'drop')
# 2. Incrementos para las etiquetas
incrementos_sec <- data_lineas |>
filter(Año %in% c(2010, 2025)) |>
group_by(Sec) |>
summarize(
pct = (Exportaciones[Año == 2025] / Exportaciones[Año == 2010] - 1) * 100,
val_2025 = Exportaciones[Año == 2025]
)
# 3. Etiquetas y flechas (Corregido)
labels_data <- data.frame(
Sec = rep(sectores_interes, each = 2),
Año = rep(c(2016.5, 2019.5), 3),
Exportaciones = c(150, 110, # 1&2: Maquinaria (Tarifas alto, Cambio en 110)
18, 5, # 3&4: Instrumentos
33, 17), # 5&6: Equip_Transp (Valores originales)
txt = rep(c("Tarifas 2018", "Cambio tendencia"), 3)
)
arrows_data <- data.frame(
Sec = rep(sectores_interes, each = 2),
x_start = rep(c(2016.7, 2019.7), 3),
x_end = rep(c(2017.9, 2020.9), 3),
y = c(150, 110, 18, 5, 33, 17) # Deben coincidir con labels_data
)
# 4. Gráfico con Facet Wrap (3x1 vertical)
ggplot(data_lineas, aes(x = Año, y = Exportaciones, color = Sec)) +
theme_bw() +
scale_color_brewer(palette = "Set1") +
scale_x_continuous(breaks = seq(2010, 2025, 1), expand = c(0, 0)) +
# 'free_y' es la clave para manejar las distintas magnitudes
scale_y_continuous(expand = expansion(mult = c(0.1, 0.2))) +
geom_line(linewidth = 1, show.legend = FALSE) +
facet_wrap(~ Sec, ncol = 1, scales = "free_y") +
geom_label(
data = incrementos_sec,
aes(x = 2025, y = val_2025,
label = paste0("Δ 2010-2025: ", round(pct, 1), "%")),
hjust = 1.1, vjust = 1.1,
show.legend = FALSE,
fill = "white",
fontface = "bold",
size = 3.5
) +
labs(
x = "",
y = "Miles de millones de USD",
caption = "Elaboración propia con base en Secretaría de Economía"
) +
geom_vline(xintercept = c(2018, 2021), linetype = "dotted") +
geom_text(data = labels_data, aes(x = Año, y = Exportaciones, label = txt),
hjust = 1, size = 3.5, color = "black") +
geom_segment(data = arrows_data,
aes(x = x_start, xend = x_end, y = y, yend = y),
arrow = arrow(length = unit(0.2, "cm")), color = "black") +
theme(
strip.background = element_blank(),
panel.border = element_rect(color = "black", fill = NA, linewidth = 0.5),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
strip.text = element_text(face = "plain", size = 12),
panel.spacing = unit(1, "lines")
)xusacap <- readRDS(here::here("RDS", "Mex_X_USA_Cap.rds"))
gt_metadata(xusacap)| Metadatos de la Fuente | |
| Atributo | Valor |
|---|---|
| name | economy_foreign_trade_mun |
| measures | Trade Value |
| table_es | Comercio exterior (BCMM) por municipio |
| subtopic | Hidden |
| topic_en | Foreign Trade |
| source_name | Secretaría de Economía |
| source_link | https://www.gob.mx/se |
| topic_es | Comercio exterior |
| table_en | Foreign Trade (BCMM) by Municipality |
# 1. Preparación de datos
df_16 <- xusacap |>
filter(ID_Sección == 16, Año >= 2010, Año <= 2025) |>
mutate(Exportaciones_bn = Exportaciones / 1000000000)
incrementos_16 <- df_16 |>
filter(Año %in% c(2010, 2025)) |>
group_by(Cap) |>
summarize(
pct = (Exportaciones_bn[Año == 2025] / Exportaciones_bn[Año == 2010] - 1) * 100,
val_2025 = Exportaciones_bn[Año == 2025],
.groups = 'drop'
)
# 2. Gráfico
ggplot(df_16, aes(x = Año, y = Exportaciones_bn, color = Cap)) +
geom_line(linewidth = 1.1)+
geom_label(
data = incrementos_16,
aes(x = 2025, y = val_2025, label = paste0("Δ: ", round(pct, 1), "%")),
hjust = 1.1, vjust = -0.5, show.legend = FALSE, fontface = "bold", size = 3
) +
scale_x_continuous(
breaks = seq(2010, 2025, 1),
expand = c(0,0)) +
scale_y_continuous(expand = expansion(mult = c(0.05, 0.2))) + # Espacio para etiquetas
scale_color_brewer(palette = "Set1") +
labs(x = NULL, y = "Miles de millones de USD", color = NULL,
caption = "Elaboración propia con base en INEGI") +
theme_bw() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
legend.position = "bottom")# 1. Preparación de datos
df_17 <- xusacap |>
filter(ID_Sección == 17, Año >= 2010, Año <= 2025) |>
mutate(Exportaciones_bn = Exportaciones / 1000000000)
incrementos_17 <- df_17 |>
filter(Año %in% c(2010, 2025)) |>
group_by(Cap) |>
# FILTRO CLAVE: Solo procesar capítulos que tengan datos en los dos años solicitados
filter(any(Año == 2010) & any(Año == 2025)) |>
summarize(
pct = (Exportaciones_bn[Año == 2025] / Exportaciones_bn[Año == 2010] - 1) * 100,
val_2025 = Exportaciones_bn[Año == 2025],
.groups = 'drop'
)
# 2. Gráfico
ggplot(df_17, aes(x = Año, y = Exportaciones_bn, color = Cap)) +
geom_line(linewidth = 1.1) +
geom_label(
data = incrementos_17,
aes(x = 2025, y = val_2025, label = paste0("Δ: ", round(pct, 1), "%")),
hjust = 1.1, vjust = -0.5, show.legend = FALSE, fontface = "bold", size = 3
) +
scale_x_continuous(breaks = seq(2010, 2025, 1), expand = c(0,0)) +
scale_y_continuous(expand = expansion(mult = c(0.05, 0.2))) +
scale_color_brewer(palette = "Set1") +
labs(x = NULL, y = "Miles de millones de USD", color = NULL,
caption = "Elaboración propia con base en INEGI") +
theme_bw() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
legend.position = "bottom")# 1. Preparación de datos
df_18 <- xusacap |>
filter(ID_Sección == 18, Año >= 2010, Año <= 2025) |>
mutate(Exportaciones_bn = Exportaciones / 1000000000)
incrementos_18 <- df_18 |>
filter(Año %in% c(2010, 2025)) |>
group_by(Cap) |>
summarize(
pct = (Exportaciones_bn[Año == 2025] / Exportaciones_bn[Año == 2010] - 1) * 100,
val_2025 = Exportaciones_bn[Año == 2025],
.groups = 'drop'
)
# 2. Gráfico
ggplot(df_18, aes(x = Año, y = Exportaciones_bn, color = Cap)) +
geom_line(linewidth = 1.1) +
geom_label(
data = incrementos_18,
aes(x = 2025, y = val_2025, label = paste0("Δ: ", round(pct, 1), "%")),
hjust = 1.1, vjust = -0.5, show.legend = FALSE, fontface = "bold", size = 3
) +
scale_x_continuous(breaks = seq(2010, 2025, 1)) +
scale_y_continuous(expand = expansion(mult = c(0.05, 0.2))) +
scale_color_brewer(palette = "Set1") +
labs(x = NULL, y = "Miles de millones de USD", color = NULL,
caption = "Elaboración propia con base en INEGI") +
theme_bw() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
legend.position = "bottom")xpart <- readRDS(here::here("RDS", "Mex_X_USA_topPart.rds"))
gt_metadata(xpart)| Metadatos de la Fuente | |
| Atributo | Valor |
|---|---|
| name | inegi_foreign_trade_country |
| measures | Trade Value |
| subtopic | Hidden |
| table_en | Foreign Trade (INEGI) by Country |
| source_name | Instituto Nacional de Estadística y Geografía |
| topic_en | Foreign Trade |
| topic_es | Comercio exterior |
| table_es | Comercio exterior (INEGI) por países |
| source_link | https://www.inegi.org.mx/sistemas/bie/ |
Visualizaciones
# 1. Preparar los datos
plot_react <- xpart |>
filter(Capítulo == "Reactores/Maq", Año %in% c(2010, 2025)) |>
group_by(Año, Part) |>
summarise(Exportaciones = sum(Exportaciones, na.rm = TRUE), .groups = "drop") |>
group_by(Año) |>
mutate(percent_valor = Exportaciones / sum(Exportaciones)) |>
mutate(etiqueta = paste0(Part, "\n", percent(percent_valor, accuracy = 1))) |>
ungroup()
# 2. Generar el gráfico
ggplot(plot_react, aes(area = percent_valor, fill = Part, label = etiqueta)) +
geom_treemap(layout = "squarified", color = "white") +
geom_treemap_text(
place = "centre",
size = 12,
colour = "black",
reflow = TRUE,
fontface = "bold"
) +
facet_wrap(~ Año) +
scale_fill_brewer(palette = "Spectral") +
theme_bw() +
labs(
caption = "Elaboración propia con base en US Census Bureau",
x = NULL, y = NULL
) +
theme(
legend.position = "none",
strip.background = element_blank(),
strip.text = element_text(size = 16, face = "plain")
)library(ggplot2)
library(treemapify)
library(scales)
library(dplyr)
# 1. Preparar los datos
plot_elec <- xpart |>
filter(Capítulo == "Electrónica", Año %in% c(2010, 2025)) |>
group_by(Año, Part) |>
summarise(Exportaciones = sum(Exportaciones, na.rm = TRUE), .groups = "drop") |>
group_by(Año) |>
mutate(percent_valor = Exportaciones / sum(Exportaciones)) |>
mutate(etiqueta = paste0(Part, "\n", percent(percent_valor, accuracy = 1))) |>
ungroup()
# 2. Generar el gráfico
ggplot(plot_elec, aes(area = percent_valor, fill = Part, label = etiqueta)) +
geom_treemap(layout = "squarified", color = "white") +
geom_treemap_text(
place = "centre",
size = 12,
colour = "black",
reflow = TRUE,
fontface = "bold"
) +
facet_wrap(~ Año) +
scale_fill_brewer(palette = "Spectral") +
theme_bw() +
labs(
caption = "Elaboración propia con base en INEGI",
x = NULL, y = NULL
) +
theme(
legend.position = "none",
strip.background = element_blank(),
strip.text = element_text(size = 16, face = "plain")
)# 1. Preparar los datos
plot_veh <- xpart |>
filter(Capítulo == "Vehículos", Año %in% c(2010, 2025)) |>
group_by(Año, Part) |>
summarise(Exportaciones = sum(Exportaciones, na.rm = TRUE), .groups = "drop") |>
group_by(Año) |>
mutate(percent_valor = Exportaciones / sum(Exportaciones)) |>
mutate(etiqueta = paste0(Part, "\n", percent(percent_valor, accuracy = 1))) |>
ungroup()
# 2. Generar el gráfico
ggplot(plot_veh, aes(area = percent_valor, fill = Part, label = etiqueta)) +
geom_treemap(layout = "squarified", color = "white") +
geom_treemap_text(
place = "centre",
size = 12,
colour = "black",
reflow = TRUE,
fontface = "bold"
) +
facet_wrap(~ Año) +
scale_fill_brewer(palette = "Spectral") +
theme_bw() +
labs(
caption = "Elaboración propia con base en INEGI",
x = NULL, y = NULL
) +
theme(
legend.position = "none",
strip.background = element_blank(),
strip.text = element_text(size = 16, face = "plain")
)# 1. Preparar los datos
plot_opt <- xpart |>
filter(Capítulo == "Óptica/Médico", Año %in% c(2010, 2025)) |>
group_by(Año, Part) |>
summarise(Exportaciones = sum(Exportaciones, na.rm = TRUE), .groups = "drop") |>
group_by(Año) |>
mutate(percent_valor = Exportaciones / sum(Exportaciones)) |>
mutate(etiqueta = paste0(Part, "\n", percent(percent_valor, accuracy = 1))) |>
ungroup()
# 2. Generar el gráfico
ggplot(plot_opt, aes(area = percent_valor, fill = Part, label = etiqueta)) +
geom_treemap(layout = "squarified", color = "white") +
geom_treemap_text(
place = "centre",
size = 12,
colour = "black",
reflow = TRUE,
fontface = "bold"
) +
facet_wrap(~ Año) +
scale_fill_brewer(palette = "Spectral") +
theme_bw() +
labs(
caption = "Elaboración propia con base en INEGI",
x = NULL, y = NULL
) +
theme(
legend.position = "none",
strip.background = element_blank(),
strip.text = element_text(size = 16, face = "plain")
)Incorporar aquí el trabajo previo de Carlos, más la información que está procesando Héctor
En elaboración, Jorge Cornick
Incorporar aquí el trabajo previo de Carlos
Creo que no hay estadísticas sobre ventas de empresas domésticas a EMNs exportadoras, pero no es un tema que hayamos investigado aún. Si no las hubiera, y como parte de los objetivos del CPCV es contribuir a que más Pymes mexicanas participen del NS, quizá podríamos ser pioneros en este tema, en colaboración con asociaciones empresariales y autoridades públicas↩︎
Los cambios en el origen de las importaciones de los Estados Unidos fueron examinados en el capítulo anterior.↩︎
Como una aproximación al empleo directamente vinculado a la actividad exportadora↩︎
Este texto fue redactado antes del inicio de la guerra en Irán↩︎
Ver Strucchange para los detalles.↩︎
El incremento será aún mayor una vez que se disponga de los datos de exportaciones de diciembre 2025, aún no incluidos en el gráfico↩︎
Los datos de 2025 incluyen las exportaciones acumuladas a noviembre de ese año, pero es probable que esta información pueda actulizarse antes de la publicación de este informe.↩︎