Contexto

La base de datos empleada en este análisis ha sido proporcionada por INEGI. En este estudio se examinan los diferentes tipos de parto registrados a lo largo de los Estados de la República Mexicana durante el año 2023.

Instalar paquetes y llamar librerias

#install.packages("readxl")
#install.packages("cluster")
#install.packages("ggplot2")
#install.packages("factoextra")
library(readxl)
library(cluster)
library(ggplot2)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa

Paso 2. Obtener los datos

df1 <- read_excel("Nacimiento.xlsx")

Paso 3. Entender los datos

summary(df1)
##  Entidad Federativa  Nacimientos       Parto Simple      Parto Doble     
##  Length:32          Min.   :   9111   Min.   :   8946   Min.   :  165.0  
##  Class :character   1st Qu.:  26109   1st Qu.:  25625   1st Qu.:  440.8  
##  Mode  :character   Median :  44593   Median :  43674   Median :  841.0  
##                     Mean   : 113019   Mean   : 111054   Mean   : 1912.2  
##                     3rd Qu.:  81332   3rd Qu.:  79501   3rd Qu.: 1453.8  
##                     Max.   :1820888   Max.   :1789067   Max.   :30789.0  
##   Triple o Más   
##  Min.   :  0.00  
##  1st Qu.:  3.00  
##  Median : 13.00  
##  Mean   : 41.72  
##  3rd Qu.: 29.50  
##  Max.   :729.00
str(df1)
## tibble [32 × 5] (S3: tbl_df/tbl/data.frame)
##  $ Entidad Federativa: chr [1:32] "Estados Unidos Mexicanos" "Aguascalientes" "Baja California" "Baja California Sur" ...
##  $ Nacimientos       : num [1:32] 1820888 19890 62658 10458 13429 ...
##  $ Parto Simple      : num [1:32] 1789067 19481 61427 10241 13231 ...
##  $ Parto Doble       : num [1:32] 30789 404 1196 212 192 ...
##  $ Triple o Más      : num [1:32] 729 5 31 3 0 18 0 15 15 69 ...
names(df1)
## [1] "Entidad Federativa" "Nacimientos"        "Parto Simple"      
## [4] "Parto Doble"        "Triple o Más"

Paso 4.Determinar variables y el número de grupos

df_num <- df1[sapply(df1, is.numeric)]
df_num <- na.omit(df_num)

#Siempre es un valor inicial "cualquiera", luego se optimiza
set.seed(123)
grupos1 <- 3 
str(df_num)
## tibble [32 × 4] (S3: tbl_df/tbl/data.frame)
##  $ Nacimientos : num [1:32] 1820888 19890 62658 10458 13429 ...
##  $ Parto Simple: num [1:32] 1789067 19481 61427 10241 13231 ...
##  $ Parto Doble : num [1:32] 30789 404 1196 212 192 ...
##  $ Triple o Más: num [1:32] 729 5 31 3 0 18 0 15 15 69 ...

Paso 5. Generar los grupos

set.seed(123)
clusters1 <- kmeans(df_num,grupos1)
clusters1
## K-means clustering with 3 clusters of sizes 9, 1, 22
## 
## Cluster means:
##   Nacimientos Parto Simple Parto Doble Triple o Más
## 1   114753.78    112802.89   1896.3333     38.22222
## 2  1820888.00   1789067.00  30789.0000    729.00000
## 3    34678.73     34065.55    606.0455     11.90909
## 
## Clustering vector:
##  [1] 2 3 3 3 3 3 3 1 3 1 3 1 3 3 1 1 1 3 3 1 3 1 3 3 3 3 3 3 3 3 1 3
## 
## Within cluster sum of squares by cluster:
## [1] 28445218872           0 12096093027
##  (between_SS / total_SS =  99.3 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Paso 7. Optimizar el número de grupos

set.seed(123)
optimizacion <- clusGap(df_num, FUN = kmeans, nstart = 25, K.max = 10)
plot(optimizacion, xlab="Número de clusters k", main="Optimización de clusters")

# Paso 8. Graficar los grupos

fviz_cluster(clusters1, data=df_num)

# Paso 9. Agregar clusters a la base de datos

df1_clusters <- cbind(df1, cluster = clusters1$cluster)
head(df1_clusters)
##         Entidad Federativa Nacimientos Parto Simple Parto Doble Triple o Más
## 1 Estados Unidos Mexicanos     1820888      1789067       30789          729
## 2           Aguascalientes       19890        19481         404            5
## 3          Baja California       62658        61427        1196           31
## 4      Baja California Sur       10458        10241         212            3
## 5                 Campeche       13429        13231         192            0
## 6                 Coahuila       44173        43379         812           18
##   cluster
## 1       2
## 2       3
## 3       3
## 4       3
## 5       3
## 6       3

Conclusiones

Los clusters permiten identificar segmentos claros en la población de nacimientos y su tipo de parto,las cuales pueden ser utilizadas para la mejora de políticas públicas.

LS0tDQp0aXRsZTogIk5hY2ltaWVudG8iDQphdXRob3I6ICJBbmEgR29uesOhbGV6IEEwMDgzNTUxMiINCmRhdGU6ICIyMDI1LTA4LTE4Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6IHlldGkNCi0tLQ0KDQohW10oaHR0cHM6Ly9pLnBpbmltZy5jb20vb3JpZ2luYWxzL2Y5L2YzLzdkL2Y5ZjM3ZDZkYjU1YThhY2Y4ZjY3ZDM4YWQwM2EwYjBmLmdpZikNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPkNvbnRleHRvIDwvc3Bhbj4NCkxhIGJhc2UgZGUgZGF0b3MgZW1wbGVhZGEgZW4gZXN0ZSBhbsOhbGlzaXMgaGEgc2lkbyBwcm9wb3JjaW9uYWRhIHBvciBJTkVHSS4gRW4gZXN0ZSBlc3R1ZGlvIHNlIGV4YW1pbmFuIGxvcyBkaWZlcmVudGVzIHRpcG9zIGRlIHBhcnRvIHJlZ2lzdHJhZG9zIGEgbG8gbGFyZ28gZGUgbG9zIEVzdGFkb3MgZGUgbGEgUmVww7pibGljYSBNZXhpY2FuYSBkdXJhbnRlIGVsIGHDsW8gMjAyMy4gDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij5JbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXJpYXMgPC9zcGFuPg0KYGBge3J9DQojaW5zdGFsbC5wYWNrYWdlcygicmVhZHhsIikNCiNpbnN0YWxsLnBhY2thZ2VzKCJjbHVzdGVyIikNCiNpbnN0YWxsLnBhY2thZ2VzKCJnZ3Bsb3QyIikNCiNpbnN0YWxsLnBhY2thZ2VzKCJmYWN0b2V4dHJhIikNCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeShjbHVzdGVyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KYGBgDQojIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+UGFzbyAyLiBPYnRlbmVyIGxvcyBkYXRvcyA8L3NwYW4+DQpgYGB7cn0NCmRmMSA8LSByZWFkX2V4Y2VsKCJOYWNpbWllbnRvLnhsc3giKQ0KYGBgDQojIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+UGFzbyAzLiBFbnRlbmRlciBsb3MgZGF0b3MgPC9zcGFuPg0KYGBge3J9DQpzdW1tYXJ5KGRmMSkNCnN0cihkZjEpDQpuYW1lcyhkZjEpDQpgYGANCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij5QYXNvIDQuRGV0ZXJtaW5hciB2YXJpYWJsZXMgeSBlbCBuw7ptZXJvIGRlIGdydXBvcyA8L3NwYW4+DQpgYGB7cn0NCmRmX251bSA8LSBkZjFbc2FwcGx5KGRmMSwgaXMubnVtZXJpYyldDQpkZl9udW0gPC0gbmEub21pdChkZl9udW0pDQoNCiNTaWVtcHJlIGVzIHVuIHZhbG9yIGluaWNpYWwgImN1YWxxdWllcmEiLCBsdWVnbyBzZSBvcHRpbWl6YQ0Kc2V0LnNlZWQoMTIzKQ0KZ3J1cG9zMSA8LSAzIA0Kc3RyKGRmX251bSkNCg0KYGBgDQojIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+UGFzbyA1LiBHZW5lcmFyIGxvcyBncnVwb3MgPC9zcGFuPg0KYGBge3J9DQoNCnNldC5zZWVkKDEyMykNCmNsdXN0ZXJzMSA8LSBrbWVhbnMoZGZfbnVtLGdydXBvczEpDQpjbHVzdGVyczENCmBgYA0KIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPlBhc28gNy4gT3B0aW1pemFyIGVsIG7Dum1lcm8gZGUgZ3J1cG9zIDwvc3Bhbj4NCmBgYHtyfQ0Kc2V0LnNlZWQoMTIzKQ0Kb3B0aW1pemFjaW9uIDwtIGNsdXNHYXAoZGZfbnVtLCBGVU4gPSBrbWVhbnMsIG5zdGFydCA9IDI1LCBLLm1heCA9IDEwKQ0KcGxvdChvcHRpbWl6YWNpb24sIHhsYWI9Ik7Dum1lcm8gZGUgY2x1c3RlcnMgayIsIG1haW49Ik9wdGltaXphY2nDs24gZGUgY2x1c3RlcnMiKQ0KDQpgYGANCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij5QYXNvIDguIEdyYWZpY2FyIGxvcyBncnVwb3MgPC9zcGFuPg0KYGBge3J9DQpmdml6X2NsdXN0ZXIoY2x1c3RlcnMxLCBkYXRhPWRmX251bSkNCmBgYA0KIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPlBhc28gOS4gQWdyZWdhciBjbHVzdGVycyBhIGxhIGJhc2UgZGUgZGF0b3MgPC9zcGFuPg0KDQpgYGB7cn0NCmRmMV9jbHVzdGVycyA8LSBjYmluZChkZjEsIGNsdXN0ZXIgPSBjbHVzdGVyczEkY2x1c3RlcikNCmhlYWQoZGYxX2NsdXN0ZXJzKQ0KDQpgYGANCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gQ29uY2x1c2lvbmVzIDwvc3Bhbj4NCkxvcyBjbHVzdGVycyBwZXJtaXRlbiBpZGVudGlmaWNhciBzZWdtZW50b3MgY2xhcm9zIGVuIGxhIHBvYmxhY2nDs24gZGUgbmFjaW1pZW50b3MgeSBzdSB0aXBvIGRlIHBhcnRvLGxhcyBjdWFsZXMgcHVlZGVuIHNlciB1dGlsaXphZGFzIHBhcmEgbGEgbWVqb3JhIGRlIHBvbMOtdGljYXMgcMO6YmxpY2FzLg0KDQo=