Carga de datos formato csv

data <- read.csv("https://raw.githubusercontent.com/VictorGuevaraP/Mineria-de-datos-2020/master/Sistema_Educativo_Peru.csv", sep = ";")
head(data)
##   region  departam almain_1 almapr_2 almase_3 taasi_17 taasp_18 taass_19
## 1  Selva  Amazonas    11235    81839    31688     46.0     79.7     55.1
## 2 Sierra    Ancash    32254   185875    95346     55.5     87.7     59.4
## 3 Sierra  Apurimac    14728    94015    44724     45.3     88.8     63.6
## 4  Costa  Arequipa    31601   143318   104735     44.8     94.5     81.3
## 5 Sierra  Ayacucho    17173   127033    55667     39.6     89.9     57.7
## 6 Sierra Cajamarca    33304   280254   107485     41.6     90.0     50.0
##   taefp_22 taefs_23 doin_24 dopr_25 dose_26 cein_29 cepr_30 cese_31
## 1     77.9     80.5     505    3272    1718     290    1100     199
## 2     79.6     80.9    1627    8460    6930     834    1781     478
## 3     77.4     79.0     609    3711    2277     361     857     207
## 4     90.5     89.3    1969    7534    6869     910    1107     442
## 5     75.1     78.9     816    5585    3502     397    1392     298
## 6     79.1     80.5    1718   11260    6154     894    3532     642

Evaluamos outliers

boxplot(data[,3:16])

Evaluamos NA’s

#install.packages("VIM")
library(VIM)
miss <- aggr(data, col=c('green', 'red'),
     ylab = c("Histograma de NAs", "Patrón"))

En el cuadro de proporción de missings podemos observar que la data no cuenta con NA’s.

Se solicita identificar por región o departamento, entonces para ello, la columna que contiene los datos de los departamentos, serán convertidos como identificador, de la siguiente manera:

row.names(data) <- data$departam
data$departam <- NULL

Visualizamos si se realizó de manera correcta.

head(data)
##           region almain_1 almapr_2 almase_3 taasi_17 taasp_18 taass_19 taefp_22
## Amazonas   Selva    11235    81839    31688     46.0     79.7     55.1     77.9
## Ancash    Sierra    32254   185875    95346     55.5     87.7     59.4     79.6
## Apurimac  Sierra    14728    94015    44724     45.3     88.8     63.6     77.4
## Arequipa   Costa    31601   143318   104735     44.8     94.5     81.3     90.5
## Ayacucho  Sierra    17173   127033    55667     39.6     89.9     57.7     75.1
## Cajamarca Sierra    33304   280254   107485     41.6     90.0     50.0     79.1
##           taefs_23 doin_24 dopr_25 dose_26 cein_29 cepr_30 cese_31
## Amazonas      80.5     505    3272    1718     290    1100     199
## Ancash        80.9    1627    8460    6930     834    1781     478
## Apurimac      79.0     609    3711    2277     361     857     207
## Arequipa      89.3    1969    7534    6869     910    1107     442
## Ayacucho      78.9     816    5585    3502     397    1392     298
## Cajamarca     80.5    1718   11260    6154     894    3532     642

Estandarizar los datos de las variables cuantitativas

dataNew.scaled <- as.data.frame(scale(data[2:15]))

Se desea realizar cluster, pero antes de ello evaluaa la cantidad óptima de clúster, en este caso para la función kmeans

wss = numeric()

La función lo que hará será recorrer de 2 a 10 y evaluará de acuerdo a la funición kmeans basándose en tot.withinss el k óptimo para la función.

for (k in 2:10){
  mod = kmeans(dataNew.scaled, k)
  wss[k-1] = mod$tot.withinss
}
plot(2:10,wss)

Entonces, de acuerdo al gráfico se tiene que el k óptimo para el algoritmo k-means es 4.

set.seed(2018)

Aplicando algoritmo de K-means

km <- kmeans(dataNew.scaled, 4)
km
## K-means clustering with 4 clusters of sizes 5, 7, 8, 3
## 
## Cluster means:
##     almain_1    almapr_2   almase_3   taasi_17   taasp_18   taass_19   taefp_22
## 1 -1.2566701 -1.33439780 -1.2355550  0.8467216  0.6119186  0.9265775  1.0719288
## 2 -0.5264298 -0.30176955 -0.5356574 -0.6769178 -0.4411728 -0.7353480 -0.9766627
## 3  1.0209847  1.11227964  1.0480879 -0.1373261 -0.3486159 -0.3769809 -0.2182272
## 4  0.6001605 -0.03795375  0.5142245  0.5344750  0.9391814  1.1767984  1.0742708
##      taefs_23    doin_24    dopr_25    dose_26    cein_29    cepr_30    cese_31
## 1  0.96096228 -1.0723381 -1.3045047 -1.1150654 -1.2254652 -1.2030143 -1.2612214
## 2 -0.93949536 -0.6334639 -0.4047465 -0.6426061 -0.4225424 -0.1313389 -0.3309845
## 3 -0.03153748  0.8769740  1.1089541  1.0487423  0.9909903  1.0571011  1.0898817
## 4  0.67465198  0.9267154  0.1613720  0.5612106  0.3857333 -0.5074550 -0.0320181
## 
## Clustering vector:
##      Amazonas        Ancash      Apurimac      Arequipa      Ayacucho 
##             2             3             2             4             2 
##     Cajamarca         Cusco  Huancavelica       Huánuco           Ica 
##             3             3             2             2             4 
##         Junín   La Libertad    Lambayeque        Loreto Madre de Dios 
##             3             3             4             3             1 
##      Moquegua         Pasco         Piura          Puno    San Martín 
##             1             1             3             3             2 
##         Tacna        Tumbes       Ucayali 
##             1             1             2 
## 
## Within cluster sum of squares by cluster:
## [1] 17.05520 23.56807 35.73360  9.19799
##  (between_SS / total_SS =  72.2 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Gráfica de algoritmo de K-means

Para una mejor comprensión de la interpretación anterior, se realiza el siguiente gráfico, ahciendo uso de la librería factoextra

library(factoextra)
fviz_cluster(km, data = dataNew.scaled)

Interpretación: En el caso de k-means, este realiza las agrupaciones basándose en los centroides. Entonces, de acuerdo a ello, se interpreta lo siguiente:

La tasa de asistencia en educación inicial, primaria y secundaria es favorable para el primer cluster, donde a pesar de pertenecer a zonas rurales de la sierra y selva: se presencia que los padres envían a sus hijos a la escuela en la etapa inicial y primaria. La tasa de eficiencia interna primaria y secundaria denota el logro de alumnos promovidos en la etapa primaria y secundaria , donde los padres apoyan directamente con su alimentación para que permanezcan concentrados en las clases y el hecho de la no necesidad del alumno en realizar otras actividades.

Mientras: La cantidad de alumnos matriculados de inicial y secundaria es relativamente baja, ya sea por motivos que los padres prefieren tener a sus niños cerca y la movilidad para llegar a sus centro de estudios que podrían estar alejados.Donde también la cantidad de docentes que asisten a enseñar es baja tanto para la educación inicial, primaria y secundaria, ya que estos departamentos están alejados de las escuelas, la cual no les permite cubrir estas plazas.La cantidad de centros educativos para los 3 niveles también son pocos ya sean por temas de que estos departamentos están en zonas vulnerables de riesgo o el escaso trabajo de las autoridades para la construcción de las mismas.

La cantidad de alumnos matriculados de inicial, primaria y secundaria para el segundo cluster es alta , donde se refleja el interés de los padres para matricular a sus hijos en los centros educativos. La cantidad de docentes que cubrieron las plazas para los distintos niveles es aceptable a la par con la gran cantidad de centros educativos inicial, primaria y secundaria que se construyeron en este grupo de departamentos.

Mientras tanto la dedicación de los demás factores no se refleja en la asistencia de los alumnos a los centros educativos inicial, primaria y secundaria donde es muy baja. Es por ello que la tasa de eficiencia interna para el nivel primaria y secundaria es muy baja, ya sean por temas de poco acceso y movilidad a los centros educativos o baja alimentación para la perfecta concentración.

Para el tercer cluster se refleja la buena cantidad de alumnos matriculados de los niveles de inicial y secundaria ,donde la tasa de asistencia para estos mismos niveles es aceptable. Ya que existen buena cantidad de docentes que cubrieron las plazas para estos niveles. La tasa de eficiencia de los pocos alumnos matriculados para el nivel primario es muy buena.

Mientras tanto la escasez de docentes que cubren plazas para el nivel primario va de la mano con la cantidad de alumnos matriculados para este nivel. La cantidad de centros educativos para el nivel inicial , primario y secundario es baja ya sea por motivos de demora de construcción de proyectos, corrupción o ubicarse en zonas de riesgo.

La cantidad de docentes que asisten a dictar clases para el nivel inicial y secundaria es muy baja esto refleja la baja cantidad de alumnos matriculados para este nivel. A la vez refleja una baja tasa de asistencia de alumnos para el nivel de educación inicial y secundaria. La tasa de eficiencia interna del nivel primario y secundaria es muy baja para promoverse de grado.

La cantidad de centros educativos del nivel de inicial , primaria y secundaria son muy escasas e inexistentes para algunos partes del grupo de los departamentos que comprenden el cuarto cluster. La cantidad de docentes que cubren el nivel de educación primaria es muy baja o inexistente por lo tanto la matrícula de alumnos para ese nivel es poca y para ello la tasa de asistentes también es muy baja. Esto es ocasionado muchas veces por la despreocupación de las autoridades en el sector de educación.

Aplicando algoritmo de PAM

De igual modo, se realiza una función el cual nos permita determinar la cantidad óptima de clúster que se pueda tener para el uso del algoritmo de PAM

library(cluster)
library("NbClust")

nb <- NbClust(dataNew.scaled, distance = "euclidean",
              min.nc = 2,
              max.nc = 9,
              method = "ward.D2",
              index = "all")

## *** : The Hubert index is a graphical method of determining the number of clusters.
##                 In the plot of Hubert index, we seek a significant knee that corresponds to a 
##                 significant increase of the value of the measure i.e the significant peak in Hubert
##                 index second differences plot. 
## 

## *** : The D index is a graphical method of determining the number of clusters. 
##                 In the plot of D index, we seek a significant knee (the significant peak in Dindex
##                 second differences plot) that corresponds to a significant increase of the value of
##                 the measure. 
##  
## ******************************************************************* 
## * Among all indices:                                                
## * 1 proposed 2 as the best number of clusters 
## * 14 proposed 3 as the best number of clusters 
## * 3 proposed 4 as the best number of clusters 
## * 1 proposed 7 as the best number of clusters 
## * 4 proposed 9 as the best number of clusters 
## 
##                    ***** Conclusion *****                            
##  
## * According to the majority rule, the best number of clusters is  3 
##  
##  
## *******************************************************************
fviz_nbclust(nb) + theme_minimal()
## Among all indices: 
## ===================
## * 2 proposed  0 as the best number of clusters
## * 1 proposed  1 as the best number of clusters
## * 1 proposed  2 as the best number of clusters
## * 14 proposed  3 as the best number of clusters
## * 3 proposed  4 as the best number of clusters
## * 1 proposed  7 as the best number of clusters
## * 4 proposed  9 as the best number of clusters
## 
## Conclusion
## =========================
## * According to the majority rule, the best number of clusters is  3 .

Entonces, de acuerdo al gráfico se tiene que el k óptimo para el algoritmo PAM es 3.

km_pam <- pam(dataNew.scaled, 3)
km_pam
## Medoids:
##          ID   almain_1   almapr_2   almase_3   taasi_17   taasp_18   taass_19
## Apurimac  3 -0.5682957 -0.5164263 -0.5945564 -0.2390060 -0.4685971 -0.1670916
## Ancash    2  0.9881263  0.6304097  0.6540153  0.6343711 -0.7702639 -0.5442188
## Moquegua 16 -1.3854927 -1.4631590 -1.3713682  0.9854344  0.9848885  1.8891499
##            taefp_22   taefs_23    doin_24    dopr_25   dose_26    cein_29
## Apurimac -1.0218301 -1.0892240 -0.7195449 -0.5831362 -0.770726 -0.4639835
## Ancash   -0.6353981 -0.6035190  0.9294151  0.9072402  1.176541  1.2511632
## Moquegua  1.3318922  0.9047228 -1.0953393 -1.3658269 -1.186294 -1.2979872
##             cepr_30    cese_31
## Apurimac -0.4873070 -0.5552094
## Ancash    0.6524958  1.0499019
## Moquegua -1.3113202 -1.3725723
## Clustering vector:
##      Amazonas        Ancash      Apurimac      Arequipa      Ayacucho 
##             1             2             1             2             1 
##     Cajamarca         Cusco  Huancavelica       Huánuco           Ica 
##             2             2             1             1             3 
##         Junín   La Libertad    Lambayeque        Loreto Madre de Dios 
##             2             2             2             2             3 
##      Moquegua         Pasco         Piura          Puno    San Martín 
##             3             1             2             2             1 
##         Tacna        Tumbes       Ucayali 
##             3             3             1 
## Objective function:
##    build     swap 
## 2.419143 2.275837 
## 
## Available components:
##  [1] "medoids"    "id.med"     "clustering" "objective"  "isolation" 
##  [6] "clusinfo"   "silinfo"    "diss"       "call"       "data"

Gráfica de algoritmo de PAM

Para una mejor comprensión de la interpretación anterior, se realiza el siguiente gráfico, ahciendo uso de la librería factoextra

library(factoextra)
fviz_cluster(km_pam)

Interpretación:

En el caso de PAM, este realiza las agrupaciones basándoce en los medoídes Entonces, de acuerdo a ello, se interpreta lo siguiente:

Se tiene los siguientes departamentos, Pasco, San Martín, Ucayali, Apurimac, Ayacucho, Amazonas, Huancavelica y Huánuco. Estas se encuentran agrupadas porque presentan una baja cantidad de alumnos matriculados en el nivel inicial, primaria, secundaria, también presenta un declive en la tasa de eficiencia interna en el nivel primaria y secundaria, no presenta una alta normalidad con respecto a los docentes en el nivel inicial, primaria y secundaria. Con respecto a los centros educactivos, refleja de igual modo poca consideración en el nivel secundaria.

Por otro lado, se refleja baja consideración, la tasa de asistencia en el nivel inicial, primaria y secundaria, de igual modo con los centros educativos inicial y primaria.

Se tiene los siguientes departamentos, Loreto, Cajamarca, Cusco, Ancash, La Libertad, Lambayeque, Arequipa, Puno y Junin. Estas se encuentran agrupadas porque presentan una alta concentración en relación a sus alumnos matriculados, en el nivel inicial, primaria y secundaria, también presentan una considerable tasa de asistencia en educación inicial. También se considera a los docentes en educación inicial, primaria y secundaria. Con respecto a los centros educativos, resalta más el nivel primaria y secundaria.

Por último estos departamentos presentan una tasa baja de asistencia en educación primaria, secundaria y una tasa baja de eficiencia interna en el nivel primaria y secundaria.

En el 3er clúster se tiene los siguientes departamentos, Madre de Dios, Moquegua, Tumbes, Tacna e Ica. Estas se encuentran agrupadas porque presentan similitudes en la tasa de asistencia en educación inicial, primaria y secundaria, tambiém presenta una tasa de eficiencia interna en el nivel primaria y secundaria.

Por otro lado, presenta pocos alumnos matriculados en el nivel inicial, primaria y secundaria. En cuestión de docentes del mismo modo en los tres niveles y con respecto a los centros educativos, solo en el nivel primaria y secundaria.

Aplicando algoritmo de CLARA

clarafit <- clara(dataNew.scaled, 3, samples = 5)
clarafit
## Call:     clara(x = dataNew.scaled, k = 3, samples = 5) 
## Medoids:
##            almain_1   almapr_2   almase_3   taasi_17   taasp_18   taass_19
## Apurimac -0.5682957 -0.5164263 -0.5945564 -0.2390060 -0.4685971 -0.1670916
## Ancash    0.9881263  0.6304097  0.6540153  0.6343711 -0.7702639 -0.5442188
## Moquegua -1.3854927 -1.4631590 -1.3713682  0.9854344  0.9848885  1.8891499
##            taefp_22   taefs_23    doin_24    dopr_25   dose_26    cein_29
## Apurimac -1.0218301 -1.0892240 -0.7195449 -0.5831362 -0.770726 -0.4639835
## Ancash   -0.6353981 -0.6035190  0.9294151  0.9072402  1.176541  1.2511632
## Moquegua  1.3318922  0.9047228 -1.0953393 -1.3658269 -1.186294 -1.2979872
##             cepr_30    cese_31
## Apurimac -0.4873070 -0.5552094
## Ancash    0.6524958  1.0499019
## Moquegua -1.3113202 -1.3725723
## Objective function:   2.275837
## Clustering vector:    Named int [1:23] 1 2 1 2 1 2 2 1 1 3 2 2 2 2 3 3 1 2 ...
##  - attr(*, "names")= chr [1:23] "Amazonas" "Ancash" "Apurimac" "Arequipa" "Ayacucho" "Cajamarca" "Cusco" ...
## Cluster sizes:            8 10 5 
## Best sample:
##  [1] Amazonas      Ancash        Apurimac      Arequipa      Ayacucho     
##  [6] Cajamarca     Cusco         Huancavelica  Huánuco       Ica          
## [11] Junín         La Libertad   Lambayeque    Loreto        Madre de Dios
## [16] Moquegua      Pasco         Piura         Puno          San Martín   
## [21] Tacna         Tumbes        Ucayali      
## 
## Available components:
##  [1] "sample"     "medoids"    "i.med"      "clustering" "objective" 
##  [6] "clusinfo"   "diss"       "call"       "silinfo"    "data"

Gráfica de algoritmo de CLARA

Para una mejor comprensión de la interpretación anterior, se realiza el siguiente gráfico, ahciendo uso de la librería factoextra

library(factoextra)
fviz_cluster(clarafit)

Interpretación:

En el caso de CLARA, este realiza las agrupaciones basándoce en los medoídes Entonces, de acuerdo a ello, se interpreta lo siguiente:

En el 1er clúster se tiene los siguientes departamentos, Pasco, San Martín, Ucayali, Apurimac, Ayacucho, Amazonas, Huancavelica y Huánuco. Estas se encuentran agrupadas porque presentan una baja cantidad de alumnos matriculados en el nivel inicial, primaria, secundaria, también presenta un declive en la tasa de eficiencia interna en el nivel primaria y secundaria, no presenta una alta normalidad con respecto a los docentes en el nivel inicial, primaria y secundaria. Con respecto a los centros educactivos, refleja de igual modo poca consideración en el nivel secundaria.

Por otro lado, se refleja baja consideración, la tasa de asistencia en el nivel inicial, primaria y secundaria, de igual modo con los centros educativos inicial y primaria.

En el 2do clúster se tiene los siguientes departamentos, Loreto, Cajamarca, Cusco, Ancash, La Libertad, Lambayeque, Arequipa, Puno y Junin. Estas se encuentran agrupadas porque presentan una alta concentración en relación a sus alumnos matriculados, en el nivel inicial, primaria y secundaria, también presentan una considerable tasa de asistencia en educación inicial. También se considera a los docentes en educación inicial, primaria y secundaria. Con respecto a los centros educativos, resalta más el nivel primaria y secundaria.

Por último estos departamentos presentan una tasa baja de asistencia en educación primaria, secundaria y una tasa baja de eficiencia interna en el nivel primaria y secundaria.

En el 3er clúster se tiene los siguientes departamentos, Madre de Dios, Moquegua, Tumbes, Tacna e Ica. Estas se encuentran agrupadas porque presentan similitudes en la tasa de asistencia en educación inicial, primaria y secundaria, tambiém presenta una tasa de eficiencia interna en el nivel primaria y secundaria.

Por otro lado, presenta pocos alumnos matriculados en el nivel inicial, primaria y secundaria. En cuestión de docentes del mismo modo en los tres niveles y con respecto a los centros educativos, solo en el nivel primaria y secundaria.