Este reporte presenta un Análisis Exploratorio de Datos Espaciales, ESDA, aplicado a las exportaciones a nivel estatal en México. La variable principal de interés es real_exports, complementada con variables socioeconómicas y territoriales que pueden ayudar a explicar el desempeño exportador.
El objetivo es identificar disparidades regionales, patrones de concentración y dependencia espacial entre los estados. El análisis incluye estadísticas descriptivas, medidas de dispersión, histogramas, boxplots, mapas coropléticos, una matriz de pesos espaciales y el estadístico Global Moran’s I.
El Análisis Exploratorio de Datos Espaciales, ESDA, extiende el análisis exploratorio tradicional al incorporar la dimensión geográfica. Mientras que el EDA se enfoca en distribuciones, tendencia central, dispersión y valores atípicos, el ESDA permite además identificar patrones espaciales como agrupamientos, dispersión territorial y posibles dependencias entre regiones vecinas.
La autocorrelación espacial mide el grado en que unidades geográficas cercanas presentan valores similares o distintos. Es relevante porque la actividad económica no suele ser independiente entre regiones, ya que los estados vecinos comparten infraestructura, mercados laborales, cadenas productivas y otras condiciones estructurales.
La autocorrelación global resume el patrón espacial de toda la base de datos en una sola medida. En contraste, la autocorrelación local identifica clusters o valores atípicos espaciales en ubicaciones específicas. En otras palabras, la medida global muestra si existe un patrón general, mientras que la medida local permite ubicar dónde ocurre.
El ESDA mejora el análisis descriptivo al hacer visibles las diferencias territoriales, fortalece los modelos predictivos al sugerir relaciones espaciales que deben incorporarse explícitamente y aporta valor al análisis prescriptivo al facilitar decisiones focalizadas según clusters, disparidades regionales y posibles spillovers territoriales.
analysis_year <- 2022
exports <- read_excel("inegi_mx_state_exports.xlsx", sheet = "exports") %>%
clean_names()
data <- read_excel("inegi_mx_state_exports.xlsx", sheet = "data") %>%
clean_names()
mx_state_map <- st_read("/Users/carosuarez/Downloads/mx_maps/mx_states/mexlatlong.shp", quiet = TRUE)
exports_selected <- exports %>%
select(state, region, real_exports_2022) %>%
rename(real_exports = real_exports_2022)
data_selected <- data %>%
filter(year == analysis_year) %>%
select(
state,
region,
pop_density,
gdp_per_capita_2018,
lq_secondary,
border_economic_activity,
crime_rate
) %>%
distinct()
analysis_data <- exports_selected %>%
left_join(data_selected, by = c("state", "region"))
La variable principal del análisis es real_exports, correspondiente a las exportaciones reales por estado en 2022. Como variables explicativas se seleccionaron indicadores relacionados con densidad poblacional, ingreso, especialización productiva, actividad económica fronteriza y crimen, ya que pueden influir en la capacidad exportadora de cada entidad.
variables_table <- data.frame(
Variable = c(
"real_exports",
"gdp_per_capita_2018",
"pop_density",
"lq_secondary",
"border_economic_activity",
"crime_rate"
),
Rol_analitico = c(
"Variable principal de interés",
"Desarrollo económico",
"Efectos de aglomeración",
"Especialización industrial",
"Acceso geográfico a mercados",
"Riesgo territorial"
)
)
kable(
variables_table,
caption = "Variables seleccionadas y su rol analítico"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)
| Variable | Rol_analitico |
|---|---|
| real_exports | Variable principal de interés |
| gdp_per_capita_2018 | Desarrollo económico |
| pop_density | Efectos de aglomeración |
| lq_secondary | Especialización industrial |
| border_economic_activity | Acceso geográfico a mercados |
| crime_rate | Riesgo territorial |
normalize_state_names <- function(x) {
x %>%
str_to_upper() %>%
str_trim() %>%
str_replace_all("Á", "A") %>%
str_replace_all("É", "E") %>%
str_replace_all("Í", "I") %>%
str_replace_all("Ó", "O") %>%
str_replace_all("Ú", "U")
}
analysis_data <- analysis_data %>%
mutate(state_join = normalize_state_names(state))
mx_state_map <- mx_state_map %>%
mutate(state_join = normalize_state_names(ADMIN_NAME))
spatial_data <- mx_state_map %>%
left_join(analysis_data, by = "state_join")
validation_table <- data.frame(
Metrica = c(
"Filas en hoja exports",
"Filas en hoja data filtrada",
"Filas en base analítica",
"Filas en base espacial final",
"Estados sin match en exportaciones"
),
Valor = c(
nrow(exports_selected),
nrow(data_selected),
nrow(analysis_data),
nrow(spatial_data),
sum(is.na(spatial_data$real_exports))
)
)
kable(
validation_table,
caption = "Validación de la integración espacial"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)
| Metrica | Valor |
|---|---|
| Filas en hoja exports | 32 |
| Filas en hoja data filtrada | 32 |
| Filas en base analítica | 32 |
| Filas en base espacial final | 32 |
| Estados sin match en exportaciones | 1 |
La integración espacial se realizó homologando los nombres de los estados entre la base tabular y el shapefile. Esta validación es importante porque permite confirmar que la unión fue exitosa antes de construir mapas, vecinos y medidas de autocorrelación espacial. Además, el hecho de que exista un estado sin correspondencia sugiere que pequeñas inconsistencias en los nombres pueden persistir incluso después de la normalización, lo cual es relevante porque estos casos pueden introducir sesgos o pérdida de información en el análisis espacial si no se identifican y tratan explícitamente.
selected_vars <- c(
"real_exports",
"gdp_per_capita_2018",
"pop_density",
"lq_secondary",
"border_economic_activity",
"crime_rate"
)
descriptive_stats <- analysis_data %>%
group_by(region) %>%
summarise(
across(
all_of(selected_vars),
list(
mean = ~mean(.x, na.rm = TRUE),
median = ~median(.x, na.rm = TRUE),
min = ~min(.x, na.rm = TRUE),
max = ~max(.x, na.rm = TRUE)
),
.names = "{.col}_{.fn}"
)
)
kable(
descriptive_stats,
caption = "Estadísticas descriptivas por región"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)
| region | real_exports_mean | real_exports_median | real_exports_min | real_exports_max | gdp_per_capita_2018_mean | gdp_per_capita_2018_median | gdp_per_capita_2018_min | gdp_per_capita_2018_max | pop_density_mean | pop_density_median | pop_density_min | pop_density_max | lq_secondary_mean | lq_secondary_median | lq_secondary_min | lq_secondary_max | border_economic_activity_mean | border_economic_activity_median | border_economic_activity_min | border_economic_activity_max | crime_rate_mean | crime_rate_median | crime_rate_min | crime_rate_max |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CdMx | 53147598 | 53147598 | 53147598 | 53147598 | 3920.515 | 3920.515 | 3920.5152 | 3920.515 | 6230.92334 | 6230.92334 | 6230.92334 | 6230.92334 | 0.5634425 | 0.5634425 | 0.5634425 | 0.5634425 | -1.9783682 | -1.978368 | -1.978368 | -1.9783682 | 7.96910 | 7.96910 | 7.969100 | 7.96910 |
| Centro_Sur_Oriente | 148230033 | 95440001 | 33105907 | 319121609 | 1250.400 | 1277.590 | 1045.2159 | 1353.269 | 332.70023 | 272.70202 | 113.47548 | 777.40301 | 0.9735682 | 0.9571735 | 0.5705539 | 1.6989745 | -1.9736626 | -1.986863 | -2.082189 | -1.8166366 | 21.10520 | 14.10295 | 9.300382 | 59.24236 |
| Noreste | 631749722 | 653135534 | 273330408 | 947397411 | 2504.302 | 2469.999 | 1867.8184 | 3209.392 | 51.67135 | 45.69169 | 21.63346 | 93.66857 | 1.3435605 | 1.2892904 | 1.1665560 | 1.6291052 | -1.1763678 | -1.150908 | -1.667185 | -0.7364709 | 16.79415 | 18.00023 | 4.848270 | 26.32788 |
| Noroeste | 409274781 | 210389805 | 6598584 | 1163116947 | 2139.720 | 2253.714 | 1594.1693 | 2633.286 | 27.57583 | 16.10593 | 11.32192 | 53.49869 | 1.1899882 | 1.2528681 | 0.5157059 | 1.8605077 | -0.9155327 | -1.522561 | -2.069811 | 2.4976566 | 37.49191 | 37.45813 | 6.419585 | 75.87339 |
| Occidente_Bajio | 193328819 | 146806516 | 4463690 | 490348341 | 1790.710 | 1853.244 | 1302.8220 | 2393.329 | 134.33805 | 122.59160 | 21.72366 | 262.30298 | 0.9422705 | 0.9478406 | 0.5878345 | 1.4199548 | -1.9587719 | -1.912722 | -2.286914 | -1.7322089 | 45.55110 | 34.02637 | 5.634732 | 111.06382 |
| Sur | 78741131 | 20967017 | 1008476 | 296052336 | 1930.788 | 1558.002 | 659.4383 | 5023.466 | 56.90581 | 56.44861 | 16.36854 | 99.76362 | 0.8012830 | 0.7511195 | 0.3826280 | 1.1151508 | -2.2773065 | -2.262951 | -2.536673 | -1.9591717 | 17.88571 | 14.18585 | 1.984215 | 38.55262 |
Las estadísticas descriptivas muestran que el desempeño exportador y sus posibles determinantes varían de forma importante entre regiones. Algunas concentran mayores niveles de exportaciones y mejores condiciones estructurales, mientras que otras presentan niveles más bajos y menor capacidad económica relativa.
Desde una perspectiva analítica, esto sugiere que México no presenta una estructura exportadora homogénea, sino una distribución territorial desigual en la que ciertas regiones concentran una parte desproporcionada del dinamismo económico.
dispersion_stats <- analysis_data %>%
group_by(region) %>%
summarise(
across(
all_of(selected_vars),
~sd(.x, na.rm = TRUE),
.names = "{.col}_sd"
)
)
kable(
dispersion_stats,
caption = "Desviación estándar por región"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)
| region | real_exports_sd | gdp_per_capita_2018_sd | pop_density_sd | lq_secondary_sd | border_economic_activity_sd | crime_rate_sd |
|---|---|---|---|---|---|---|
| CdMx | NA | NA | NA | NA | NA | NA |
| Centro_Sur_Oriente | 131190071 | 107.6157 | 246.19832 | 0.4085250 | 0.0930958 | 18.991657 |
| Noreste | 297334226 | 632.1664 | 30.21818 | 0.2109758 | 0.4004509 | 9.936343 |
| Noroeste | 480581192 | 421.1352 | 20.02502 | 0.5000559 | 1.7403957 | 29.375307 |
| Occidente_Bajio | 183335303 | 418.2858 | 85.48616 | 0.3281476 | 0.1687095 | 39.910159 |
| Sur | 112467854 | 1516.0561 | 26.57571 | 0.2524763 | 0.1921249 | 13.394832 |
Los resultados de dispersión indican que no todas las regiones son homogéneas internamente. Desviaciones estándar altas sugieren que dentro de una misma región existen estados con desempeños muy distintos, especialmente en exportaciones y desarrollo económico.
Esto es importante porque revela que agrupar estados por región no elimina la heterogeneidad. Por el contrario, muestra que siguen existiendo contrastes relevantes al interior de cada bloque regional, lo que refuerza la necesidad de complementar el análisis con herramientas espaciales. Adicionalmente, una alta dispersión puede estar impulsada por la presencia de uno o pocos estados con valores extremos dentro de la región, lo que implica que el comportamiento promedio regional podría no representar adecuadamente a todos los estados que la componen.
plot_hist <- function(data, var, title, xlab = NULL) {
ggplot(data, aes(x = .data[[var]])) +
geom_histogram(bins = 12, fill = "steelblue", color = "white") +
labs(
title = title,
x = ifelse(is.null(xlab), var, xlab),
y = "Frecuencia"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 10)
)
}
p1 <- plot_hist(
analysis_data,
"real_exports",
"Exportaciones reales",
"Exportaciones reales"
)
p2 <- plot_hist(
analysis_data,
"gdp_per_capita_2018",
"PIB per cápita",
"PIB per cápita"
)
p3 <- plot_hist(
analysis_data,
"pop_density",
"Densidad poblacional",
"Densidad poblacional"
)
p4 <- plot_hist(
analysis_data,
"lq_secondary",
"LQ sector secundario",
"LQ sector secundario"
)
p5 <- plot_hist(
analysis_data,
"border_economic_activity",
"Actividad económica fronteriza",
"Actividad económica fronteriza"
)
p6 <- plot_hist(
analysis_data,
"crime_rate",
"Tasa de crimen",
"Tasa de crimen"
)
(p1 | p2 | p3) / (p4 | p5 | p6)
Los histogramas muestran que varias variables presentan sesgo hacia la derecha, especialmente las relacionadas con exportaciones, densidad económica y actividad fronteriza. Esto sugiere que unos pocos estados concentran valores muy altos respecto al resto del país, mientras que la mayoría permanece en niveles más bajos.
Desde una perspectiva analítica, este patrón es consistente con una estructura económica desigual, donde el dinamismo exportador y productivo se concentra en ciertos polos territoriales. Además, la presencia de asimetría y posibles valores extremos indica que algunas variables podrían beneficiarse de una transformación logarítmica para mejorar su interpretación visual. Esto también implica que algunas medidas resumen pueden estar influenciadas por valores extremos, por lo que es importante interpretar estos resultados con cautela.
selected_vars <- c(
"real_exports",
"gdp_per_capita_2018",
"pop_density",
"lq_secondary",
"border_economic_activity",
"crime_rate"
)
analysis_long <- analysis_data %>%
pivot_longer(
cols = all_of(selected_vars),
names_to = "variable",
values_to = "value"
)
ggplot(analysis_long, aes(x = region, y = value, fill = region)) +
geom_boxplot() +
facet_wrap(~variable, scales = "free_y", nrow = 1) +
theme_minimal() +
theme(
legend.position = "none",
strip.text = element_text(size = 8, face = "bold"),
plot.title = element_text(hjust = 0.5, face = "bold")
) +
labs(
title = "Boxplots de variables seleccionadas por región",
x = "Región",
y = "Valor"
)
Los boxplots muestran una dispersión considerable entre regiones y evidencian la presencia de valores atípicos en varias variables. En particular, las exportaciones y algunos indicadores estructurales parecen estar influenciados por un grupo reducido de estados con desempeño sobresaliente.
Esto puede defenderse diciendo que la estructura exportadora mexicana no solo es desigual, sino que además está fuertemente condicionada por casos extremos que elevan la escala nacional. Por eso, los boxplots ayudan a visualizar tanto la dispersión regional como la existencia de estados que se apartan claramente del comportamiento general. También se observa que este patrón no es igual para todas las variables, lo que sugiere que la heterogeneidad regional depende del tipo de indicador analizado y no responde a una sola dinámica común.
analysis_log <- analysis_data %>%
mutate(
log_real_exports = log1p(real_exports),
log_gdp = log1p(gdp_per_capita_2018),
log_density = log1p(pop_density)
)
p_log1 <- plot_hist(
analysis_log,
"log_real_exports",
"Log de exportaciones reales",
"log(1 + exportaciones)"
)
p_log2 <- plot_hist(
analysis_log,
"log_gdp",
"Log de PIB per cápita",
"log(1 + PIB per cápita)"
)
p_log3 <- plot_hist(
analysis_log,
"log_density",
"Log de densidad poblacional",
"log(1 + densidad)"
)
p_log1 | p_log2 | p_log3
La transformación logarítmica reduce la asimetría de las variables originalmente sesgadas y permite observar con mayor claridad su distribución subyacente. En este caso, las variables transformadas se ven menos dominadas por valores extremos, lo que facilita comparaciones más equilibradas entre estados.
Metodológicamente, esta transformación es defendible porque no altera la lógica económica de las variables, pero sí mejora su legibilidad estadística y visual. Por ello, resulta útil como apoyo para interpretar distribuciones muy concentradas y para preparar futuras etapas de modelación. También permite distinguir con mayor claridad las diferencias entre estados con valores intermedios, que en la escala original podían quedar ocultas por el peso de los casos extremos.
En conjunto, el análisis de distribución muestra que las exportaciones y varios de sus posibles determinantes no siguen una estructura homogénea entre estados. Por el contrario, presentan asimetría, dispersión y valores extremos que reflejan una economía territorialmente desigual.
La combinación de histogramas, boxplots y transformaciones logarítmicas permite entender mejor tanto la magnitud de las diferencias como la forma en que estas se distribuyen. Esto fortalece la lectura del ESDA, ya que prepara el camino para interpretar de manera más sólida los patrones espaciales observados en los mapas y en las pruebas de autocorrelación. Además, estos resultados sugieren que las diferencias observadas podrían no ser aleatorias en el territorio, lo que justifica analizar si existe algún tipo de agrupamiento espacial en las siguientes secciones.
tmap_mode("plot")
tm_shape(spatial_data) +
tm_polygons(
"real_exports",
palette = "Blues",
style = "quantile",
n = 8,
title = "Exportaciones reales"
) +
tm_layout(
main.title = "Exportaciones reales por estado",
main.title.position = "center",
main.title.size = 1.2,
legend.outside = TRUE,
frame = FALSE
)
El mapa coroplético muestra que las exportaciones reales no se distribuyen de manera homogénea entre los estados del país. Algunas entidades concentran niveles mucho más altos de exportación, lo que sugiere la presencia de desigualdades territoriales y patrones de concentración regional.
Desde una lógica estratégica, esto implica que el desempeño exportador no depende únicamente de atributos individuales del estado, sino también de su posición dentro de corredores económicos, polos industriales y redes logísticas.
tm_shape(spatial_data) +
tm_polygons(
"gdp_per_capita_2018",
palette = "Greens",
style = "quantile",
n = 8,
title = "PIB per cápita"
) +
tm_layout(
main.title = "PIB per cápita por estado",
main.title.position = "center",
main.title.size = 1.2,
legend.outside = TRUE,
frame = FALSE
)
Este mapa permite evaluar si los estados con mayor ingreso presentan también una concentración territorial visible y si ese patrón coincide con un mejor desempeño exportador.
Si los estados con mayor PIB per cápita aparecen próximos o dentro de regiones similares a las de mayor exportación, eso refuerza la hipótesis de que el desarrollo económico y la competitividad externa están interrelacionados espacialmente.
tm_shape(spatial_data) +
tm_polygons(
"pop_density",
palette = "Purples",
style = "quantile",
n = 8,
title = "Densidad poblacional"
) +
tm_layout(
main.title = "Densidad poblacional por estado",
main.title.position = "center",
main.title.size = 1.2,
legend.outside = TRUE,
frame = FALSE
)
La distribución espacial de la densidad poblacional ayuda a identificar posibles efectos de aglomeración, especialmente si los estados más densos coinciden con mayores niveles de exportación.
Esto puede interpretarse como evidencia indirecta de que la concentración de población, infraestructura y actividad económica puede generar ventajas de escala relevantes para la capacidad exportadora.
tm_shape(spatial_data) +
tm_polygons(
"border_economic_activity",
palette = "Oranges",
style = "quantile",
n = 8,
title = "Actividad económica fronteriza"
) +
tm_layout(
main.title = "Actividad económica fronteriza por estado",
main.title.position = "center",
main.title.size = 1.2,
legend.outside = TRUE,
frame = FALSE
)
Este mapa permite observar si el acceso geográfico a la frontera y la integración con mercados internacionales están asociados con una mayor concentración exportadora.
Su defensa es clara: la cercanía a la frontera puede facilitar comercio, logística y vinculación con cadenas globales, por lo que una concentración espacial en esta variable tendría sentido económico.
tm_shape(spatial_data) +
tm_polygons(
"lq_secondary",
palette = "Reds",
style = "quantile",
n = 8,
title = "LQ sector secundario"
) +
tm_layout(
main.title = "Especialización del sector secundario por estado",
main.title.position = "center",
main.title.size = 1.2,
legend.outside = TRUE,
frame = FALSE
)
La especialización del sector secundario puede ayudar a explicar diferencias en el desempeño exportador, especialmente si los estados con mayor capacidad manufacturera muestran una clara concentración espacial.
Esto fortalece la idea de que la base industrial no está uniformemente distribuida, y que ciertos estados cuentan con una estructura productiva mucho más alineada con actividades exportadoras.
neighbors <- poly2nb(spatial_data, queen = TRUE)
weights <- nb2listw(neighbors, style = "W", zero.policy = TRUE)
neighbor_count <- data.frame(
state = spatial_data$ADMIN_NAME,
neighbors = card(neighbors)
)
kable(
neighbor_count,
caption = "Número de vecinos por estado bajo criterio Queen"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)
| state | neighbors |
|---|---|
| Chihuahua | 4 |
| Coahuila | 5 |
| Nuevo Leon | 4 |
| Tamaulipas | 3 |
| Sinaloa | 4 |
| Durango | 5 |
| Zacatecas | 8 |
| San Luis Potosi | 9 |
| Jalisco | 7 |
| Aguascalientes | 2 |
| Veracruz | 7 |
| Guanajuato | 5 |
| Queretaro | 5 |
| Yucatan | 2 |
| Quintana Roo | 2 |
| Hidalgo | 6 |
| Campeche | 3 |
| Puebla | 7 |
| Michoacan | 6 |
| Mexico | 8 |
| Tlaxcala | 3 |
| Colima | 2 |
| Distrito Federal | 2 |
| Morelos | 4 |
| Guerrero | 5 |
| Oaxaca | 4 |
| Tabasco | 3 |
| Chiapas | 3 |
| Sonora | 3 |
| Baja California | 2 |
| Baja California Sur | 1 |
| Nayarit | 4 |
Los estados se consideran vecinos cuando comparten frontera o vértice bajo el criterio Queen. Esta matriz de pesos espaciales permite capturar la conectividad territorial y analizar si los valores observados en un estado pueden estar relacionados con el comportamiento de sus estados colindantes.
Su defensa metodológica es importante: esta matriz convierte la geografía en una estructura analítica, haciendo posible evaluar si la proximidad espacial influye en los resultados económicos observados.
moran_vars <- c(
"real_exports",
"gdp_per_capita_2018",
"pop_density",
"lq_secondary",
"border_economic_activity"
)
missing_table <- data.frame(
variable = moran_vars,
missing_values = sapply(moran_vars, function(v) sum(is.na(spatial_data[[v]])))
)
kable(
missing_table,
caption = "Valores faltantes por variable antes de calcular Moran's I"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)
| variable | missing_values | |
|---|---|---|
| real_exports | real_exports | 1 |
| gdp_per_capita_2018 | gdp_per_capita_2018 | 1 |
| pop_density | pop_density | 1 |
| lq_secondary | lq_secondary | 1 |
| border_economic_activity | border_economic_activity | 1 |
calc_moran <- function(var_name, data_sf) {
temp_data <- data_sf %>%
filter(!is.na(.data[[var_name]]))
temp_neighbors <- poly2nb(temp_data, queen = TRUE)
temp_weights <- nb2listw(temp_neighbors, style = "W", zero.policy = TRUE)
test <- moran.test(
temp_data[[var_name]],
temp_weights,
zero.policy = TRUE
)
data.frame(
variable = var_name,
n_estados = nrow(temp_data),
moran_I = unname(test$estimate[1]),
expected_I = unname(test$estimate[2]),
p_value = test$p.value
)
}
moran_table <- lapply(moran_vars, calc_moran, data_sf = spatial_data) %>%
bind_rows()
kable(
moran_table,
caption = "Resultados de Global Moran's I"
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed")
)
| variable | n_estados | moran_I | expected_I | p_value |
|---|---|---|---|---|
| real_exports | 31 | 0.1086981 | -0.0333333 | 0.1194671 |
| gdp_per_capita_2018 | 31 | 0.2319538 | -0.0333333 | 0.0097071 |
| pop_density | 31 | 0.3713247 | -0.0333333 | 0.0000424 |
| lq_secondary | 31 | 0.1084173 | -0.0333333 | 0.1290301 |
| border_economic_activity | 31 | 0.1744160 | -0.0333333 | 0.0069022 |
El estadístico Global Moran’s I se calculó utilizando únicamente los estados con información disponible en cada variable. Esto permite evitar problemas derivados de valores faltantes y asegura una estimación válida de la autocorrelación espacial.
Los resultados de Global Moran’s I permiten evaluar si los patrones espaciales observados en los mapas corresponden a una estructura real o a una distribución aleatoria. Si los valores son positivos y estadísticamente significativos, puede concluirse que existe clustering espacial, es decir, que los estados con valores similares tienden a agruparse geográficamente.
En términos de defensa, esto implica que el desempeño exportador no se explica solo por características individuales de cada estado, sino también por su ubicación geográfica y sus vínculos con entidades vecinas. En otras palabras, México no funciona como un conjunto de estados aislados, sino como una red de clusters regionales interconectados.
spatial_real_exports <- spatial_data %>%
filter(!is.na(real_exports))
neighbors_real_exports <- poly2nb(spatial_real_exports, queen = TRUE)
weights_real_exports <- nb2listw(neighbors_real_exports, style = "W", zero.policy = TRUE)
moran.plot(
spatial_real_exports$real_exports,
weights_real_exports,
zero.policy = TRUE,
main = "Moran Plot de exportaciones reales"
)
spatial_gdp <- spatial_data %>%
filter(!is.na(gdp_per_capita_2018))
neighbors_gdp <- poly2nb(spatial_gdp, queen = TRUE)
weights_gdp <- nb2listw(neighbors_gdp, style = "W", zero.policy = TRUE)
moran.plot(
spatial_gdp$gdp_per_capita_2018,
weights_gdp,
zero.policy = TRUE,
main = "Moran Plot de PIB per cápita"
)
Los Moran plots complementan la prueba numérica al mostrar la relación entre el valor de cada estado y el promedio de sus vecinos. Esto permite visualizar si existen clusters de valores altos o bajos dentro del territorio.
Su lectura puede defenderse así: los cuadrantes del Moran Plot ayudan a distinguir agrupamientos alto, alto y bajo, bajo, así como posibles outliers espaciales. Esto vuelve más tangible la lógica de autocorrelación espacial y conecta la prueba estadística con una representación visual más intuitiva.
Estas hipótesis sirven como base para futuros modelos predictivos y espaciales, ya que integran tanto factores estructurales como posibles efectos de proximidad geográfica.
Además, permiten defender que una estrategia de predicción o intervención sobre exportaciones sería incompleta si ignorara la dimensión territorial y los posibles spillovers entre estados.En particular, los resultados de autocorrelación espacial respaldan la inclusión de efectos espaciales en futuros modelos.
Estos insights muestran que la estructura exportadora mexicana no solo es desigual, sino también territorialmente organizada. Por ello, cualquier interpretación estratégica debe considerar no solo cuánto exporta cada estado, sino también dónde está ubicado y con qué vecinos interactúa.En conjunto, la evidencia sugiere que las diferencias entre estados no son independientes entre sí, sino que forman parte de una dinámica regional interconectada.
El desempeño exportador de México es desigual y presenta una estructura territorial clara. La combinación de estadísticas descriptivas, análisis de distribución, mapas, matriz de pesos espaciales y Moran’s I permite comprender mejor cómo las diferencias regionales y la proximidad geográfica influyen en las exportaciones.
En conjunto, este ESDA ofrece una base robusta para futuros análisis predictivos y prescriptivos que incorporen explícitamente la dimensión espacial en la toma de decisiones.
Desde una perspectiva más amplia, el principal valor del ejercicio es demostrar que el territorio no es solo un contexto pasivo, sino un componente activo en la explicación del desempeño económico. Por ello, entender la geografía de las exportaciones permite generar diagnósticos más completos y decisiones más estratégicas.Esto refuerza la idea de que los patrones observados no son aleatorios, sino que responden a una estructura espacial que debe ser considerada en cualquier análisis económico aplicado.