En este documento se estarán haciendo un agrupamiento del panorama profesional por estado en México. La base de datos utilizada tiene datos recabados por estado del número de profesionistas ocupados, ingreso promedio, porcentaje de hombres y porcentaje de mujeres. Por lo tanto, la definición del panorama profesional va más allá del número de profesionistas que tienen un empleo.
Estos datos se recabaron del Observatorio Laboral del Gobierno de México.
Link de referencia: https://www.observatoriolaboral.gob.mx/static/estudios-publicaciones/Panorama_profesional_estados.html
#install.packages("cluster") #Análisis de agrupamiento
library(cluster)
#install.packages("ggplot2") #Graficar
library(ggplot2)
#install.packages("data.table") #Manejo de muchos datos
library(data.table)
#install.packages("factoextra") #Gráfica optimización de número de clusters
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
df<-read.csv("C:\\Users\\artur\\OneDrive\\Documentos\\Panorama_profesional.csv", stringsAsFactors = FALSE)
summary(df)
## Entidad Número.de.profesionistas.ocupados
## Length:32 Min. : 224.4
## Class :character 1st Qu.: 129284.2
## Mode :character Median : 188742.5
## Mean : 291213.6
## 3rd Qu.: 307256.8
## Max. :1424891.0
## Ingreso.promedio.mensual.... Hombres.... Mujeres....
## Min. :13012 Min. :47.30 Min. :42.70
## 1st Qu.:15120 1st Qu.:50.88 1st Qu.:45.83
## Median :16489 Median :52.20 Median :47.80
## Mean :16951 Mean :52.45 Mean :47.55
## 3rd Qu.:17616 3rd Qu.:54.17 3rd Qu.:49.12
## Max. :26813 Max. :57.30 Max. :52.70
str(df)
## 'data.frame': 32 obs. of 5 variables:
## $ Entidad : chr "Aguascalientes" "Baja California" "Baja California Sur" "Campeche" ...
## $ Número.de.profesionistas.ocupados: num 125805 332627 85407 67171 230783 ...
## $ Ingreso.promedio.mensual.... : int 17017 21119 21174 16952 13451 19170 26813 18205 16891 14060 ...
## $ Hombres.... : num 54.1 53.5 52.4 55.3 57.3 52.3 50.5 56.8 51.8 52 ...
## $ Mujeres.... : num 45.9 46.5 47.6 44.7 42.7 47.7 49.5 43.2 48.2 48 ...
rownames(df) <- df$Entidad
df_numeric <- df[ , !(names(df) %in% "Entidad")]
datos_escalados <- scale(df_numeric)
#Siempre es un valor inicial "cualquiera", luego se optimiza.
grupos <-3
set.seed(123)
clusters <- kmeans(datos_escalados,grupos)
clusters
## K-means clustering with 3 clusters of sizes 15, 15, 2
##
## Cluster means:
## Número.de.profesionistas.ocupados Ingreso.promedio.mensual.... Hombres....
## 1 -0.3096842 -0.5723894 -0.7957396
## 2 -0.1401863 0.3908583 0.8171376
## 3 3.3740286 1.3614828 -0.1604853
## Mujeres....
## 1 0.7957396
## 2 -0.8171376
## 3 0.1604853
##
## Clustering vector:
## Aguascalientes Baja California Baja California Sur Campeche
## 2 2 2 2
## Chiapas Chihuahua Ciudad de México Coahuila
## 2 2 3 2
## Colima Durango Estado de México Guanajuato
## 1 1 3 1
## Guerrero Hidalgo Jalisco Michoacán
## 1 1 2 1
## Morelos Nayarit Nuevo León Oaxaca
## 1 1 2 1
## Puebla Querétaro Quintana Roo San Luis Potosí
## 1 2 2 1
## Sinaloa Sonora Tabasco Tamaulipas
## 1 2 2 2
## Tlaxcala Veracruz Yucatán Zacatecas
## 1 1 2 1
##
## Within cluster sum of squares by cluster:
## [1] 14.433991 26.484156 8.536615
## (between_SS / total_SS = 60.1 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
set.seed(123)
optimizacion <- clusGap(datos_escalados, FUN=kmeans, nstart=1, K.max=10)
#El k.max normalmente es 10, en este ejercicio al ser 8 se dejó en 7.
plot(optimizacion,xlab="Número de clusters", main="Optimización de clusters")
# Se selecciona como óptimo el primer punto más alto
fviz_cluster(clusters, data=datos_escalados)
df1_clusters <- cbind(df, cluster=clusters$cluster)
head(df1_clusters)
## Entidad Número.de.profesionistas.ocupados
## Aguascalientes Aguascalientes 125805
## Baja California Baja California 332627
## Baja California Sur Baja California Sur 85407
## Campeche Campeche 67171
## Chiapas Chiapas 230783
## Chihuahua Chihuahua 312944
## Ingreso.promedio.mensual.... Hombres.... Mujeres....
## Aguascalientes 17017 54.1 45.9
## Baja California 21119 53.5 46.5
## Baja California Sur 21174 52.4 47.6
## Campeche 16952 55.3 44.7
## Chiapas 13451 57.3 42.7
## Chihuahua 19170 52.3 47.7
## cluster
## Aguascalientes 2
## Baja California 2
## Baja California Sur 2
## Campeche 2
## Chiapas 2
## Chihuahua 2
Finalmente, los resultados se agruparon en 3 clusters distintos. El Estado de México y la Ciudad de México se alejan de los otros 2 clusters debido a que tienen el doble de número de profesionistas ocupados. Mientras que los otros dos grupos tienen números similares en cuanto a número de ocupantes, ingresos y demás.