(Puntos 6 y 7)
library(pacman)
p_load(
tidyverse,
sampling,
haven,
FactoMineR,
factoextra
)
datos <- read_sav(
"C:/Users/equipo/Desktop/lab/DEPARTAMENTAL/HOGARES (DEPARTAMENTAL) 2025/HOGARES (DEPARTAMENTAL) 2025.sav"
)
semilla <- 1234
# Tamaño total de la muestra
n_total <- 30000
# Afijación proporcional
tam_estrato <- datos |>
count(DEPARTAMENTO) |>
mutate(
nh = round(n / sum(n) * n_total)
)
# Muestreo estratificado
set.seed(semilla)
muestra <- strata(
data = datos,
stratanames = "DEPARTAMENTO",
size = tam_estrato$nh,
method = "srswor"
)
# Base final de trabajo
df_datos <- getdata(datos, muestra)
En este ejemplo se usan las dimensiones:
vars_datos <- df_datos |>
select(
DEPARTAMENTO,
# EDUCACIÓN
analfabetismo,
logro_educativo,
# NIÑEZ Y JUVENTUD
inasistencia_escolar,
rezago_escolar,
atencion_integral,
trabajo_infantil,
# TRABAJO
desempleo_larga_duracion,
empleo_formal
)
Se calcula el promedio de privaciones para cada departamento.
departamentos <- vars_datos |>
group_by(DEPARTAMENTO) |>
summarise(
across(
where(is.numeric),
\(x) mean(x, na.rm = TRUE)
)
)
# Guardar nombres de departamentos
rownames_dep <- departamentos$DEPARTAMENTO
# Matriz numérica
matriz_pca <- departamentos |>
select(-DEPARTAMENTO)
# Ejecutar ACP
res_pca <- PCA(
matriz_pca,
scale.unit = TRUE,
graph = FALSE
)
# Asignar nombres
rownames(res_pca$ind$coord) <- rownames_dep
El cos² mide qué tan bien representado está cada departamento en el plano factorial.
fviz_pca_ind(
res_pca,
col.ind = "cos2",
gradient.cols = c("blue", "yellow", "red"),
repel = TRUE
)
Los departamentos con colores cálidos (amarillo o rojo) presentan mejor representación en el plano 1-2, mientras que los azules tienen menor calidad de representación.
La contribución indica qué departamentos participan más en la construcción de los ejes factoriales.
fviz_pca_ind(
res_pca,
col.ind = "contrib",
gradient.cols = c("blue", "yellow", "red"),
repel = TRUE
)
Los departamentos ubicados lejos del origen y con colores cálidos son los que más contribuyen a la formación de las componentes principales.
Se identifican usando la coordenada del eje 1.
coord_ind <- as.data.frame(res_pca$ind$coord)
coord_ind$DEPARTAMENTO <- rownames(coord_ind)
mejor_calidad <- coord_ind |>
arrange(Dim.1) |>
slice(1:4)
mejor_calidad
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 DEPARTAMENTO
## 88 -4.416526 -2.9731514 -0.6567856 0.04028776 0.2363746 88
## 11 -3.439575 -1.6991087 -0.1411451 0.06985502 0.6915044 11
## 25 -2.809199 0.1986418 1.0614679 -0.29640647 0.2924470 25
## 63 -2.576388 0.6974535 0.1171371 -0.02855725 -0.3170862 63
Los departamentos seleccionados corresponden a aquellos ubicados en el extremo asociado a menores privaciones multidimensionales.
cos2 <- as.data.frame(res_pca$ind$cos2)
cos2$DEPARTAMENTO <- rownames(cos2)
cos2$calidad_12 <- cos2$Dim.1 + cos2$Dim.2
peor_representados <- cos2 |>
arrange(calidad_12) |>
slice(1:4)
peor_representados
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 DEPARTAMENTO
## 27 0.006075489 4.018037e-05 0.83169851 0.029789858 0.0378109793 27
## 4 0.018694561 4.183028e-04 0.04284542 0.004700571 0.2854843911 4
## 21 0.009641547 1.821168e-02 0.81755559 0.001388494 0.0002160866 21
## 16 0.054732750 2.027375e-03 0.16013074 0.055772166 0.5083107794 16
## calidad_12
## 27 0.00611567
## 4 0.01911286
## 21 0.02785322
## 16 0.05676012
Estos departamentos presentan bajos valores de cos², por lo que el plano factorial no representa adecuadamente su comportamiento.
Se usa distancia euclidiana sobre el plano factorial.
coords <- coord_ind |>
select(Dim.1, Dim.2)
rownames(coords) <- coord_ind$DEPARTAMENTO
mat_dist <- as.matrix(dist(coords))
mat_dist[
lower.tri(mat_dist, diag = TRUE)
] <- NA
min_dist <- which(
mat_dist == min(mat_dist, na.rm = TRUE),
arr.ind = TRUE
)
similar1 <- rownames(mat_dist)[min_dist[1]]
similar2 <- colnames(mat_dist)[min_dist[2]]
cat("Departamentos más similares:
")
## Departamentos más similares:
cat(similar1, "y", similar2)
## 13 y 86
Los departamentos encontrados poseen perfiles multidimensionales muy parecidos respecto a las privaciones analizadas.
max_dist <- which(
mat_dist == max(mat_dist, na.rm = TRUE),
arr.ind = TRUE
)
opuesto1 <- rownames(mat_dist)[max_dist[1]]
opuesto2 <- colnames(mat_dist)[max_dist[2]]
cat("Departamentos más opuestos:
")
## Departamentos más opuestos:
cat(opuesto1, "y", opuesto2)
## 88 y 99
Estos departamentos presentan comportamientos completamente diferentes en términos de privaciones del IPM.
El biplot permite observar simultáneamente:
fviz_pca_biplot(
res_pca,
repel = TRUE,
col.var = "red",
col.ind = "gray40"
)
extremo_derecho <- coord_ind |>
arrange(desc(Dim.1)) |>
slice(1)
extremo_derecho
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 DEPARTAMENTO
## 94 3.374214 -2.094134 -0.5595839 0.3577465 -0.0479757 94
El departamento ubicado en el extremo derecho del eje 1 representa el perfil con mayor asociación a las variables que apuntan en esa misma dirección.
contrib_vars <- as.data.frame(
res_pca$var$contrib
)
contrib_vars$Variable <- rownames(contrib_vars)
contrib_vars |>
arrange(desc(Dim.1))
## Dim.1 Dim.2 Dim.3 Dim.4
## empleo_formal 18.357218 7.6544258 0.029802833 6.690599e-03
## rezago_escolar 18.091803 10.0707378 0.005138477 8.050832e-04
## inasistencia_escolar 15.664004 0.3938324 0.012206368 5.608864e+01
## analfabetismo 15.324742 0.8010810 23.964667781 1.431173e+01
## logro_educativo 10.702547 25.1913079 0.220962278 3.178729e+00
## trabajo_infantil 9.167972 8.3340330 30.502297781 2.044361e+01
## atencion_integral 7.721922 26.5970758 10.757213551 5.969375e+00
## desempleo_larga_duracion 4.969792 20.9575062 34.507710931 4.188919e-04
## Dim.5 Variable
## empleo_formal 12.9722317 empleo_formal
## rezago_escolar 4.6425544 rezago_escolar
## inasistencia_escolar 13.1793357 inasistencia_escolar
## analfabetismo 1.2171770 analfabetismo
## logro_educativo 9.5884880 logro_educativo
## trabajo_infantil 27.9770432 trabajo_infantil
## atencion_integral 0.7889627 atencion_integral
## desempleo_larga_duracion 29.6342073 desempleo_larga_duracion
Las variables con mayor contribución positiva al eje 1 son las que caracterizan al departamento ubicado en el extremo derecho.
Si las variables asociadas corresponden a privaciones (analfabetismo, desempleo, rezago, etc.), entonces ese departamento presenta mayores niveles de pobreza multidimensional.
En cambio, si las variables positivas representan mejores condiciones, la interpretación será opuesta.