El método DP2 se distingue por su propiedad de cardinalidad, que
permite realizar análisis cuantitativos precisos y significativos entre
diferentes valores del índice. Esta característica es fundamental ya que
facilita no solo la comparación directa entre distintas unidades
geográficas manteniendo su interpretación, sino que también permite
realizar operaciones de agregación como sumas y promedios ponderados. A
diferencia de otros métodos como los índices ordinales o el Análisis de
Componentes Principales (ACP
), el DP2
mantiene
la distancia relativa entre unidades, lo que resulta especialmente útil
para calcular índices regionales mediante promedios ponderados sin
perder su significado interpretativo.
El índice de marginación es una herramienta estadística fundamental para comprender y abordar las desigualdades sociales y económicas en un territorio determinado. Este índice proporciona una medida cuantitativa del grado en que una población o área geográfica se encuentra excluida del acceso a bienes y servicios esenciales para el desarrollo humano.
¿Qué mide el índice de marginación?
El índice de marginación no se limita a medir la pobreza económica, sino que abarca un espectro más amplio de dimensiones que incluyen:
Importancia del índice de marginación
Metodología
La construcción del índice de marginación implica la selección de indicadores relevantes, la ponderación de cada dimensión y la aplicación de técnicas estadísticas para obtener una medida sintética. El método de Distancia de Pena Trapero (DP2) es uno de los métodos utilizados para realizar este tipo de calculos.
El Método de Distancia DP2 de José Bernardo Peña Trapero (1977) es una herramienta poderosa para construir índices sintéticos de marginación, pobreza o desarrollo. Su fortaleza radica en la ponderación objetiva de variables y la reducción de redundancia mediante \(R^2\), lo que lo hace más robusto que otros métodos como el Análisis de Componentes Principales (ACP).
Definición
Sean:
\(\:\:\circ\:r\), el número de
entidades o municipios;
\(\:\:\circ\:n\), el número de
variables;
\(\:\:\circ\:x_{ij}\), el valor de la
variable j en la entidad o municipio\(i\);
\(\:\:\circ\:\sigma_{j}\), La
Desviación Típica de la variable \(j\);
\(\:\:\circ\:R^{2}_{i,i-1,...,1}\) el
Coeficiente de Determinación en la Regresión de \(X_{i}\) sobre \(X_{i-1},X_{i-2},...,X_{1}\).
Se define la \(Distancia-P_{2}\) de la forma:
\[\begin{align} DP_{2}=\sum^{n}_{i=1}\frac{d_{i}}{\sigma_{i}}(1-R^{2}_{i,i-1,...,1})\:\:;\;\;con \:\:R^{2}_{1}=0 \end{align}\]
Donde:
\(DP_{2}\) es el índice para la
unidad analizada.
\(d_i\) es la distancia entre el valor observado de la variable \(i\) y su referencia óptima (máximo o mínimo según la naturaleza de la variable):
\[ d_i = X_i - X_i^* \]
donde \(X_i\) es el valor observado
y \(X_i^*\) es el óptimo.
- \(\sigma_i\) es la desviación
estándar de la variable \(i\),
utilizada para normalizar las diferencias.
- \(R^2_{i, i-1, ..., 1}\) es el
coeficiente de determinación de la regresión de la variable \(i\) sobre las variables anteriores (\(i-1, i-2, ..., 1\)), lo que mide su
redundancia.
- \(R^2_1 = 0\) por definición, ya que
la primera variable no tiene otras previas con las cuales pueda estar
correlacionada.
El \(DP_{2}\) cumple con las siguientes propiedades: no negatividad, homogeneidad, conmutatividad, desigualdad triangular, existencia y determinación, monotonía, unicidad, transitividad, no duplicidad de información, invariancia al cambio de origen y/o de escala en las unidades y exhaustividad.
La propiedad de cardinalidad implica que el índice preserva relaciones de magnitud y permite comparaciones aritméticas, es decir:
Índice sintéticos ordinales
Otros índices sintéticos, como los construidos mediante
Análisis de Componentes Principales (ACP) o escalas
cualitativas, no necesariamente tienen cardinalidad.
Por ejemplo:
- Índices ordinales solo indican un orden, pero no
diferencias cuantitativas entre niveles (ejemplo: “baja”, “media”,
“alta” marginación).
- ACP puede generar índices normalizados sin interpretación
directa, lo que dificulta operaciones de agregación.
En cambio, DP2 conserva la distancia relativa entre unidades, permitiendo calcular un índice regional mediante un promedio ponderado sin perder significado.
Si agrupamos los estados en \(k\) regiones (por ejemplo, \(k = 5\)), una forma adecuada de calcular el índice DP2 regional es:
\[ DP_{2r} = \frac{\sum_{i \in R} DP_{2i}}{N_r} \]
donde:
- \(DP_{2r}\) es el índice DP2 de la
región \(r\).
- \(DP_{2i}\) es el índice DP2 del
estado o municipio \(i\) dentro
de la región \(r\).
- \(w_i\) es el peso
del estado \(i\) en la región \(r\) (por ejemplo, la población del estado o
su PIB).
- \(N_r\) es el número de estados en la
región \(r\).
Centro | Noreste | Noroeste | Occidente | Sureste |
---|---|---|---|---|
Ciudad de México | Coahuila | Baja California | Aguascalinetes | Campeche |
Guerrero | Durango | Baja California Sur | Colima | Chiapas |
Hidalgo | Nuevo Léón | Chihuahua | Guanajuato | Oaxaca |
México | San Luis Potosí | Sinaloa | Jalisco | Quintana Roo |
Morelos | Tamaulipas | Sonora | Michoacán | Tabasco |
Puebla | Nayarit | Veracruz | ||
Tlaxcala | Querétaro | Yucatán | ||
Zacatecas |
tablas <- c("2010", "2015", "2020")
for(i in 1:3){
assign(paste0("IME_", tablas[i]), read.xlsx(paste0(here::here(), "/Bases/IME_2010-2020.xlsx"), sheet = paste0("IME_", tablas[i])) %>%
filter(NOM_ENT != "Nacional") %>%
mutate(across(c(4:12, 13, 15), as.numeric))) # Convierte las columnas seleccionadas en numéricas
}
Indicadores sociodemográficos del índice de marginación, 2020 | |||||||||||||||
Nivel estatal | |||||||||||||||
CVE_ENT | NOM_ENT | POB_TOT | ANALF | SBASC | OVSDE | OVSEE | OVSAE | VHAC | OVPT | PL.5000 | PO2SM | IM_2020 | GM_2020 | IMN_2020 | LUGAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Fuente: Estimaciones del CONAPO |
Agrupación por regiones
Se clasifican las regiones por estados. Se itera sobre un conjunto de
tres tablas almacenadas en una lista (tablas), que contiene los años de
los diferentes índice de marginación. Dado que todas las bases de datos
tienen la misma estructura y dimensión se genera un loop que permite
clasificar a los estados en la variable Regiones
y
IM_Region
.
Region
: Se crea con base en la columna
CVE_ENT
, que contiene códigos de entidades federativas
(estados de México).
IM_Region
: Contiene el promedio de la columna del
índice de marginación, agrupado por la nueva variable
Region
.
for(i in 1:3){
assign(paste0("IME_", tablas[i]), get(paste0("IME_", tablas[i])) %>%
mutate(Region = case_when(CVE_ENT %in% c("09", "12", "13", "15", "17", "21", "29") ~ "Centro",
CVE_ENT %in% c("05", "10", "19", "24", "28") ~ "Noreste",
CVE_ENT %in% c("02", "03", "08", "25", "26") ~ "Noroeste",
CVE_ENT %in% c("01", "06", "11", "14", "16", "18", "22", "32") ~ "Occidente",
CVE_ENT %in% c("04", "07", "20", "23", "27", "30", "31") ~ "Sureste")) %>%
mutate(IM_Region = ave(pull(., 13), Region, FUN = mean)))
}
La función readOGR
del paquete rgdal
,
extrae automáticamente la información utilizada por otros paquetes
SIG
de código abierto como QGIS y permite a R manejar una
gama más amplia de formatos de datos espaciales. Esta función lee datos
OGR
y datos vectoriales, pero solamente permite manejar
capas con características geométricas (no mezcla puntos, líneas o
polígonos en una sola capa) y a su vez establecerá un sistema de
referencia espacial si la capa tiene dichos metadatos.
Para leer un archivo shapefile
, se establecen los
siguientes argumentos, como dsn
, en donde se indica el
directorio que contiene los shapes y layer
que es el nombre
explícito de la capa a trabajar y dichas capas deben de ir sin la
extensión .shp
.
A continuación, se lee el archivo .shp que contiene de manera
integrada la división del área geoestadística estatal
agee
.
Área geoestadística estatal agee
shape_estados <- readOGR(dsn ="D:/MGN/MGN 2020/MGN 2020/conjunto_de_datos",
layer = "00ent",
encoding = "UTF-8",
use_iconv = TRUE)
Se fusionan los datos del shape_estados
con datos
estadísticos del índice de marginación a nivel estatal
(IME_2020
), y el índice de marginación agrupado por
regiones (IM_Regiones
). El resultado es
layer_estados
, el cual es un objeto que contiene a los
estados junto con sus atributos actualizados, lo que facilita su
análisis y visualización en mapas.
IME_2020 <- IME_2020 %>%
mutate(Entidad = case_when(NOM_ENT %in% "Aguascalientes" ~ "AGS",
NOM_ENT %in% "Baja California" ~ "BC",
NOM_ENT %in% "Baja California Sur" ~ "BCS",
NOM_ENT %in% "Campeche" ~ "CAM",
NOM_ENT %in% "Coahuila de Zaragoza" ~ "COAH",
NOM_ENT %in% "Colima" ~ "COL",
NOM_ENT %in% "Chiapas" ~ "CHIS",
NOM_ENT %in% "Chihuahua" ~ "CHIH",
NOM_ENT %in% "Ciudad de México" ~ "CDMX",
NOM_ENT %in% "Durango" ~ "DGO",
NOM_ENT %in% "Guanajuato" ~ "GTO",
NOM_ENT %in% "Guerrero" ~ "GRO",
NOM_ENT %in% "Hidalgo" ~ "HGO",
NOM_ENT %in% "Jalisco" ~ "JAL",
NOM_ENT %in% "México" ~ "MEX",
NOM_ENT %in% "Michoacán de Ocampo" ~ "MICH",
NOM_ENT %in% "Morelos" ~ "MOR",
NOM_ENT %in% "Nayarit" ~ "NAY",
NOM_ENT %in% "Nuevo León" ~ "NL",
NOM_ENT %in% "Oaxaca" ~ "OAX",
NOM_ENT %in% "Puebla" ~ "PUE",
NOM_ENT %in% "Querétaro de Arteaga" ~ "QRO",
NOM_ENT %in% "Quintana Roo" ~ "QROO",
NOM_ENT %in% "San Luis Potosí" ~ "SLP",
NOM_ENT %in% "Sinaloa" ~ "SIN",
NOM_ENT %in% "Sonora" ~ "SON",
NOM_ENT %in% "Tabasco" ~ "TAB",
NOM_ENT %in% "Tamaulipas" ~ "TAM",
NOM_ENT %in% "Tlaxcala" ~ "TLAX",
NOM_ENT %in% "Veracruz de Ignacio de la Llave" ~ "VER",
NOM_ENT %in% "Yucatán" ~ "YUC",
NOM_ENT %in% "Zacatecas" ~ "ZAC"))
# "coordinates()" extrae los centroides de los polígonos, en el orden indicado en shape@data
centroids.df <- as.data.frame(coordinates(shape_estados)) %>%
rename("Longitude" = "V1","Latitude" = "V2") %>%
cbind(IME_2020)
p <- ggplot() +
layer_spatial(layer_estados, aes(fill = IM_2020),
color = "dark grey",
size = 0.5) +
geom_label_repel(data = centroids.df,
aes(label = paste(Entidad, "\n", round(IM_2020, 2)),
x = Longitude,
y = Latitude),
force = 0.6,
box.padding = 0.25,
min.segment.length = 0.5,
size = 2.5,
fill = "transparent",
point.padding = 0.5,
segment.size = 0.7,
segment.colour= "dark grey",
label.size = 0,
alpha = 0.8) +
theme_bw() +
theme(plot.title = element_text(size = 22, hjust = 0.15, family = "montserrat", face = "bold"),
plot.caption = element_text(size = 11, hjust = 0.2, vjust = 1, family = "montserrat"),
legend.key.size = unit(0.5, "cm"),
legend.text = element_text(size = 12, family = "montserrat"),
legend.title = element_text(size = 10, hjust = 0.5, family = "montserrat", face = "bold"),
legend.position = "right"
) +
scale_fill_viridis_c(option = "A", begin = 0.3, end = 1) +
scale_color_manual(values = viridis(32, option = "A", begin = 0.3, end = 1)) +
guides(color = guide_legend(override.aes = list(fill = usecol(pal = pal_petrol, n = 5)))) +
labs(title = "Índice de marginación a nivel estatal, 2020",
fill = stringr::str_wrap("Índice de marginación", 10),
caption = expression(paste("Fuentes: Estimaciones del CONAPO con base en el INEGI, Censo de Población y Vivienda 2020")))
p
path = "Output/Mapa del IMM2020.pdf"
ggexport(p, filename = path ,width = 10, height = 10, device = "cairo")
El análisis del índice de marginación revela que las entidades con un nivel muy alto son Guerrero (10.9), Oaxaca (13.2) y Chiapas (11.9). Estas entidades comprenden una población total de 13.2 millones de habitantes, constituyendo el 10.4% de la población mexicana, con un promedio de 12.06 unidades según el índice.
Las entidades clasificadas con un índice de marginación con un nivel alto incluyen Campeche (17.8), Durango (18.4), Hidalgo (18.05), Michoacán (18.28), Nayarit (17.51), Puebla (17.72), Tabasco (18.3), Veracruz (16.4) y Yucatán (17.5). Esta categoría abarca 31.9 millones de habitantes, representando el 24.7% de la población nacional en 2020, con un promedio de 17.78 unidades en el índice.
En contraste, las entidades que exhiben un índice de marginación de nivel muy bajo comprenden Aguascalientes (22.2), Coahuila (22.5), Ciudad de México (23.14) y Nuevo León (23.44). Este grupo engloba una población de 19.5 millones de habitantes, lo que constituye el 15.5% de la población nacional, alcanzando un promedio de 22.8 unidades en el índice.
# "coordinates()" extrae los centroides de los polígonos, en el orden indicado en shape@data
centroids.df <- as.data.frame(coordinates(shape_estados)) %>%
rename("Longitude" = "V1","Latitude" = "V2") %>%
cbind(IME_2020) %>%
filter(NOM_ENT %in% c("Ciudad de México", "Nuevo León", "Chihuahua", "Jalisco", "Chiapas"))
p <- ggplot() +
layer_spatial(layer_estados, aes(fill = IM_Region),
color = "dark grey",
size = 0.5) +
geom_label_repel(data = centroids.df,
aes(label = paste(Region, "\n", round(IM_Region, 2)),
x = Longitude,
y = Latitude),
force = 0.6,
box.padding = 0.25,
min.segment.length = 0.5,
size = 3.5,
fill = "transparent",
point.padding = 0.5,
segment.size = 0.7,
segment.colour= "dark grey",
label.size = 0,
alpha = 0.8) +
theme_bw() +
theme(plot.title = element_text(size = 22, hjust = 0.15, family = "montserrat", face = "bold"),
plot.caption = element_text(size = 11, hjust = 0.2, vjust = 1, family = "montserrat"),
legend.key.size = unit(0.5, "cm"),
legend.text = element_text(size = 12, family = "montserrat"),
legend.title = element_text(size = 10, hjust = 0.5, family = "montserrat", face = "bold"),
legend.position = "right"
) +
scale_fill_viridis_c(option = "A", begin = 0.3, end = 1) +
scale_color_manual(values = viridis(32, option = "A", begin = 0.3, end = 1)) +
guides(color = guide_legend(override.aes = list(fill = usecol(pal = pal_petrol, n = 5)))) +
labs(title = "Índice de marginación a nivel regional, 2020",
fill = stringr::str_wrap("Índice de marginación", 10),
caption = expression(paste("Fuentes: Estimaciones del CONAPO con base en el INEGI, Censo de Población y Vivienda 2020")))
p
path = "Output/Mapa del IMM2020 Región.pdf"
ggexport(p, filename = path, width = 10, height = 10, device = "cairo")
El análisis del índice de marginación regional indica que la región Centro, integrada por Hidalgo, Puebla, México, Morelos, Tlaxcala, Guerrero y Ciudad de México, concentra el 33.9% de la población nacional con un índice promedio de 18.6 unidades. Es notable destacar que Guerrero presenta el índice más bajo a nivel nacional con 10.9 unidades, mientras que la Ciudad de México, con 23.14 unidades, se posiciona como la segunda entidad con mejor nivel de bienestar en el país.
La región Noreste, constituida por Durango, Tamaulipas, San Luis Potosí, Coahuila y Nuevo León, alberga el 13.5% de la población nacional (34.2 millones de habitantes) y registra un índice de 20.82 unidades.
La región Noroeste, compuesta por Baja California, Baja California Sur, Sonora, Chihuahua y Sinaloa, representa el 11.3% de la población nacional (14.2 millones de habitantes) con un índice de 20.9 unidades, posicionándose como la región con menor marginación.
La región Occidente, que comprende Michoacán, Nayarit, Colima, Jalisco, Querétaro, Guanajuato, Zacatecas y Aguascalientes, concentra el 13.5% de la población nacional (26.6 millones de habitantes) y mantiene un índice de 20.13 unidades.
La región Sureste, integrada por Campeche, Tabasco, Veracruz, Yucatán, Quintana Roo, Chiapas y Oaxaca, representa el 20.03% de la población nacional (25.2 millones de habitantes) y registra un índice de 16.5 unidades.
Datos Abiertos de México - Índice de marginación (carencias poblacionales) por localidad, municipio y entidad. (2021). Retrieved February 13, 2022, from https://datos.gob.mx/busca/dataset/indice-de-marginacion-carencias-poblacionales-por-localidad-municipio-y-entidad
Librerías que se usaron en el trabajo
package | loadedversion | source |
---|---|---|
dplyr | 1.1.3 | CRAN (R 4.3.2) |
forcats | 1.0.0 | CRAN (R 4.3.1) |
ggplot2 | 3.4.3 | CRAN (R 4.3.1) |
ggpubr | 0.6.0 | CRAN (R 4.3.1) |
ggrepel | 0.9.3 | CRAN (R 4.3.1) |
ggspatial | 1.1.9 | CRAN (R 4.3.2) |
gt | 0.10.0 | CRAN (R 4.3.1) |
kableExtra | 1.3.4 | CRAN (R 4.3.1) |
knitr | 1.45 | CRAN (R 4.3.2) |
lubridate | 1.9.3 | CRAN (R 4.3.2) |
openxlsx | 4.2.5.2 | CRAN (R 4.3.1) |
purrr | 1.0.1 | CRAN (R 4.3.1) |
RColorBrewer | 1.1-3 | CRAN (R 4.3.0) |
readr | 2.1.4 | CRAN (R 4.3.1) |
readxl | 1.4.3 | CRAN (R 4.3.1) |
rgdal | 1.6-7 | CRAN (R 4.3.1) |
sf | 1.0-16 | CRAN (R 4.3.3) |
showtext | 0.9-6 | CRAN (R 4.3.1) |
showtextdb | 3.0 | CRAN (R 4.3.1) |
sp | 2.2-0 | CRAN (R 4.3.3) |
spData | 2.3.1 | CRAN (R 4.3.3) |
spdep | 1.3-5 | CRAN (R 4.3.3) |
spdplyr | 0.4.0 | Github (mdsumner/spdplyr@e14dec9017a96c309065ab319da96c839cac6f58) |
stringr | 1.5.0 | CRAN (R 4.3.1) |
sysfonts | 0.8.8 | CRAN (R 4.3.1) |
tibble | 3.2.1 | CRAN (R 4.3.1) |
tidyr | 1.3.1 | CRAN (R 4.3.3) |
tidyverse | 2.0.0 | CRAN (R 4.3.1) |
unikn | 0.9.0 | CRAN (R 4.3.1) |
viridisLite | 0.4.2 | CRAN (R 4.3.1) |
This
work by Diana Villasana
Ocampo is licensed under a
Creative
Commons Attribution 4.0 International License.