pacman::p_load(readr, readxl,knitr, kableExtra, MASS, ggcorrplot)
Cargamos bases de datos
dibas = "D:/Centro_geo/C02_SIG/proyecto_final/"
# Cargar la base de datos principal
bd <- read_csv(paste0(dibas,"c01_exploracion_datos/analisis_r/bd_ent_socioeconomico_2020.csv"),show_col_types = FALSE)
# Cargar el diccionario de variables
dic_bd <- read_csv(paste0(dibas,"c01_exploracion_datos/analisis_r/diccionario_bd.csv"),show_col_types = FALSE)
# Mostrar la tabla de la base de datos principal
kable(head(bd), format = "html", table.attr = "style='width:100%;'") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F) %>%
scroll_box(width = "100%", height = "400px")
aa_cen | aa_cve_ent | aa_pobtot20 | al_caal | al_paal | cs_cgin | cs_ring | cv_ccvi | cv_pcvi | cv_vhac | ga_plm5 | ga_porb | pz_cpbr | i_cpex | i_cpmo | i_crze | i_inma | pz_inmn | i_irsl | i_pnnv | pz_pobr | pz_ppbr | i_ppex | ip_pvin | ie_nesc | ip_pism | ip_inc | ip_int | ip_pibc | ip_pibe | re_p15a | re_p15b | re_p15m | re_p6ae | re_pana | re_pse | re_psp | re_ptot | sb_csbv | sb_psbv | sb_pvae | sb_pvdd | sb_pvdi | sb_pvdl | sb_pvdr | sb_pvdt | sb_pvee | sb_pves | sb_pvpt | se_c1cs | se_c3cs | se_cass | ss_casa | se_cvcs | se_p1cs | se_p3cs | ss_pasa | se_pass | ss_psds | se_pvcl | se_pvcs | se_pvdc | ie_pcom | ie_pint | ie_pele | ie_pagu | ie_psan | ed_phind | ed_pasi | ed_crean | ed_esex | ed_desp |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AGU | 1 | 1425607 | 2.1 | 17.4 | 0.4 | 0.8 | 2.6 | 4.0 | 13.1 | 21.3 | 0.17 | 1.8 | 3.3 | 1.7 | 2.2 | 22.2 | 0.8 | 0.2 | 33.4 | 392042 | 27.5 | 2.7 | 9.4 | 2302 | 58.5 | 3.028 | 4316774 | 142703 | 204726 | 2.1 | 23.5 | 1059395 | 5.0 | 21833 | 68530 | 159005 | 249368 | 3.1 | 2.1 | 0.6 | 0.6 | 38.9 | 13.0 | 5.4 | 4.0 | 0.3 | 0.6 | 0.8 | 1.7 | 3.2 | 1.9 | 2.4 | 1.6 | 57.3 | 9.1 | 20.2 | 42.7 | 18.4 | 54.1 | 29.7 | 6.8 | 64.025 | 74.025 | 74.425 | 72.400 | 70.400 | 0.0 | 73.60 | 0.40 | 1.900 | 5.733333 |
BCN | 2 | 3769020 | 2.2 | 12.7 | 0.4 | 0.5 | 2.4 | 6.8 | 14.6 | 8.5 | 0.73 | 1.9 | 3.4 | 1.8 | 2.2 | 21.4 | 0.8 | 0.4 | 31.7 | 870644 | 23.1 | 1.7 | 6.4 | 4554 | 73.6 | 2.323 | 8755674 | 152317 | 553650 | 1.8 | 24.6 | 2949750 | 6.5 | 52736 | 199904 | 470015 | 722655 | 2.7 | 5.0 | 2.1 | 3.5 | 30.1 | 17.3 | 5.1 | 6.4 | 0.8 | 0.7 | 2.0 | 1.8 | 3.3 | 1.9 | 2.4 | 1.7 | 61.9 | 10.0 | 24.0 | 46.9 | 22.2 | 49.6 | 38.8 | 5.6 | 73.200 | 73.700 | 73.775 | 67.575 | 65.400 | 1.3 | 74.32 | -0.78 | 1.925 | 5.366667 |
BCS | 3 | 798447 | 2.2 | 22.7 | 0.4 | 0.9 | 2.7 | 11.4 | 18.6 | 10.3 | 9.05 | 2.1 | 3.6 | 1.9 | 2.4 | 21.5 | 0.8 | 0.4 | 31.8 | 218774 | 27.4 | 3.5 | 7.0 | 1336 | 45.5 | 2.257 | 1802259 | 151590 | 121986 | 2.3 | 23.9 | 618726 | 4.2 | 14089 | 41905 | 90080 | 146074 | 3.0 | 9.4 | 5.0 | 2.6 | 37.9 | 31.5 | 8.2 | 10.5 | 1.2 | 1.3 | 4.7 | 1.9 | 3.4 | 2.1 | 2.6 | 1.7 | 61.2 | 13.1 | 17.4 | 40.4 | 16.2 | 54.5 | 33.9 | 5.4 | 65.850 | 67.800 | 73.075 | 68.450 | 63.400 | 0.1 | 77.40 | 0.18 | 1.650 | 5.333333 |
CAM | 4 | 928363 | 2.9 | 24.5 | 0.5 | 6.0 | 3.3 | 13.5 | 30.0 | 29.9 | 1.72 | 2.5 | 3.5 | 2.1 | 3.0 | 17.8 | 0.7 | 0.9 | 20.0 | 450256 | 48.5 | 11.9 | 6.3 | 2274 | 70.0 | 2.514 | 2334258 | 481697 | 481995 | 5.9 | 29.7 | 694979 | 6.4 | 39910 | 66664 | 100167 | 206741 | 2.9 | 33.5 | 4.0 | 5.1 | 56.2 | 22.7 | 16.0 | 13.1 | 1.4 | 3.6 | 2.7 | 2.3 | 3.4 | 2.5 | 2.9 | 1.9 | 73.7 | 28.0 | 21.0 | 58.4 | 21.9 | 66.3 | 25.2 | 16.1 | 49.875 | 44.850 | 73.550 | 67.925 | 64.425 | 2.9 | 76.16 | -1.16 | 2.525 | 6.166667 |
COA | 5 | 3146771 | 2.1 | 15.2 | 0.4 | 0.9 | 2.5 | 2.8 | 13.5 | 10.0 | 0.90 | 1.9 | 3.3 | 1.8 | 2.0 | 22.5 | 0.8 | 0.2 | 38.5 | 742638 | 23.6 | 2.3 | 11.3 | 5513 | 60.0 | 4.011 | 12621481 | 166389 | 535558 | 1.7 | 21.3 | 2359455 | 5.0 | 38298 | 124955 | 351877 | 515130 | 2.8 | 3.2 | 1.0 | 1.2 | 42.3 | 13.4 | 3.3 | 4.1 | 0.3 | 0.7 | 0.8 | 1.8 | 3.3 | 2.0 | 2.4 | 1.6 | 50.2 | 8.4 | 21.6 | 34.0 | 19.0 | 59.1 | 26.6 | 8.4 | 56.800 | 56.050 | 73.450 | 60.500 | 45.750 | 0.0 | 74.92 | 0.08 | 2.325 | 5.200000 |
COL | 6 | 731391 | 2.3 | 16.6 | 0.4 | 0.7 | 2.7 | 7.4 | 15.3 | 13.5 | 0.31 | 2.0 | 3.5 | 1.8 | 2.3 | 21.5 | 0.8 | 0.5 | 31.0 | 203327 | 27.8 | 2.7 | 6.5 | 1480 | 59.7 | 1.953 | 1428050 | 128953 | 101248 | 3.4 | 27.7 | 567729 | 6.0 | 18792 | 49976 | 89670 | 158438 | 2.9 | 7.9 | 0.7 | 0.5 | 41.5 | 24.8 | 6.6 | 8.7 | 0.5 | 0.8 | 2.5 | 1.8 | 3.4 | 2.0 | 2.5 | 1.7 | 62.5 | 11.6 | 19.0 | 47.0 | 16.8 | 60.2 | 34.7 | 8.7 | 63.200 | 67.075 | 73.325 | 72.775 | 68.100 | 0.1 | 77.32 | -0.20 | 4.450 | 5.433333 |
# Mostrar la tabla del diccionario de variables
kable(head(dic_bd), format = "html", table.attr = "style='width:100%;'") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F) %>%
scroll_box(width = "100%", height = "400px")
aspectos | criterio | variable | descripcion |
---|---|---|---|
derechos sociales | alimentacion | al_caal | Carencias promedio en carencia por acceso a la alimentación |
derechos sociales | alimentacion | al_paal | Porcentaje de poblacion en carencia por acceso a la alimentación |
derechos sociales | calidad y espacios vivienda | cv_ccvi | Carencias promedio en carencia por calidad y espacios de la vivienda |
derechos sociales | calidad y espacios vivienda | cv_pcvi | Porcentaje de poblacion carencia por calidad y espacios de la vivienda |
derechos sociales | calidad y espacios vivienda | cv_vhac | % Viviendas particulares con hacinamiento |
clave | clave | aa_cen | Clave 3 letras de entidad |
Aqui se genera un correlagrama por CRITERIO versus la variable de población analfabeta.
# Filtrar las variables por criterio
variables_alimentacion <- dic_bd$variable[dic_bd$criterio == "alimentacion"]
# Crear una base de datos filtrada con las variables de alimentacion y re_ptot
bd_filtro <- bd[, c(variables_alimentacion, "re_pana")]
# Calcular la matriz de correlacion
matriz_correlacion <- cor(bd_filtro, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(matriz_correlacion,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs alimentación",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_espacios <- dic_bd$variable[dic_bd$criterio == "calidad y espacios vivienda"]
# Crear una base de datos filtrada con las variables de alimentacion y re_ptot
bd_cev <- bd[, c(var_espacios, "re_pana")]
# Calcular la matriz de correlacion
mc_cev <- cor(bd_cev, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_cev,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Calidad y vivienda ",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_cs <- dic_bd$variable[dic_bd$criterio == "cohesion social"]
# Crear una base de datos filtrada con estas variables
bd_cs <- bd[, c(var_cs, "re_pana")]
# Calcular la matriz de correlacion
mc_cs <- cor(bd_cs, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_cs,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Cohesion social",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_edu <- dic_bd$variable[dic_bd$criterio == "educativo"]
# Crear una base de datos filtrada con estas variables
bd_edu <- bd[, c(var_edu, "re_pana")]
# Calcular la matriz de correlacion
mc_edu <- cor(bd_edu, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_edu,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Eduacion",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_gdcap <- dic_bd$variable[dic_bd$criterio == "grado accesibilidad"]
# Crear una base de datos filtrada con estas variables
bd_gd <- bd[, c(var_gdcap, "re_pana")]
# Calcular la matriz de correlacion
mc_gd <- cor(bd_gd, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_gd,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Grado accesibilidad",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_infra <- dic_bd$variable[dic_bd$criterio == "infraestructura educativa"]
# Crear una base de datos filtrada con estas variables
bd_infra <- bd[, c(var_infra, "re_pana")]
# Calcular la matriz de correlacion
mc_infra <- cor(bd_infra, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_infra,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Infraestructura educativa",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_inper <- dic_bd$variable[dic_bd$criterio == "ingreso per capita"]
# Crear una base de datos filtrada con estas variables
bd_inper <- bd[, c(var_inper, "re_pana")]
# Calcular la matriz de correlacion
mc_inper <- cor(bd_inper, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_inper,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Ingreso per capita",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_seg <- dic_bd$variable[dic_bd$criterio == "seguridad social"]
# Crear una base de datos filtrada con estas variables
bd_seg <- bd[, c(var_seg, "re_pana")]
# Calcular la matriz de correlacion
mc_seg <- cor(bd_seg, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_seg,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Seguridad social",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_sv <- dic_bd$variable[dic_bd$criterio == "servicios basicos vivienda"]
# Crear una base de datos filtrada con estas variables
bd_sv <- bd[, c(var_sv, "re_pana")]
# Calcular la matriz de correlacion
mc_sv <- cor(bd_sv, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_sv,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Servicios basicos vivienda",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_sal <- dic_bd$variable[dic_bd$criterio == "servicios de salud"]
# Crear una base de datos filtrada con estas variables
bd_sal <- bd[, c(var_sal, "re_pana")]
# Calcular la matriz de correlacion
mc_sal <- cor(bd_sal, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_sal,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Servicios salud",
colors = c("blue", "white", "red"))
El criterio de rezago educativo no se toma en cuenta, este se representa mediante la variable independiente (re_pana = población total analfabeta) y presenta alguna relación con las demas variables de este criterio, lo que puede causar una colinealidad entre variables y reducir la precisión del modelo.
# Filtrar las variables del diccionario por criterio
var_rezg <- dic_bd$variable[dic_bd$criterio %in% c("rezago educativo")]
# Crear una base de datos filtrada con estas variables
bd_rezg <- bd[, var_rezg]
# Calcular la matriz de correlacion
mc_rezg <- cor(bd_rezg, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_rezg,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Rezago educativo",
colors = c("blue", "white", "red"))
# Filtrar las variables
var_pbrz <- dic_bd$variable[dic_bd$criterio == "pobreza"]
# Crear una base de datos filtrada con estas variables
bd_pbrz <- bd[, c(var_pbrz, "re_pana")]
# Calcular la matriz de correlacion
mc_pbrz <- cor(bd_pbrz, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(mc_pbrz,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs Pobreza",
colors = c("blue", "white", "red"))
# Seleccionar las variables especificas
variables_correlacion <- c("re_pana", "al_caal", "cv_ccvi", "cs_ring",
"ed_phind", "ga_porb", "ie_nesc", "ip_pism",
"se_cvcs", "sb_pvdr", "ss_pasa", "pz_pobr"
)
# Filtrar las variables de interes en la base de datos
bd_filtro <- bd[, variables_correlacion]
# Calcular la matriz de correlacion
matriz_correlacion <- cor(bd_filtro, use = "pairwise.complete.obs")
# Generar el correlograma
ggcorrplot(matriz_correlacion,
type = "lower",
lab = TRUE,
title = "Correlograma: Población analfabeta vs variables socioeconomicas",
colors = c("red", "white", "blue"))
Una vez definidas las variables del apartado anterior para probar el modelo de regresión lineal, con el objetivo de identificar las variables predictoras más significativas que contribuyen la cantidad de población con analfabetismo (re_pana). Esto se utiliza el método stepwise que garantiza una selección óptima de variables, considerando criterios estadísticos que definen la probabilidad de obtener los resultados observados si estas no tuvieran ningún efecto en el modelo (i.e. Criterio de Información de Akaike y el valor de p). Este proceso permitió reducir el modelo inicial que incluía todas las variables consideradas relevantes en el análisis preliminar, optimizando el ajuste estadístico mediante la inclusión o exclusión de variables.
# Preparar el modelo inicial (modelo nulo) y completo
modelo_nulo <- lm(re_pana ~ 1, data = bd)
# Ajustar el modelo completo de regresian lineal
modelo_completo <- lm(re_pana ~
al_caal + cv_ccvi + cs_ring + ga_porb + ip_pism +
pz_pobr + se_cvcs + sb_pvdr + ss_pasa +
ie_nesc + ed_phind, data = bd)
# Mostrar un resumen del modelo
summary(modelo_completo)
##
## Call:
## lm(formula = re_pana ~ al_caal + cv_ccvi + cs_ring + ga_porb +
## ip_pism + pz_pobr + se_cvcs + sb_pvdr + ss_pasa + ie_nesc +
## ed_phind, data = bd)
##
## Residuals:
## Min 1Q Median 3Q Max
## -49146 -15421 -4800 14628 48014
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.994e+05 1.111e+05 -2.695 0.0139 *
## al_caal 5.028e+03 5.623e+04 0.089 0.9296
## cv_ccvi -2.081e+04 3.725e+04 -0.559 0.5826
## cs_ring 1.681e+03 1.479e+03 1.137 0.2692
## ga_porb 2.820e+02 2.275e+03 0.124 0.9026
## ip_pism 5.337e+02 8.342e+02 0.640 0.5296
## pz_pobr -2.262e-03 9.690e-03 -0.233 0.8178
## se_cvcs 1.857e+05 1.001e+05 1.855 0.0783 .
## sb_pvdr 2.305e+03 1.626e+03 1.418 0.1716
## ss_pasa -2.849e+03 1.844e+03 -1.545 0.1380
## ie_nesc 1.959e+01 3.258e+00 6.013 7.04e-06 ***
## ed_phind -7.675e+02 2.527e+03 -0.304 0.7645
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 28540 on 20 degrees of freedom
## Multiple R-squared: 0.9742, Adjusted R-squared: 0.96
## F-statistic: 68.55 on 11 and 20 DF, p-value: 2.1e-13
# Aplicar la seleccion stepwise
modelo_stepwise <- step(modelo_nulo,
scope = list(lower = modelo_nulo, upper = modelo_completo),
direction = "both") # "both" para hacia adelante y hacia atras
## Start: AIC=760.53
## re_pana ~ 1
##
## Df Sum of Sq RSS AIC
## + ie_nesc 1 5.5825e+11 7.2262e+10 693.21
## + pz_pobr 1 4.2638e+11 2.0414e+11 726.44
## + ss_pasa 1 3.7197e+11 2.5855e+11 734.00
## + al_caal 1 3.6460e+11 2.6592e+11 734.90
## + se_cvcs 1 3.2479e+11 3.0572e+11 739.37
## + cs_ring 1 3.1313e+11 3.1739e+11 740.57
## + ed_phind 1 3.0558e+11 3.2493e+11 741.32
## + sb_pvdr 1 2.9107e+11 3.3944e+11 742.71
## + ga_porb 1 2.5469e+11 3.7583e+11 745.97
## + cv_ccvi 1 2.4887e+11 3.8165e+11 746.46
## + ip_pism 1 1.8640e+11 4.4412e+11 751.32
## <none> 6.3052e+11 760.53
##
## Step: AIC=693.21
## re_pana ~ ie_nesc
##
## Df Sum of Sq RSS AIC
## + cs_ring 1 4.4712e+10 2.7550e+10 664.35
## + al_caal 1 4.4351e+10 2.7910e+10 664.77
## + sb_pvdr 1 4.4211e+10 2.8051e+10 664.93
## + se_cvcs 1 4.3963e+10 2.8299e+10 665.21
## + ed_phind 1 3.8462e+10 3.3799e+10 670.90
## + cv_ccvi 1 3.3041e+10 3.9220e+10 675.66
## + ga_porb 1 2.6195e+10 4.6067e+10 680.80
## + ip_pism 1 2.2964e+10 4.9297e+10 682.97
## + ss_pasa 1 1.2679e+10 5.9583e+10 689.04
## <none> 7.2262e+10 693.21
## + pz_pobr 1 3.0481e+09 6.9214e+10 693.83
## - ie_nesc 1 5.5825e+11 6.3052e+11 760.53
##
## Step: AIC=664.35
## re_pana ~ ie_nesc + cs_ring
##
## Df Sum of Sq RSS AIC
## + se_cvcs 1 6.4535e+09 2.1096e+10 657.81
## + sb_pvdr 1 5.4075e+09 2.2142e+10 659.36
## + al_caal 1 5.3936e+09 2.2156e+10 659.38
## + cv_ccvi 1 3.4739e+09 2.4076e+10 662.04
## <none> 2.7550e+10 664.35
## + ip_pism 1 1.1944e+09 2.6355e+10 664.93
## + ed_phind 1 7.6788e+08 2.6782e+10 665.45
## + ga_porb 1 5.4441e+08 2.7005e+10 665.71
## + ss_pasa 1 9.4836e+07 2.7455e+10 666.24
## + pz_pobr 1 1.4891e+07 2.7535e+10 666.34
## - cs_ring 1 4.4712e+10 7.2262e+10 693.21
## - ie_nesc 1 2.8984e+11 3.1739e+11 740.57
##
## Step: AIC=657.81
## re_pana ~ ie_nesc + cs_ring + se_cvcs
##
## Df Sum of Sq RSS AIC
## + sb_pvdr 1 2.1040e+09 1.8992e+10 656.45
## + ss_pasa 1 1.8713e+09 1.9225e+10 656.84
## <none> 2.1096e+10 657.81
## + ip_pism 1 5.4641e+08 2.0550e+10 658.97
## + ed_phind 1 2.8620e+08 2.0810e+10 659.37
## + ga_porb 1 2.8314e+08 2.0813e+10 659.38
## + al_caal 1 2.5399e+08 2.0842e+10 659.42
## + cv_ccvi 1 4.2118e+07 2.1054e+10 659.75
## + pz_pobr 1 2.3874e+06 2.1094e+10 659.81
## - se_cvcs 1 6.4535e+09 2.7550e+10 664.35
## - cs_ring 1 7.2031e+09 2.8299e+10 665.21
## - ie_nesc 1 2.5548e+11 2.7658e+11 738.16
##
## Step: AIC=656.45
## re_pana ~ ie_nesc + cs_ring + se_cvcs + sb_pvdr
##
## Df Sum of Sq RSS AIC
## + ss_pasa 1 1.9864e+09 1.7006e+10 654.91
## <none> 1.8992e+10 656.45
## - sb_pvdr 1 2.1040e+09 2.1096e+10 657.81
## + pz_pobr 1 2.2190e+08 1.8770e+10 658.07
## + ga_porb 1 1.5646e+08 1.8836e+10 658.18
## + ip_pism 1 8.2388e+07 1.8910e+10 658.31
## - cs_ring 1 2.4593e+09 2.1451e+10 658.35
## + cv_ccvi 1 5.5783e+07 1.8936e+10 658.36
## + al_caal 1 3.6430e+07 1.8956e+10 658.39
## + ed_phind 1 2.1328e+07 1.8971e+10 658.41
## - se_cvcs 1 3.1500e+09 2.2142e+10 659.36
## - ie_nesc 1 2.5404e+11 2.7303e+11 739.75
##
## Step: AIC=654.91
## re_pana ~ ie_nesc + cs_ring + se_cvcs + sb_pvdr + ss_pasa
##
## Df Sum of Sq RSS AIC
## <none> 1.7006e+10 654.91
## + ip_pism 1 2.5511e+08 1.6751e+10 656.43
## - ss_pasa 1 1.9864e+09 1.8992e+10 656.45
## + cv_ccvi 1 1.7085e+08 1.6835e+10 656.59
## + ed_phind 1 6.8377e+07 1.6937e+10 656.79
## - sb_pvdr 1 2.2190e+09 1.9225e+10 656.84
## + pz_pobr 1 2.1556e+07 1.6984e+10 656.87
## + ga_porb 1 1.2538e+07 1.6993e+10 656.89
## + al_caal 1 9.1998e+06 1.6996e+10 656.90
## - cs_ring 1 2.2574e+09 1.9263e+10 656.90
## - se_cvcs 1 5.0679e+09 2.2074e+10 661.26
## - ie_nesc 1 1.9444e+11 2.1144e+11 733.57
# Resumen del modelo stepwise
summary(modelo_stepwise)
##
## Call:
## lm(formula = re_pana ~ ie_nesc + cs_ring + se_cvcs + sb_pvdr +
## ss_pasa, data = bd)
##
## Residuals:
## Min 1Q Median 3Q Max
## -48087 -13295 -2828 16690 50917
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.710e+05 8.124e+04 -3.336 0.00257 **
## ie_nesc 1.891e+01 1.097e+00 17.242 9.49e-16 ***
## cs_ring 1.710e+03 9.203e+02 1.858 0.07456 .
## se_cvcs 1.587e+05 5.703e+04 2.784 0.00989 **
## sb_pvdr 2.084e+03 1.132e+03 1.842 0.07692 .
## ss_pasa -2.582e+03 1.482e+03 -1.743 0.09321 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 25570 on 26 degrees of freedom
## Multiple R-squared: 0.973, Adjusted R-squared: 0.9678
## F-statistic: 187.6 on 5 and 26 DF, p-value: < 2.2e-16
# Variables seleccionadas
modelo_stepwise$coefficients
## (Intercept) ie_nesc cs_ring se_cvcs sb_pvdr ss_pasa
## -270979.3671 18.9109 1709.6803 158738.9580 2084.4612 -2582.0758
# Extraer los nombres de las variables seleccionadas en el modelo stepwise
variables_seleccionadas <- names(coef(modelo_stepwise))[-1] # Excluye el intercepto
# Filtrar las descripciones correspondientes en dic_bd
descripciones <- dic_bd[dic_bd$variable %in% variables_seleccionadas, c("variable", "descripcion")]
# Mostrar la tabla en un formato mas legible
kable(descripciones, format = "html", table.attr = "style='width:100%;'") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F) %>%
scroll_box(width = "100%", height = "300px")
variable | descripcion |
---|---|
cs_ring | Razón de ingreso |
ie_nesc | Numero de escuelas por estado |
se_cvcs | Carencias promedio vulnerables por carencia social 2020 |
sb_pvdr | Porcentaje de viviendas que no disponen de refrigerador |
ss_pasa | Porcentaje de poblacion carencia por acceso a los servicios de salud |
# Generar predicciones del modelo
predicciones <- predict(modelo_stepwise)
# Crear el grafico: valores reales vs predicciones
plot(bd$re_ptot, predicciones,
main = "Prediccion vs Valores Observados",
xlab = "Valores Observados (re_ptot)",
ylab = "Valores Predichos",
col = "blue",
pch = 20)
abline(0, 1, col = "red") # Linea de referencia
# Filtrar la base de datos para incluir solo las variables seleccionadas
var_sel <- bd[, variables_seleccionadas]
# Calcular la matriz de correlacion
mc_rez <- round(cor(var_sel, use = "pairwise.complete.obs"),2)
# Generar el correlograma
ggcorrplot(mc_rez,
type = "lower",
lab = TRUE,
title = "Correlograma variables signficativas vs rezago educativo",
colors = c("red", "white", "blue"))
# Guardar la matriz en un archivo para futuras consultas
#write.csv(mc_rez, paste0(dibas, "rezago_matriz_correlacion.csv"))
Para la identificación de los estados con mayor brecha educativa y socioeconómica.De acuerdo con las variables definidas en el modelo de regresión lineal. Se utilizaron las consultas en SQL representadas en los mapas.