CONEVAL-Índice de rezago social publicado en Datos Abiertos, México
datos = read.csv(ruta,header = T)
datos = datos[-1,]
datos = datos[1:32,-1]
rownames(datos) = datos$ent
datos = datos[,c(-1,-2,-17)]
head(datos[,14])
## [1] "Muy bajo" "Bajo" "Bajo" "Medio" "Muy bajo" "Bajo"
datos$grs = factor(datos$grs)
clasificacion = datos$grs
levels(clasificacion)
## [1] "Alto" "Bajo" "Medio" "Muy alto" "Muy bajo"
datos = datos[,-14]
dim(datos)
## [1] 32 13
str(datos)
## 'data.frame': 32 obs. of 13 variables:
## $ pob_tot : int 1425607 3769020 798447 928363 3146771 731391 5543828 3741869 9209944 1832650 ...
## $ i_analf : num 2.11 1.82 2.33 5.85 1.67 ...
## $ i_asistesc: num 5.01 6.51 4.23 6.4 4.98 ...
## $ i_edbasinc: num 23.5 24.6 23.9 29.7 21.3 ...
## $ i_sdsalud : num 18.4 22.2 16.2 21.9 19 ...
## $ i_ptierra : num 0.751 1.973 4.693 2.748 0.808 ...
## $ i_nosan : num 0.623 0.659 1.25 3.617 0.709 ...
## $ i_noagua : num 0.554 2.082 5.002 3.975 0.976 ...
## $ i_nodren : num 0.616 3.473 2.578 5.103 1.248 ...
## $ i_noelec : num 0.313 0.782 1.181 1.351 0.266 ...
## $ i_nolav : num 13 17.3 31.5 22.7 13.4 ...
## $ i_noref : num 5.39 5.07 8.17 15.98 3.26 ...
## $ irs : num -1.102 -0.642 -0.317 0.245 -1.148 ...
clasificacion
## [1] Muy bajo Bajo Bajo Medio Muy bajo Bajo Muy alto Bajo
## [9] Muy bajo Medio Bajo Muy alto Alto Bajo Bajo Alto
## [17] Bajo Medio Muy bajo Muy alto Alto Bajo Bajo Alto
## [25] Bajo Bajo Medio Bajo Medio Muy alto Medio Bajo
## Levels: Alto Bajo Medio Muy alto Muy bajo
#DATOS SIN ESTANDARIZAR Y SIN LA VARIABLE POBLACION
sndatos = datos[,-1]
boxplot(sndatos)
Observamos a través de los gráficos de cajas y alambres como todas las variables presentan datos que se alejan considerablemente de sus rangos.
# Distancia euclídiana
distancias = get_dist(sndatos,method = "euclidean")
fviz_dist(distancias,gradient = list(low ="blue",
mid = "white",
high = "red"))
fviz_nbclust(x = sndatos, FUNcluster = kmeans, method = "wss", k.max = 10, diss = get_dist(sndatos, method = "euclidean"), nstart = 32)
Información de los centroides
set.seed(123)
km_clusters <- kmeans(x = sndatos, centers = 3, nstart = 32)
k3 <- kmeans(sndatos, centers = 3, nstart = 32)
# Comparativa de los indicadores vs clústers
table(clasificacion,k3$cluster)
##
## clasificacion 1 2 3
## Alto 0 3 1
## Bajo 0 2 12
## Medio 0 2 4
## Muy alto 3 1 0
## Muy bajo 0 0 4
fviz_cluster(k3, data = sndatos)
datos = read.csv(ruta,header = T)
datos<-filter(datos,anio == 2020)
datos<- datos[-1,]
rownames(datos)<-paste(datos$ent)
datos<-datos[ ,-c(1:4)]
sum(is.na(datos))
## [1] 0
datos<-datos[ ,-c(13:14)]
datos<- na.omit(datos)
# Enlace completo-distancia euclidiana
hccompleto<- hclust (dist(datos), method="complete")
# Enlace promedio
hcmedio <- hclust(dist(datos), method="average")
# Enlace simple
hcsimple <- hclust(dist(datos), method="single")
# Enlace centroide
hccentro <-hclust(dist(datos), method="centroid")
# Enlace Ward
hcward <-hclust(dist(datos), method = "ward.D")
# Dendograma
plot(hccompleto,main="Complete Linkage ", xlab="", sub="",cex=.9)
rect.hclust(hccompleto, k=3, border=3)
plot(hcmedio,main="Average Linkage ", xlab="", sub="",cex=.9)
rect.hclust(hcmedio, k=3, border=3)
plot(hcsimple,main="Single Linkage ", xlab="", sub="",cex=.9)
rect.hclust(hcsimple, k=3, border=3)
plot(hccentro,main="Centroide Linkage ", xlab="", sub="",cex=.9)
rect.hclust(hccentro, k=3, border=3)
plot(hcward,main="Ward Linkage ", xlab="", sub="",cex=.9)
rect.hclust(hcward, k=3, border=3)
fviz_dend(x = hcward, k = 3, rect = TRUE, cex = 0.6, palette = "lancet") + labs(title = "Ward Linkage", subtitle = "Distancia euclídea, Lincage Ward, K=3")
# Visualizar clúster
D <- cutree(hcward, k=3)
fviz_cluster(list(data=datos, cluster=D))