Contexto

Estos datos son el resultados de consumo energetico por entidad federativa mexciana del año 2015

Instalar paquetes y llamar librerias

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

Paso 2. Obtener los datos

df1 <- read.csv("C:/Users/usuario/Desktop/Consumo_energia_electrica_2015.csv")

Paso 3.Resumen descriptivo

summary(df1)
##     estado          Promedio.gasto.energetico.por.estado
##  Length:32          Min.   : 103.2                      
##  Class :character   1st Qu.: 207.1                      
##  Mode  :character   Median : 361.7                      
##                     Mean   : 511.9                      
##                     3rd Qu.: 790.1                      
##                     Max.   :1402.1
str(df1)
## 'data.frame':    32 obs. of  2 variables:
##  $ estado                              : chr  "    Aguascalientes" "    Baja California" "    Baja California Sur" "    Campeche" ...
##  $ Promedio.gasto.energetico.por.estado: num  209 781 169 103 813 ...

Paso 4. Escalar los datos

#Solo si los datos no están en la misma escala.
datos_escalados <- scale(df1$Promedio.gasto.energetico.por.estado)

Paso 5. Determinar el número de grupos

grupos1 <- 4

Paso 6. Generar los grupos

set.seed(123)
clusters1 <- kmeans(datos_escalados,grupos1)
clusters1 
## K-means clustering with 4 clusters of sizes 15, 3, 8, 6
## 
## Cluster means:
##         [,1]
## 1 -0.8299525
## 2  2.0907082
## 3  0.8697896
## 4 -0.1301923
## 
## Clustering vector:
##  [1] 1 3 1 1 3 1 1 3 2 1 3 1 1 3 2 4 1 1 2 1 4 4 4 4 4 3 1 3 1 3 1 1
## 
## Within cluster sum of squares by cluster:
## [1] 0.3187405 0.3888196 0.4104041 0.2825654
##  (between_SS / total_SS =  95.5 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Paso 7. Optimizar el número de grupos

optimizacion1 <- clusGap(datos_escalados, FUN=kmeans, nstart=1, K.max=10)
#El k.max normalmente es 10, en este ejercicio al ser 8 datos se dejó en 7.
plot(optimizacion1, xlab="Número de cluster k", main= "Optimización de Clusters")

#se selecciona el como óptimo el primer punto más alto.
# Scatterplot de valores escalados con cluster asignado
plot(datos_escalados, col = clusters1$cluster, pch = 19,
     main = "Clusters en 1 variable (Promedio gasto energético)",
     xlab = "Estados (índice)", ylab = "Valor escalado")

# Agregar línea horizontal por cada centroide
abline(h = clusters1$centers, col = 1:grupos1, lwd = 2, lty = 2)

Paso 9. Agregar Grupos a la Base de Datos

df1_clusters <- cbind(df1, cluster = clusters1$cluster)
head(df1_clusters)
##                    estado Promedio.gasto.energetico.por.estado cluster
## 1          Aguascalientes                             208.6117       1
## 2         Baja California                             781.1447       3
## 3     Baja California Sur                             169.2510       1
## 4                Campeche                             103.1543       1
## 5                Coahuila                             813.2697       3
## 6                  Colima                             136.2911       1

Paso 10 Conclusiones

El análisis de clustering permitió agrupar a las entidades federativas mexicanas según su consumo energético en 2015, identificando patrones de comportamiento diferenciados. Los estados con mayor consumo quedaron concentrados en un grupo específico, mientras que aquellos con niveles medios y bajos se separaron en otros clusters. Esto muestra que el gasto energético no es homogéneo en el país y depende en gran medida de factores como el tamaño de la población, la actividad industrial y el desarrollo económico de cada región. La clasificación obtenida puede ser útil para diseñar políticas energéticas más focalizadas, asignar recursos de manera eficiente y comparar el desempeño entre entidades con características similares.

LS0tDQp0aXRsZTogIkNvbnN1bW8gcHJvbWVkaW8gZW5lcmdldGljbyBwb3IgZXN0YWRvIDIwMTUiDQphdXRob3I6ICJKb3JnZSBQb25zIERpYXogSW5mYW50ZSINCmRhdGU6ICIyMDI1LTA4LTE4Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6IHlldGkNCi0tLQ0KIVtdKGh0dHBzOi8vd3d3LnJlcHNvbC5jb20vY29udGVudC9kYW0vcmVwc29sLWNvcnBvcmF0ZS9lcy9lbmVyZ2lhLWUtaW5ub3ZhY2lvbi9jb25zdW1vLWVuZXJnZXRpY28tY2FiZWNlcmEuanBnKQ0KDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gQ29udGV4dG8gPC9zcGFuPg0KRXN0b3MgZGF0b3Mgc29uIGVsIHJlc3VsdGFkb3MgZGUgY29uc3VtbyBlbmVyZ2V0aWNvIHBvciBlbnRpZGFkIGZlZGVyYXRpdmEgbWV4Y2lhbmEgZGVsIGHDsW8gMjAxNQ0KDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gSW5zdGFsYXIgcGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyaWFzIDwvc3Bhbj4NCmBgYHtyfQ0KI2luc3RhbGwucGFja2FnZXMoImNsdXN0ZXIiKSAjQW5hbGlzaXMgZGUgQWdydXBhbWllbnRvIA0KbGlicmFyeShjbHVzdGVyKQ0KI2luc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KI2luc3RhbGwucGFja2FnZXMoImRhdGEudGFibGUiKQ0KbGlicmFyeShkYXRhLnRhYmxlKQ0KI2luc3RhbGwucGFja2FnZXMoImZhY3RvZXh0cmEiKQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPiBQYXNvIDIuIE9idGVuZXIgbG9zIGRhdG9zIDwvc3Bhbj4NCmBgYHtyfQ0KZGYxIDwtIHJlYWQuY3N2KCJDOi9Vc2Vycy91c3VhcmlvL0Rlc2t0b3AvQ29uc3Vtb19lbmVyZ2lhX2VsZWN0cmljYV8yMDE1LmNzdiIpDQoNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+IFBhc28gMy5SZXN1bWVuIGRlc2NyaXB0aXZvICA8L3NwYW4+DQpgYGB7cn0NCnN1bW1hcnkoZGYxKQ0Kc3RyKGRmMSkNCg0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gUGFzbyA0LiBFc2NhbGFyIGxvcyBkYXRvcyAgPC9zcGFuPg0KYGBge3J9DQojU29sbyBzaSBsb3MgZGF0b3Mgbm8gZXN0w6FuIGVuIGxhIG1pc21hIGVzY2FsYS4NCmRhdG9zX2VzY2FsYWRvcyA8LSBzY2FsZShkZjEkUHJvbWVkaW8uZ2FzdG8uZW5lcmdldGljby5wb3IuZXN0YWRvKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gUGFzbyA1LiBEZXRlcm1pbmFyIGVsIG7Dum1lcm8gZGUgZ3J1cG9zICA8L3NwYW4+DQpgYGB7cn0NCmdydXBvczEgPC0gNA0KDQpgYGANCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gUGFzbyA2LiBHZW5lcmFyIGxvcyBncnVwb3MgIDwvc3Bhbj4NCmBgYHtyfQ0Kc2V0LnNlZWQoMTIzKQ0KY2x1c3RlcnMxIDwtIGttZWFucyhkYXRvc19lc2NhbGFkb3MsZ3J1cG9zMSkNCmNsdXN0ZXJzMSANCmBgYA0KIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPiBQYXNvIDcuIE9wdGltaXphciBlbCBuw7ptZXJvIGRlIGdydXBvcyAgPC9zcGFuPg0KYGBge3J9DQpvcHRpbWl6YWNpb24xIDwtIGNsdXNHYXAoZGF0b3NfZXNjYWxhZG9zLCBGVU49a21lYW5zLCBuc3RhcnQ9MSwgSy5tYXg9MTApDQojRWwgay5tYXggbm9ybWFsbWVudGUgZXMgMTAsIGVuIGVzdGUgZWplcmNpY2lvIGFsIHNlciA4IGRhdG9zIHNlIGRlasOzIGVuIDcuDQpwbG90KG9wdGltaXphY2lvbjEsIHhsYWI9Ik7Dum1lcm8gZGUgY2x1c3RlciBrIiwgbWFpbj0gIk9wdGltaXphY2nDs24gZGUgQ2x1c3RlcnMiKQ0KI3NlIHNlbGVjY2lvbmEgZWwgY29tbyDDs3B0aW1vIGVsIHByaW1lciBwdW50byBtw6FzIGFsdG8uDQpgYGANCg0KYGBge3J9DQojIFNjYXR0ZXJwbG90IGRlIHZhbG9yZXMgZXNjYWxhZG9zIGNvbiBjbHVzdGVyIGFzaWduYWRvDQpwbG90KGRhdG9zX2VzY2FsYWRvcywgY29sID0gY2x1c3RlcnMxJGNsdXN0ZXIsIHBjaCA9IDE5LA0KICAgICBtYWluID0gIkNsdXN0ZXJzIGVuIDEgdmFyaWFibGUgKFByb21lZGlvIGdhc3RvIGVuZXJnw6l0aWNvKSIsDQogICAgIHhsYWIgPSAiRXN0YWRvcyAow61uZGljZSkiLCB5bGFiID0gIlZhbG9yIGVzY2FsYWRvIikNCg0KIyBBZ3JlZ2FyIGzDrW5lYSBob3Jpem9udGFsIHBvciBjYWRhIGNlbnRyb2lkZQ0KYWJsaW5lKGggPSBjbHVzdGVyczEkY2VudGVycywgY29sID0gMTpncnVwb3MxLCBsd2QgPSAyLCBsdHkgPSAyKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gUGFzbyA5LiBBZ3JlZ2FyIEdydXBvcyBhIGxhIEJhc2UgZGUgRGF0b3MgIDwvc3Bhbj4NCmBgYHtyfQ0KZGYxX2NsdXN0ZXJzIDwtIGNiaW5kKGRmMSwgY2x1c3RlciA9IGNsdXN0ZXJzMSRjbHVzdGVyKQ0KaGVhZChkZjFfY2x1c3RlcnMpDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPiBQYXNvIDEwIENvbmNsdXNpb25lcyA8L3NwYW4+DQpFbCBhbsOhbGlzaXMgZGUgY2x1c3RlcmluZyBwZXJtaXRpw7MgYWdydXBhciBhIGxhcyBlbnRpZGFkZXMgZmVkZXJhdGl2YXMgbWV4aWNhbmFzIHNlZ8O6biBzdSBjb25zdW1vIGVuZXJnw6l0aWNvIGVuIDIwMTUsIGlkZW50aWZpY2FuZG8gcGF0cm9uZXMgZGUgY29tcG9ydGFtaWVudG8gZGlmZXJlbmNpYWRvcy4gTG9zIGVzdGFkb3MgY29uIG1heW9yIGNvbnN1bW8gcXVlZGFyb24gY29uY2VudHJhZG9zIGVuIHVuIGdydXBvIGVzcGVjw61maWNvLCBtaWVudHJhcyBxdWUgYXF1ZWxsb3MgY29uIG5pdmVsZXMgbWVkaW9zIHkgYmFqb3Mgc2Ugc2VwYXJhcm9uIGVuIG90cm9zIGNsdXN0ZXJzLiBFc3RvIG11ZXN0cmEgcXVlIGVsIGdhc3RvIGVuZXJnw6l0aWNvIG5vIGVzIGhvbW9nw6luZW8gZW4gZWwgcGHDrXMgeSBkZXBlbmRlIGVuIGdyYW4gbWVkaWRhIGRlIGZhY3RvcmVzIGNvbW8gZWwgdGFtYcOxbyBkZSBsYSBwb2JsYWNpw7NuLCBsYSBhY3RpdmlkYWQgaW5kdXN0cmlhbCB5IGVsIGRlc2Fycm9sbG8gZWNvbsOzbWljbyBkZSBjYWRhIHJlZ2nDs24uIExhIGNsYXNpZmljYWNpw7NuIG9idGVuaWRhIHB1ZWRlIHNlciDDunRpbCBwYXJhIGRpc2XDsWFyIHBvbMOtdGljYXMgZW5lcmfDqXRpY2FzIG3DoXMgZm9jYWxpemFkYXMsIGFzaWduYXIgcmVjdXJzb3MgZGUgbWFuZXJhIGVmaWNpZW50ZSB5IGNvbXBhcmFyIGVsIGRlc2VtcGXDsW8gZW50cmUgZW50aWRhZGVzIGNvbiBjYXJhY3RlcsOtc3RpY2FzIHNpbWlsYXJlcy4NCg0K