Índice normalizado

Otra forma de apreciar el índice de marginación es normalizando sus valores para ver objetivamente la evolución de cada unidad territorial (Somarriba et al. 2013). La normalización se realiza utilizando un cambio de escala conocido como normalización mínima-máxima. Con este procedimiento el índice de marginación se escala a valores relativos con un rango de entre cero y uno, lo cual permite su comparación numérica y le da una propiedad adicional al índice de marginación. Al mismo tiempo, la normalización determina el mismo sentido que el índice obtenido por el método DP2, donde los valores cercanos a cero implican mayor marginación.

El proceso de normalización consiste en:

\[{DP}_2normalizado=\frac{{DP}_2^i-\min({DP}_2)}{\max({DP}_2)-\min({DP}_2)},\] donde:

\(\circ \: {DP}_{2}^{i}\): es el valor del índice de marginación del estado o municipio \(i\),
\(\circ \: min ({DP}_{2})\): es el valor mínimo o peor escenario que puede tomar el índice, y
\(\circ \: max ({DP}_{2})\): es el valor máximo u objetivo que puede tomar el índice.

Desviación estándar de los indicadores simples

Varianza muestral insesgada
Estimado insesgado de la varianza poblacional

\[s^{2} = \frac{1}{n-1}\left(x_{i}-\bar{x}\right)^{2} = \frac{\sum_{i=1}^{n}(x_{i}^{2})}{n-1} - \frac{\sum_{i=1}^{n}(x_{i})^{2}}{(n-1)\: n } = \left(\frac{n-1}{n}\right)s_{n}^{2} \] Se calcula la desviación estándar muestral y su inversa para un conjunto de indicadores simples. Para cada elemento:
- Extrae las columnas 5 a 13 del data frame correspondiente (DP2_).
- Calcula la desviación estándar para cada una de estas columnas.
- Ajusta la desviación estándar para obtener la desviación estándar muestral.
- Calcula la inversa de la desviación estándar muestral.
- Almacena los resultados en un data frame dentro de la lista desvest.

# Desviación estándar de los indicadores
desvest <- NULL
for(i in 1:3){
desvest[[i]] <- as.matrix(apply(get(paste0("DP2_", tablas[i]))[5:13], MARGIN = 2, sd)) %>%
                 as.data.frame() %>%
                  rename("desvest" = "V1") %>%
                   dplyr::mutate(sd_muestral = .$desvest * (sqrt((dim(get(paste0("DP2_",tablas[i]))[5:13])[1] - 1)/dim(get(paste0("DP2_",tablas[i]))[5:13])[1]))) %>%
                    dplyr::mutate(desvest.inversa = 1/(.$sd_muestral))
}
Desviación estándar
Desviación estándar Desviación estándar muestral Desviación estandar m. inversa
ANALF 3.172 3.122 0.320
SBASC 7.441 7.323 0.137
OVSDE 1.859 1.829 0.547
OVSEE 0.597 0.587 1.703
OVSAE 3.116 3.067 0.326
VHAC 6.139 6.042 0.165
OVPT 3.641 3.583 0.279
PL.5000 16.265 16.009 0.062
PO2SM 9.611 9.459 0.106

Escenarios extremos

Para este tipo de cálculo es necesario conocer los puntos más extremos que puede tomar el índice en el año de observación. De antemano, se sabe que cada indicador simple toma valores de cero a 100 y, además, el método DP2 ya proporcionó el orden de entrada de las variables. Usando estos criterios se estiman los puntos focales extremos que puede tomar el índice de marginación. Se sabe que la peor situación es cuando una unidad de análisis toca todos y cada uno de los valores mínimos del vector base de referencia común, esto sería el peor escenario de marginación y tomaría un valor de cero. En sentido contrario, el valor máximo sería la situación con la menor marginación.

Escenarios del mínimo y máximo valor en el índice DP2

Se calculan los valores mínimo y máximo del índice DP2 para diferentes escenarios y años. Para cada elemento, se calcula:
- Valor mínimo: Calcula la diferencia absoluta entre minRV_2010 y vector_minimo, ajusta con la inversa de la desviación estándar muestral y los factores de corrección, y suma las filas para obtener el DP2.
- Valor máximo: Calcula la diferencia absoluta entre minRV_2010 y un vector de ceros (vector_maximo), ajusta con la inversa de la desviación estándar muestral y los factores de corrección, y suma las filas para obtener el DP2.

minimo <- NULL
maximo <- NULL
## Mínimo valor del DP2
for(i in 1:3){
vector_minimo <- minRV_2010  
tabla <- abs(vector_minimo - minRV_2010) * desvest[[i]][["desvest.inversa"]] *
          get(paste0("ind_", tablas[i]))[["correction_factors"]][names(DP2_2020[5:13])] %>%
           t() %>%
            as.data.frame() 
minimo[[i]] <- data.frame(AÑO = paste(tablas[i]), Escenario = "Mínimo", tabla, DP2 = rowSums(tabla))
  
## Máximo valor del DP2   
vector_maximo <- rep(0, 9) # Cuando los indicadores valen cero 
tabla <- abs(vector_maximo - minRV_2010) * desvest[[i]][["desvest.inversa"]] *
          get(paste0("ind_", tablas[i]))[["correction_factors"]][names(DP2_2020[5:13])] %>%
           t() %>%
            as.data.frame() 

maximo [[i]] <- data.frame(AÑO = paste(tablas[i]), Escenario = "Máximo", tabla, DP2 = rowSums(tabla))
}

Índice normalizado

Se guarda la base de datos con el índice normalizado

Se calcula un nuevo indicador denominado `IMN para cada año, normalizando el índice DP2 entre sus valores mínimos y máximos.

for(i in 1:3){
min_DP2 <- minimo[[i]][["DP2"]]
max_DP2 <- maximo[[i]][["DP2"]]
assign(paste0("DP2_",tablas[i]), get(paste0("DP2_", tablas[i])) %>%
                                  dplyr::mutate(IMN = (get(paste0("IM_", tablas[i])) - min_DP2)/(max_DP2 -  min_DP2)))
}
Índice de marginación a nivel estatal 2020
CVE_ENT NOM_ENT POB_TOT AÑO ANALF SBASC OVSDE OVSEE OVSAE VHAC OVPT PL.5000 PO2SM IM_2020 GM_2020 IMN_2020
01 Aguascalientes 1 425 607 2020 2.1 23.6 0.3 0.2 0.6 13.1 0.8 21.3 58.5 22.206 Muy bajo 0.817
02 Baja California 3 769 020 2020 1.8 24.7 0.2 0.6 2.1 14.6 1.9 8.5 73.6 21.380 Bajo 0.787
03 Baja California Sur 798 447 2020 2.3 24.0 0.4 1.0 5.4 18.6 5.1 10.3 45.5 21.473 Bajo 0.790
04 Campeche 928 363 2020 5.9 29.8 2.5 1.0 4.0 30.0 2.7 29.9 70.0 17.805 Alto 0.655
05 Coahuila de Zaragoza 3 146 771 2020 1.7 21.5 0.3 0.2 0.9 13.5 0.7 10.0 60.0 22.546 Muy bajo 0.829
06 Colima 731 391 2020 3.4 27.8 0.3 0.3 0.7 15.3 2.6 13.5 59.7 21.532 Bajo 0.792
07 Chiapas 5 543 828 2020 13.7 48.1 2.5 1.8 10.7 36.1 12.4 57.6 85.6 11.999 Muy alto 0.441
08 Chihuahua 3 741 869 2020 2.6 27.3 1.4 1.7 1.7 13.6 2.2 14.4 66.7 20.015 Medio 0.736
09 Ciudad de México 9 209 944 2020 1.4 17.6 0.1 0.1 1.2 14.4 0.6 1.0 56.1 23.143 Muy bajo 0.851
10 Durango 1 832 650 2020 2.7 27.5 2.8 2.1 2.3 16.2 4.3 32.5 69.3 18.473 Alto 0.680
11 Guanajuato 6 166 934 2020 5.3 33.5 1.9 0.4 2.9 16.9 2.4 33.3 67.1 19.419 Medio 0.714
12 Guerrero 3 540 685 2020 12.5 42.6 9.4 1.4 11.5 32.9 15.3 48.1 80.3 10.989 Muy alto 0.404
13 Hidalgo 3 082 841 2020 6.6 29.9 1.9 0.6 3.9 18.5 2.9 53.8 73.9 18.053 Alto 0.664
14 Jalisco 8 348 151 2020 2.9 29.5 0.6 0.3 0.8 14.0 1.7 16.2 55.9 21.815 Bajo 0.803
15 México 16 992 418 2020 2.9 25.0 1.2 0.3 2.8 20.7 2.1 19.1 66.0 20.804 Bajo 0.765
16 Michoacán de Ocampo 4 748 846 2020 7.0 42.4 1.4 0.5 2.8 18.8 5.6 37.5 70.6 18.281 Alto 0.673
17 Morelos 1 971 520 2020 4.4 27.5 0.7 0.3 4.2 19.3 4.1 26.1 73.6 19.814 Medio 0.729
18 Nayarit 1 235 456 2020 4.5 29.1 4.0 2.1 3.0 18.0 4.0 36.5 64.8 17.516 Alto 0.644
19 Nuevo León 5 784 442 2020 1.5 19.1 0.1 0.1 0.7 13.2 0.8 5.1 46.8 23.444 Muy bajo 0.862
20 Oaxaca 4 132 148 2020 11.8 45.3 1.9 1.9 10.0 29.5 14.0 59.4 78.9 13.216 Muy alto 0.486
21 Puebla 6 583 278 2020 7.0 36.9 1.1 0.6 4.7 25.5 5.3 36.1 77.3 17.722 Alto 0.652
22 Querétaro de Arteaga 2 368 467 2020 3.5 23.6 1.7 0.5 2.1 15.1 2.0 28.8 57.1 20.838 Bajo 0.767
23 Quintana Roo 1 857 985 2020 3.1 22.5 1.1 0.8 1.7 26.1 2.4 11.5 57.3 20.629 Medio 0.759
24 San Luis Potosí 2 822 255 2020 5.0 29.3 1.5 1.2 7.6 16.8 5.0 36.0 64.9 18.688 Medio 0.688
25 Sinaloa 3 026 943 2020 3.6 28.9 1.4 0.4 1.4 18.9 2.3 29.3 61.8 20.510 Medio 0.755
26 Sonora 2 944 840 2020 2.0 22.4 0.7 0.7 1.3 16.6 2.4 15.2 63.2 21.406 Bajo 0.787
27 Tabasco 2 402 598 2020 5.1 29.2 1.8 0.5 6.2 26.1 3.4 53.3 71.8 18.332 Alto 0.674
28 Tamaulipas 3 527 735 2020 2.6 25.8 0.2 0.4 1.6 17.4 1.4 11.2 76.3 20.997 Bajo 0.772
29 Tlaxcala 1 342 977 2020 3.4 26.9 0.9 0.4 0.9 22.2 1.8 32.1 78.8 19.871 Medio 0.731
30 Veracruz de Ignacio de la Llave 8 062 579 2020 8.5 39.9 1.3 1.1 8.7 23.1 6.0 45.9 78.1 16.414 Alto 0.604
31 Yucatán 2 320 898 2020 6.0 31.5 5.9 0.7 1.1 26.2 1.4 23.3 69.7 17.512 Alto 0.644
32 Zacatecas 1 622 138 2020 3.8 32.3 2.3 0.5 1.8 16.2 1.2 44.4 71.9 19.497 Medio 0.717

<>

#Tabla final
for(i in tablas){
save(get(paste0("DP2_",i)), file = paste0(here::here(), "/Output/IME_", i, ".RData"))
}