1 Tahap 1: Tujuan Analisis Cluster

1.1 Load Library

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.2
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tibble' was built under R version 4.4.2
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'purrr' was built under R version 4.4.3
## Warning: package 'dplyr' was built under R version 4.4.3
## Warning: package 'stringr' was built under R version 4.4.3
## Warning: package 'forcats' was built under R version 4.4.2
## Warning: package 'lubridate' was built under R version 4.4.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   4.0.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readr)
library(cluster)
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(NbClust)
library(fpc)
## Warning: package 'fpc' was built under R version 4.4.3
library(clusterSim)
## Warning: package 'clusterSim' was built under R version 4.4.3
## Loading required package: MASS
## Warning: package 'MASS' was built under R version 4.4.3
## 
## Attaching package: 'MASS'
## 
## The following object is masked from 'package:dplyr':
## 
##     select
library(magrittr)
## Warning: package 'magrittr' was built under R version 4.4.3
## 
## Attaching package: 'magrittr'
## 
## The following object is masked from 'package:purrr':
## 
##     set_names
## 
## The following object is masked from 'package:tidyr':
## 
##     extract
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.4.2
## 
## Attaching package: 'reshape2'
## 
## The following object is masked from 'package:tidyr':
## 
##     smiths
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.4.3

1.2 Load Data

cluster <- read.csv("C:/Users/nyayu/Statistika/Semester 5/TPG (Teknik Peubah Ganda)/data clustering - Sheet1 (1).csv")
str (cluster)
## 'data.frame':    245 obs. of  5 variables:
##  $ desa    : chr  "EMBAWANG" "PAGAR DEWA" "TANJUNG BULAN" "LESUNG BATU" ...
##  $ IKS     : chr  "0,7257" "0,7257" "0,6971" "0,7371" ...
##  $ IKE     : chr  "0,5833" "0,55" "0,6167" "0,6333" ...
##  $ IKL     : chr  "0,6" "0,8667" "0,6" "0,6667" ...
##  $ skor.idm: chr  "0,6363" "0,7141" "0,6379" "0,679" ...
library(dplyr)
cluster <- cluster %>%
  dplyr::select(desa, IKS, IKE, IKL) %>%
  mutate(across(c(IKS, IKE, IKL), ~ as.numeric(gsub(",", ".", .))))

str(cluster)
## 'data.frame':    245 obs. of  4 variables:
##  $ desa: chr  "EMBAWANG" "PAGAR DEWA" "TANJUNG BULAN" "LESUNG BATU" ...
##  $ IKS : num  0.726 0.726 0.697 0.737 0.783 ...
##  $ IKE : num  0.583 0.55 0.617 0.633 0.667 ...
##  $ IKL : num  0.6 0.867 0.6 0.667 0.733 ...
colSums(is.na(cluster))
## desa  IKS  IKE  IKL 
##    0    0    0    0

1.3 Eksplorasi Awal dan korelasi

summary(cluster)
##      desa                IKS              IKE              IKL        
##  Length:245         Min.   :0.5943   Min.   :0.3833   Min.   :0.4000  
##  Class :character   1st Qu.:0.7429   1st Qu.:0.5667   1st Qu.:0.6667  
##  Mode  :character   Median :0.7829   Median :0.6333   Median :0.6667  
##                     Mean   :0.7870   Mean   :0.6485   Mean   :0.7227  
##                     3rd Qu.:0.8400   3rd Qu.:0.7167   3rd Qu.:0.8000  
##                     Max.   :0.9486   Max.   :0.9833   Max.   :1.0000
cor_mat <- cor(cluster[, c("IKS", "IKE", "IKL")], use = "pairwise.complete.obs")
cor_mat
##            IKS        IKE        IKL
## IKS  1.0000000  0.4244499 -0.0232502
## IKE  0.4244499  1.0000000 -0.2260230
## IKL -0.0232502 -0.2260230  1.0000000

Matriks korelasi ini menunjukkan bahwa ketiga variabel aman untuk digunakan bersama-sama. Nilai 0.424 (IKS & IKE) menunjukkan hubungan positif sedang, sementara -0.226 (IKE & IKL) dan -0.023 (IKS & IKL) menunjukkan hubungan negatif yang lemah atau hampir tidak ada. Yang terpenting, tidak ada korelasi yang sangat tinggi (seperti > 0.8), yang berarti tidak ada multikolinieritas serius. Setiap variabel membawa informasi uniknya sendiri, sehingga Anda tidak perlu menghapus variabel apa pun sebelum melanjutkan ke analisis cluster.

1.4 Tujuan Analisis Gerombol dan Studi Kasus

Dalam penelitian ini, analisis gerombol dilakukan dengan mempertimbangkan karakteristik data yang terdiri atas tiga variabel pembentuk Indeks Desa Membangun (IDM), yaitu Indeks Ketahanan Sosial (IKS), Indeks Ketahanan Ekonomi (IKE), dan Indeks Ketahanan Lingkungan (IKL) pada 245 desa di Provinsi Sumatera Selatan. Karena tujuan analisis adalah untuk mengelompokkan desa berdasarkan tingkat pembangunan yang serupa, maka hasil pengelompokan diharapkan tidak hanya bersifat matematis tetapi juga dapat memberikan interpretasi substantif yang jelas. Oleh karena itu, pendekatan yang digunakan sedikit berbeda dari contoh asisten dosen, dengan menekankan dua tahap analisis yang saling melengkapi.

Tahap pertama menggunakan analisis gerombol hierarki (hierarchical clustering) dengan metode Ward’s linkage dan jarak Euclidean untuk mengeksplorasi struktur alami data serta menentukan jumlah cluster yang optimal berdasarkan dendrogram dan indeks validitas seperti silhouette atau Calinski–Harabasz. Tahap kedua dilanjutkan dengan analisis gerombol non-hierarki (K-Means) menggunakan jumlah cluster hasil tahap eksplorasi sebelumnya untuk membentuk kelompok yang lebih tegas (definitif) dan mengevaluasi kestabilan hasilnya melalui metrik Silhouette coefficient, Calinski–Harabasz index, dan Dunn index.

Pendekatan dua tahap ini dipilih karena analisis gerombol bersifat eksploratif (trial and error), sehingga penting untuk memastikan bahwa jumlah cluster yang ditetapkan benar-benar mewakili pola alami dalam data. Dengan cara ini, hasil akhir tidak hanya didasarkan pada algoritma yang bersifat mekanis, tetapi juga pada pemahaman yang mendalam terhadap struktur dan makna statistik dari data yang dianalisis.

2 Tahap Kedua: Desain Penelitian dalam Analisis Cluster

2.1 Deteksi Outlier Kasar

par(mfrow = c(1,3))
boxplot(cluster$IKS, main="IKS")
boxplot(cluster$IKE, main="IKE")
boxplot(cluster$IKL, main="IKL")

par(mfrow = c(1,1))
# Deteksi outlier dengan z-score
cluster_numerik <- cluster %>% dplyr::select(IKS, IKE, IKL)
z_scores <- scale(cluster_numerik)
apply(z_scores, 2, function(x) sum(abs(x) > 3))  # jumlah outlier tiap variabel
## IKS IKE IKL 
##   0   1   0

Outlier boleh dipertahankan, karena tidak ekstrem dan masih dalam rentang 0–1. Tidak perlu winsorize / buang amatan.

2.2 Standarisasi data

skala sudah berada pada rentang 0-1 akan tetapi diperluakan standarisasi penyebaran data karena persebaran data tiap kelompok berbeda beda

cluster_scaled<- as.data.frame(scale(cluster_numerik),
                                center = TRUE, scale = TRUE)
summary(cluster_scaled)
##       IKS                IKE               IKL         
##  Min.   :-2.75815   Min.   :-2.4375   Min.   :-2.5955  
##  1st Qu.:-0.63157   1st Qu.:-0.7519   1st Qu.:-0.4506  
##  Median :-0.05914   Median :-0.1397   Median :-0.4506  
##  Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.0000  
##  3rd Qu.: 0.75800   3rd Qu.: 0.6268   3rd Qu.: 0.6214  
##  Max.   : 2.31215   Max.   : 3.0772   Max.   : 2.2299

3 Tahap Ketiga: Cek Asumsi

Ada 245 desan dan 3 variabel. Rasio objek:variabel = >80 : 1 artinya sangat memadai untuk analisis cluster.

3.1 Cek Multikolinearitas

library(car)
## Warning: package 'car' was built under R version 4.4.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.2
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:purrr':
## 
##     some
model <- lm(IKS ~ IKE + IKL, data = cluster_numerik)
vif(model)
##      IKE      IKL 
## 1.053837 1.053837

Nilai VIF < 5 → multikolinearitas tidak masalah.

4 Tahap Keempat: Menentukan Jumlah Cluster Optimal

Analisis gerombol hierarki dilakukan dengan metode Ward’s linkage menggunakan ukuran jarak Euclidean. Metode Ward dipilih karena mampu meminimalkan jumlah kuadrat dalam-cluster (within-cluster sum of squares), sehingga menghasilkan pengelompokan yang homogen dalam setiap cluster. Penentuan jumlah cluster dilakukan dengan mengamati dendrogram hasil pengelompokan. Titik pemotongan (cut point) dipilih pada jarak di mana terjadi peningkatan tajam (large jump) pada ketinggian penggabungan (height), yang menunjukkan perbedaan signifikan antarcluster. Dengan demikian, jumlah cluster yang diperoleh mencerminkan struktur alami dalam data. Untuk memperkuat hasil, metode ini juga dibandingkan dengan indeks validitas internal seperti Silhouette, Calinski–Harabasz, dan Dunn Index pada tahap evaluasi akhir.

4.1 Ward’s Method

library(factoextra)
library(cluster)

dist_euc <- dist(cluster_scaled, method = "euclidean")

hc_ward <- hclust(dist_euc, method = "ward.D2")

fviz_dend(hc_ward, 
          k = 3, 
          cex = 0.6,
          palette = "Set2",
          main = "Dendrogram dengan Metode Ward's",
          sub = "Menggambarkan Struktur Hierarki Desa Berdasarkan IKS, IKE, dan IKL",
          xlab = "Desa", ylab = "Jarak (Height)")
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## ℹ The deprecated feature was likely used in the factoextra package.
##   Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## ℹ The deprecated feature was likely used in the factoextra package.
##   Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
## of ggplot2 3.3.4.
## ℹ The deprecated feature was likely used in the factoextra package.
##   Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

fviz_nbclust(cluster_scaled, FUN = hcut, method = "silhouette") +
  labs(title = "Evaluasi Jumlah Cluster Optimal (Ward's Method)")
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## ℹ The deprecated feature was likely used in the ggpubr package.
##   Please report the issue at <https://github.com/kassambara/ggpubr/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## ℹ The deprecated feature was likely used in the ggpubr package.
##   Please report the issue at <https://github.com/kassambara/ggpubr/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Output ini menunjukkan bahwa analisis gerombol hierarki dengan metode Ward telah berhasil memetakan struktur data 245 kecamatan. Dendrogram (gambar kiri) secara visual mengindikasikan bahwa pemotongan pada tiga cluster (kelompok hijau, oranye, dan biru) adalah kandidat yang paling logis, berdasarkan adanya jarak penggabungan vertikal yang signifikan (large jump) setelah tiga cluster tersebut terbentuk. Temuan visual ini kemudian dikonfirmasi secara statistik oleh plot evaluasi (gambar kanan), yang menunjukkan bahwa nilai average silhouette width (sebuah indeks validitas) mencapai puncaknya pada k=3, yang mengidentifikasi tiga sebagai jumlah cluster optimal untuk data ini.

4.2 Metode Elbow dan Silhouette

# 1. Metode Elbow
fviz_nbclust(cluster_scaled, kmeans, method = "wss") +
  labs(title = "Menentukan Jumlah Cluster Optimal - Metode Elbow",
       x = "Jumlah Cluster (k)",
       y = "Total Within-Cluster Sum of Squares (WSS)")

# 2. Metode Silhouette
fviz_nbclust(cluster_scaled, kmeans, method = "silhouette") +
  labs(title = "Menentukan Jumlah Cluster Optimal - Metode Silhouette",
       x = "Jumlah Cluster (k)",
       y = "Nilai Rata-rata Silhouette")

Kedua plot ini menyajikan metode validasi internal untuk menentukan jumlah cluster (k) yang optimal, yang mengkonfirmasi temuan dari dendrogram. Plot Metode Elbow (kiri) memetakan Total Within-Cluster Sum of Squares (WSS) terhadap nilai k; tujuannya adalah menemukan titik ‘siku’ di mana penambahan cluster baru tidak lagi memberikan pengurangan WSS yang substansial. Plot ini menunjukkan siku yang mulai terbentuk pada k=3, di mana kurva mulai melandai secara signifikan. Temuan ini diperkuat secara lebih definitif oleh Metode Silhouette (kanan), yang mengukur seberapa baik setiap observasi terpisah dari cluster tetangganya. Plot ini secara eksplisit menunjukkan nilai rata-rata silhouette mencapai puncaknya (nilai tertinggi \(\approx 0.32\)) pada k=3, yang secara statistik mengindikasikan bahwa pembagian data menjadi tiga cluster adalah partisi yang paling optimal dan stabil.

4.3 Kesimpulan

Dari ketiga metode tersebut k=3

5 Tahap Keempat: Proses Mendapatkan Cluster dan Menilai kelayakan secara keseluruhan

Menetapkan setiap desa ke dalam salah satu dari tiga kelompok berdasarkan kesamaan skor IKS, IKE, dan IKL (yang sudah distandarisasi) dengan K-Means

set.seed(123) 

kmeans_result <- kmeans(cluster_scaled, centers = 3, nstart = 25)
kmeans_result
## K-means clustering with 3 clusters of sizes 56, 117, 72
## 
## Cluster means:
##           IKS         IKE        IKL
## 1  1.15813990  1.02858209  0.4778731
## 2 -0.09611681  0.03207582 -0.7715745
## 3 -0.74458567 -0.85213150  0.8821296
## 
## Clustering vector:
##   [1] 2 3 2 2 2 3 3 1 3 1 2 2 3 3 1 1 1 3 1 1 1 1 3 1 2 1 2 2 1 2 1 2 3 1 3 2 1
##  [38] 2 2 2 2 1 1 2 2 2 3 2 1 2 2 2 2 2 2 2 2 1 1 1 2 3 2 3 2 2 2 2 2 2 3 1 3 3
##  [75] 2 1 1 2 2 2 2 2 2 2 2 3 1 2 3 2 2 2 3 2 3 2 2 2 3 3 3 3 2 3 2 2 3 2 2 2 3
## [112] 3 1 1 3 1 2 3 2 3 1 1 1 3 1 1 1 3 1 2 2 3 3 3 2 2 1 2 2 3 2 2 2 3 3 3 2 3
## [149] 2 2 3 2 2 2 3 1 3 2 3 2 3 2 2 1 3 3 1 1 3 3 2 1 3 1 1 2 1 2 2 2 2 3 3 3 3
## [186] 3 3 3 3 3 3 3 3 2 1 1 2 1 3 1 2 1 1 2 2 2 2 2 2 2 2 2 1 1 2 1 3 1 2 2 3 2
## [223] 2 3 2 2 2 2 2 2 2 2 2 1 2 2 3 2 3 2 2 3 3 1 3
## 
## Within cluster sum of squares by cluster:
## [1] 102.8798 155.4343 107.4584
##  (between_SS / total_SS =  50.0 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Jumlah desa di tiap cluster:

  1. Cluster 1: 56 desa
  2. Cluster 2: 117 desa
  3. Cluster 3: 72 desa

Berdasarkan hasil tersebut:

  1. Cluster 1: +IKS, +IKE, +IKL, maknanya Desa maju secara sosial & ekonomi, dan cukup baik lingkungan
  2. Cluster 2: -IKS, +IKE, -IKL, maknanya Desa Desa sedang secara sosial–ekonomi, tapi tertinggal di lingkungan
  3. Cluster 3: -IKS, -IKE, +IKL, maknanya Desa dengan ketahanan sosial-ekonomi rendah, tapi lingkungan tinggi

→ Nilai variasi dalam setiap cluster (semakin kecil, semakin homogen). Cluster 1 & 3 homogen; Cluster 2 agak beragam (155 paling besar).

→ Proporsi variasi antarcluster terhadap total variasi. Nilai 50% artinya 50% variasi total data berhasil dijelaskan oleh perbedaan antarcluster. Ini cukup baik untuk data sosial (karena jarang >60%).

6 Tahap 5: Evaluasi Hasil Cluster

library(cluster)
library(clusterCrit)
## Warning: package 'clusterCrit' was built under R version 4.4.3
dist_matrix <- dist(cluster_scaled, method = "euclidean")

cluster_km <- kmeans_result$cluster

sil <- mean(silhouette(cluster_km, dist_matrix)[, 3])
ch <- intCriteria(traj = as.matrix(cluster_scaled), part = cluster_km, crit = "Calinski_Harabasz")$calinski_harabasz
dunn <- intCriteria(traj = as.matrix(cluster_scaled), part = cluster_km, crit = "Dunn")$dunn

data.frame(Silhouette = sil, Calinski_Harabasz = ch, Dunn = dunn)
##   Silhouette Calinski_Harabasz       Dunn
## 1  0.3170842          121.1505 0.05249338

Silhouette (0.317) Nilai 0.317 = cukup baik, artinya struktur cluster mulai terlihat tapi masih ada sedikit tumpang tindih antarcluster (umum di data sosial).

Calinski–Harabasz (121.15) Nilai tinggi (121) → cluster cukup tegas.

Dunn (0.052) Nilai 0.05 = cukup rendah tapi wajar, karena skala data sosial jarang punya pemisahan ekstrem.

Kesimpulan Hasil clustering dengan 3 kelompok sudah cukup representatif. Nilai Silhouette dan CH menunjukkan pemisahan yang moderat, sementara Dunn Index mendukung adanya pemisahan yang nyata meski tidak terlalu tajam. Struktur cluster dapat diterima untuk data sosial multidimensi.

7 Tahap 6: Interpretasi dan Karakteristik Tiap Cluster

data_clustered <- data.frame(cluster_scaled, cluster = factor(kmeans_result$cluster))
head(data_clustered)
##          IKS        IKE         IKL cluster
## 1 -0.8777152 -0.5992855 -0.98703517       2
## 2 -0.8777152 -0.9053508  1.15787210       3
## 3 -1.2870022 -0.2923011 -0.98703517       2
## 4 -0.7145729 -0.1397280 -0.45060730       2
## 5 -0.0591413  0.1672564  0.08501634       2
## 6 -0.5499994 -0.7518586  2.22992362       3
library(dplyr)
library(ggplot2)
library(tidyr)
library(RColorBrewer)


cluster_summary <- data_clustered %>%
  group_by(cluster) %>%
  summarise(across(where(is.numeric), mean, .names = "rata2_{.col}"))

print(cluster_summary)
## # A tibble: 3 × 4
##   cluster rata2_IKS rata2_IKE rata2_IKL
##   <fct>       <dbl>     <dbl>     <dbl>
## 1 1          1.16      1.03       0.478
## 2 2         -0.0961    0.0321    -0.772
## 3 3         -0.745    -0.852      0.882
ggplot(cluster_summary %>%
         pivot_longer(-cluster, names_to = "variabel", values_to = "rata2"),
       aes(x = variabel, y = rata2, fill = cluster)) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_fill_brewer(palette = "Set2") +
  labs(title = "Karakteristik Rata-Rata Tiap Cluster",
       x = "Variabel", y = "Rata-rata (standar)") +
  theme_minimal(base_size = 12) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Grafik ini secara visual mengkonfirmasi karakteristik rata-rata (nilai Z-score) dari tiga cluster yang diidentifikasi oleh K-Means. Plot ini menunjukkan tiga profil yang sangat berbeda: Cluster 1 (hijau) memiliki nilai positif tinggi di ketiga variabel, terutama pada IKS dan IKE, yang dapat diartikan sebagai cluster “Unggul”; Cluster 2 (oranye) memiliki nilai yang mendekati rata-rata (nol) untuk IKS dan IKE namun bernilai negatif kuat pada IKL; dan Cluster 3 (ungu) menunjukkan pola sebaliknya, dengan nilai negatif signifikan pada IKS dan IKE namun bernilai positif sangat tinggi pada IKL. Visualisasi ini menegaskan bahwa partisi K-Means telah berhasil mengidentifikasi tiga tipologi kecamatan dengan karakteristik yang jelas dan unik.

7.1 Data Hasil Cluster Desa

data_final_lengkap <- cluster %>%
  mutate(cluster = kmeans_result$cluster)
data_final_lengkap
##                     desa    IKS    IKE    IKL cluster
## 1               EMBAWANG 0.7257 0.5833 0.6000       2
## 2             PAGAR DEWA 0.7257 0.5500 0.8667       3
## 3          TANJUNG BULAN 0.6971 0.6167 0.6000       2
## 4            LESUNG BATU 0.7371 0.6333 0.6667       2
## 5            PANDAN ENIM 0.7829 0.6667 0.7333       2
## 6              PADURAKSA 0.7486 0.5667 1.0000       3
## 7                  MATAS 0.7943 0.6000 0.8667       3
## 8          TANJUNG AGUNG 0.8514 0.8167 0.8000       1
## 9             MUARA EMIL 0.7657 0.6667 1.0000       3
## 10      TANJUNG KARANGAN 0.8229 0.6333 0.8000       1
## 11               SELEMAN 0.6571 0.6833 0.5333       2
## 12          PENYANDINGAN 0.7886 0.5500 0.6000       2
## 13        TANJUNG LALANG 0.7829 0.5000 0.9333       3
## 14        PULAU PANGGUNG 0.7371 0.5167 0.6667       3
## 15          TANJUNG RAJA 0.8629 0.7000 0.8667       1
## 16           KARANG RAJA 0.8629 0.7500 0.8667       1
## 17           MUARA LAWAI 0.8457 0.6833 0.9333       1
## 18          TANJUNG JATI 0.8114 0.6000 1.0000       3
## 19          LUBUK EMPLAS 0.8629 0.7000 0.8667       1
## 20                 KEPUR 0.8343 0.7500 0.8000       1
## 21        TANJUNG SERIAN 0.8743 0.7500 0.8667       1
## 22         MUARA HARAPAN 0.8343 0.6833 0.8667       1
## 23             SAKA JAYA 0.8514 0.5000 0.9333       3
## 24          HARAPAN JAYA 0.8457 0.7667 0.8000       1
## 25              GEMAWANG 0.7543 0.7000 0.7333       2
## 26           LUBUK RAMAN 0.8971 0.8833 0.6667       1
## 27              JEMENANG 0.7886 0.8667 0.5333       2
## 28        TANJUNG MENANG 0.8057 0.7667 0.5333       2
## 29           TEBAT AGUNG 0.9143 0.8667 0.8667       1
## 30               GERINAM 0.7771 0.7167 0.6667       2
## 31          SUBAN JERIJI 0.8000 0.6833 0.8000       1
## 32             AIR LIMAU 0.8743 0.7333 0.5333       2
## 33        MUARA EMBURUNG 0.7543 0.3833 0.6667       3
## 34        MANUNGGAL JAYA 0.8571 0.7333 0.8000       1
## 35             AIR TALAS 0.7543 0.5833 0.8667       3
## 36              AIR ENAU 0.7886 0.8000 0.6000       2
## 37      MANUNGGAL MAKMUR 0.8057 0.8500 0.6667       1
## 38              AUR DURI 0.7029 0.5500 0.6000       2
## 39            KASIH DEWA 0.7943 0.7500 0.6667       2
## 40            AIR CEKDAM 0.7543 0.6333 0.6667       2
## 41           PENANGGIRAN 0.7829 0.6833 0.6000       2
## 42    GUNUNG MEGANG LUAR 0.8457 0.6833 0.7333       1
## 43   GUNUNG MEGANG DALAM 0.8629 0.7500 0.8000       1
## 44           LUBUK MUMPO 0.7943 0.7000 0.7333       2
## 45               PERJITO 0.7714 0.6333 0.7333       2
## 46        TANJUNG MUNING 0.7771 0.5667 0.6667       2
## 47        TANJUNG TERANG 0.7600 0.6000 0.8667       3
## 48           BANGUN SARI 0.7886 0.6500 0.6667       2
## 49         SUMAJA MAKMUR 0.8400 0.9000 0.6667       1
## 50             SIDOMULYO 0.8629 0.6167 0.6667       2
## 51           PAJAR INDAH 0.8514 0.6667 0.6667       2
## 52        KAYU ARA SAKTI 0.8229 0.6833 0.6667       2
## 53           PANANG JAYA 0.7714 0.7667 0.6000       2
## 54          GAUNG TELANG 0.7429 0.6333 0.6667       2
## 55         PINANG BANJAR 0.7886 0.6667 0.6000       2
## 56               SEGAYAM 0.8571 0.6000 0.6667       2
## 57     TAMBANGAN KELEKAR 0.7943 0.6333 0.6667       2
## 58           SUKA MENANG 0.8686 0.8667 0.6000       1
## 59          KARANG ENDAH 0.8914 0.7833 0.6667       1
## 60                 JAMBU 0.8514 0.7167 0.8667       1
## 61                 MIDAR 0.8229 0.6333 0.6667       2
## 62              MILILIAN 0.7829 0.4667 0.6667       3
## 63             PEDATARAN 0.7771 0.6000 0.7333       2
## 64           TELUK LIMAU 0.7486 0.4833 0.8667       3
## 65           KERTA MULYA 0.7943 0.6167 0.6667       2
## 66                 SEBAU 0.7657 0.5667 0.6000       2
## 67                 SIGAM 0.8286 0.6500 0.6667       2
## 68             PAYABAKAL 0.8229 0.5000 0.6667       2
## 69                 BITIS 0.8800 0.5667 0.6667       2
## 70                 GUMAI 0.7886 0.6000 0.6667       2
## 71                 PUTAK 0.7486 0.5833 0.7333       3
## 72         TALANG TALING 0.8686 0.6333 0.7333       1
## 73             SUKA JAYA 0.7829 0.5833 0.8000       3
## 74  KARANG ENDAH SELATAN 0.7771 0.7000 0.8667       3
## 75                BETUNG 0.7771 0.6667 0.5333       2
## 76            TEGAL REJO 0.9371 0.7833 0.7333       1
## 77                LINGGA 0.9029 0.9833 0.6000       1
## 78           KEBAN AGUNG 0.8457 0.8167 0.4667       2
## 79                 DARMO 0.8114 0.7167 0.6000       2
## 80            PENINDAIAN 0.7086 0.5667 0.5333       2
## 81               BABATAN 0.7314 0.5833 0.6667       2
## 82             MUARA DUA 0.7429 0.6667 0.6667       2
## 83           MUARA DANAU 0.6514 0.6833 0.6000       2
## 84          PENYANDINGAN 0.7886 0.7333 0.6000       2
## 85           TANAH ABANG 0.6971 0.7333 0.5333       2
## 86           PAGAR AGUNG 0.6857 0.5667 0.8000       3
## 87        PULAU PANGGUNG 0.8743 0.9333 0.6667       1
## 88           KARYA NYATA 0.7429 0.7500 0.6000       2
## 89               PERAPAU 0.7086 0.5000 0.8000       3
## 90         TENAM BUNGKUK 0.8000 0.6167 0.6667       2
## 91           KOTA PADANG 0.7600 0.7333 0.6000       2
## 92          GUNUNG AGUNG 0.7200 0.7500 0.4667       2
## 93           SRI TANJUNG 0.8114 0.4167 0.8667       3
## 94          TEBING ABANG 0.7543 0.5167 0.6667       2
## 95            BATU SURAU 0.7600 0.4333 0.8000       3
## 96          TANJUNG RAYA 0.8514 0.5500 0.6667       2
## 97          MUARA TENANG 0.8571 0.6333 0.6000       2
## 98          REKIMAI JAYA 0.6686 0.7500 0.6667       2
## 99           PALAK TANAH 0.7371 0.5167 0.8667       3
## 100           KOTA AGUNG 0.7600 0.4833 0.8667       3
## 101         SWARNA DWIPA 0.7371 0.6667 0.9333       3
## 102         TANJUNG TIGA 0.6514 0.6500 0.8000       3
## 103          CAHAYA ALAM 0.7200 0.5500 0.6667       2
## 104          DATAR LEBAR 0.6971 0.6167 0.8000       3
## 105              SEGAMIT 0.7714 0.7500 0.6000       2
## 106         SIRING AGUNG 0.7829 0.7000 0.6000       2
## 107            AREMANTAI 0.6514 0.5167 0.8667       3
## 108        TANJUNG AGUNG 0.7200 0.6667 0.6000       2
## 109          PAJAR BULAN 0.6686 0.7167 0.6667       2
## 110              PELAKAT 0.6743 0.7000 0.6667       2
## 111          DANAU GERAK 0.6514 0.6500 0.8000       3
## 112       PINANG BELARIK 0.8229 0.5333 1.0000       3
## 113        UJAN MAS LAMA 0.8229 0.7000 0.8000       1
## 114        UJAN MAS BARU 0.9029 0.9000 0.8667       1
## 115        TANJUNG RAMAN 0.7486 0.5333 0.9333       3
## 116      MUARA GULA BARU 0.8971 0.7167 0.9333       1
## 117      MUARA GULA LAMA 0.7886 0.7000 0.4000       2
## 118                 GUCI 0.7086 0.6500 0.7333       3
## 119         ULAK BANDUNG 0.8057 0.6667 0.6000       2
## 120                  AUR 0.7714 0.6333 0.8000       3
## 121             BERINGIN 0.9371 0.8000 0.6667       1
## 122            KOTA BARU 0.8857 0.7000 0.8000       1
## 123         PAGAR GUNUNG 0.8971 0.6500 0.8000       1
## 124          GUNUNG RAJA 0.6857 0.7667 0.9333       3
## 125       TANJUNG KEMALA 0.7714 0.7500 0.8667       1
## 126         SUKA MERINDU 0.8400 0.6333 0.8000       1
## 127            JIWA BARU 0.9086 0.5333 0.8000       1
## 128             AIR ASAM 0.8286 0.5667 0.8000       3
## 129              MENANTI 0.8514 0.6333 0.9333       1
## 130         BARU RAMBANG 0.8057 0.5500 0.6000       2
## 131              SUGIHAN 0.8057 0.6333 0.6667       2
## 132         TANJUNG RAYA 0.6743 0.5667 0.8000       3
## 133        TANJUNG DALAM 0.7771 0.5000 0.8667       3
## 134             SUKARAMI 0.7543 0.5500 0.7333       3
## 135          PAGAR AGUNG 0.8114 0.6333 0.7333       2
## 136          SUGIH WARAS 0.7943 0.7167 0.6000       2
## 137        SUMBER RAHAYU 0.9143 0.8667 0.6667       1
## 138          MARGA MULYA 0.8000 0.6333 0.6667       2
## 139        KENCANA MULIA 0.8057 0.5667 0.7333       2
## 140         NEGERI AGUNG 0.7029 0.5833 0.8000       3
## 141     SUGIHWARAS BARAT 0.7829 0.6667 0.6667       2
## 142            AIR KERUH 0.7771 0.5000 0.6667       2
## 143       TANJUNG MIRING 0.7714 0.6500 0.6667       2
## 144        DANAU TAMPANG 0.6971 0.5000 0.8667       3
## 145                KASAI 0.7371 0.6167 0.7333       3
## 146         SUNGAI ROTAN 0.6800 0.6167 0.8000       3
## 147          SUKAMERINDU 0.7714 0.6333 0.6000       2
## 148        TANDING MARGA 0.7143 0.5500 0.8000       3
## 149       MUARA LEMATANG 0.9029 0.6000 0.6000       2
## 150             SUKADANA 0.7714 0.6333 0.6000       2
## 151               MODONG 0.7086 0.6000 0.7333       3
## 152            SUKACINTA 0.6971 0.6000 0.5333       2
## 153          PENANDINGAN 0.7714 0.6167 0.6667       2
## 154           DANAU RATA 0.7771 0.6167 0.7333       2
## 155           PAYA ANGUS 0.6629 0.4833 0.8667       3
## 156             SUKARAMI 0.8743 0.7167 0.6667       1
## 157          PETAR DALAM 0.7943 0.4333 0.8000       3
## 158             SUKAJADI 0.8629 0.6333 0.6000       2
## 159             SUKAMAJU 0.6457 0.5167 0.8667       3
## 160           DANAU BARU 0.8057 0.6500 0.6000       2
## 161           PETAR LUAR 0.7486 0.5667 0.7333       3
## 162             PETANANG 0.8514 0.6667 0.6000       2
## 163        TALANG NANGKA 0.8057 0.5833 0.6000       2
## 164                 ALAI 0.8057 0.8000 0.8000       1
## 165         SUNGAI DUREN 0.7086 0.5333 0.8667       3
## 166                TAPUS 0.7771 0.6333 0.8667       3
## 167               LEMBAK 0.9200 0.8667 0.9333       1
## 168               KEMANG 0.8514 0.7333 0.8000       1
## 169           LUBUK ENAU 0.8629 0.5667 0.8667       3
## 170         ALAI SELATAN 0.7657 0.6000 0.9333       3
## 171         TANJUNG BARU 0.7714 0.7000 0.6667       2
## 172         PADANG BINDU 0.8343 0.6667 0.9333       1
## 173               BETUNG 0.7543 0.5167 0.8667       3
## 174           PAGAR DEWA 0.8229 0.7333 0.8667       1
## 175            PAGARJATI 0.8743 0.8333 0.7333       1
## 176           HIDUP BARU 0.8286 0.5833 0.5333       2
## 177           RAMI PASAI 0.8629 0.6167 0.9333       1
## 178     EMBACANG KELEKAR 0.7714 0.5500 0.6000       2
## 179              MENANTI 0.8686 0.6333 0.6000       2
## 180      MENANTI SELATAN 0.7371 0.6500 0.6667       2
## 181           SUBAN BARU 0.8343 0.6167 0.6667       2
## 182            PELEMPANG 0.7143 0.4500 0.8000       3
## 183           TELUK JAYA 0.6857 0.5167 0.8667       3
## 184       TANJUNG MEDANG 0.7200 0.6000 0.7333       3
## 185         GEDUNG BURUK 0.6800 0.4333 0.8000       3
## 186          ARISAN MUSI 0.7829 0.4667 0.8000       3
## 187        HARAPAN MULIA 0.7600 0.4333 0.8000       3
## 188          MULIA ABADI 0.6800 0.4667 0.7333       3
## 189    ARISAN MUSI TIMUR 0.6800 0.4167 0.8000       3
## 190           PATRA TANI 0.6686 0.4333 0.8667       3
## 191         TANJUNG BARU 0.6629 0.5667 0.8000       3
## 192        KAYU ARA BATU 0.7029 0.4667 0.8000       3
## 193              TANJUNG 0.7257 0.6167 0.8667       3
## 194      SIMPANG TANJUNG 0.7943 0.7667 0.6667       2
## 195          CINTA KASIH 0.8571 0.7500 0.9333       1
## 196          TELUK LUBUK 0.9143 0.8167 0.6667       1
## 197               BERUGO 0.8171 0.6333 0.6667       2
## 198            BELIMBING 0.8914 0.8000 0.8000       1
## 199               BULANG 0.7314 0.5333 0.7333       3
## 200       BELIMBING JAYA 0.9200 0.6000 0.8000       1
## 201          DARMO KASIH 0.7657 0.5333 0.6667       2
## 202                DALAM 0.9257 0.7667 0.8667       1
## 203        TANJUNG BUNUT 0.8743 0.8000 0.6000       1
## 204                BABAT 0.8229 0.6500 0.4667       2
## 205      LUBUK SEMANTUNG 0.7771 0.6500 0.6667       2
## 206          LUBUK GETAM 0.7543 0.6500 0.5333       2
## 207         TALANG BALAI 0.8514 0.8000 0.4667       2
## 208       TALANG BELIUNG 0.7829 0.6333 0.6667       2
## 209            SIALINGAN 0.6457 0.8500 0.5333       2
## 210         TANJUNG TIGA 0.7314 0.6500 0.7333       2
## 211                 IBUL 0.7314 0.6833 0.6667       2
## 212           GAUNG ASAM 0.8914 0.5333 0.6667       2
## 213         KARANG AGUNG 0.9486 0.8500 0.4667       1
## 214          KARANG SARI 0.8629 0.7333 0.6667       1
## 215         KARANG MULYA 0.8171 0.6833 0.6667       2
## 216         SUMBER MULYA 0.8914 0.8167 0.5333       1
## 217          SUMBER ASRI 0.8229 0.6167 0.8667       3
## 218           PAGAR DEWA 0.9314 0.9000 0.8667       1
## 219          PRABUMENANG 0.8286 0.5833 0.7333       2
## 220                LECAH 0.8743 0.6167 0.6667       2
## 221           MEKAR JAYA 0.8057 0.5667 0.8000       3
## 222        LUBAI PERSADA 0.8286 0.6333 0.6667       2
## 223         LUBAI MAKMUR 0.8457 0.6167 0.6667       2
## 224           MUARA NIRU 0.7029 0.5500 0.8000       3
## 225       KAHURIPAN BARU 0.6571 0.6333 0.5333       2
## 226      PANGKALAN BABAT 0.7600 0.6333 0.6667       2
## 227          GUNUNG RAJA 0.7600 0.6333 0.6667       2
## 228              BANUAYU 0.7429 0.6333 0.6000       2
## 229              KURIPAN 0.8114 0.6833 0.4000       2
## 230      KURIPAN SELATAN 0.7829 0.5000 0.6000       2
## 231            BATU RAJA 0.7486 0.6500 0.6667       2
## 232               DANGKU 0.7657 0.6833 0.5333       2
## 233                 SIKU 0.8000 0.5667 0.6667       2
## 234           LEBAK BUDI 0.7600 0.7833 0.9333       1
## 235               LAMBUR 0.8171 0.6500 0.6667       2
## 236           PAGAR JATI 0.7029 0.7333 0.6667       2
## 237         TANJUNG BARU 0.7086 0.6333 0.8667       3
## 238             SUKARAJA 0.7200 0.7167 0.5333       2
## 239        PANDAN DULANG 0.6914 0.6000 0.8667       3
## 240            MUARA MEO 0.7600 0.7333 0.6667       2
## 241          SUGIH WARAS 0.7714 0.7500 0.6667       2
## 242            INDRAMAYU 0.7200 0.7333 0.8000       3
## 243             BEDEGUNG 0.7714 0.6500 0.8667       3
## 244         PADANG BINDU 0.8400 0.8333 0.7333       1
## 245          LUBUK NIPIS 0.5943 0.7500 0.8667       3
desa_clustered2 <- data_final_lengkap %>%
  dplyr::select(desa, cluster) %>%  
  arrange(cluster)
desa_clustered2
##                     desa cluster
## 1          TANJUNG AGUNG       1
## 2       TANJUNG KARANGAN       1
## 3           TANJUNG RAJA       1
## 4            KARANG RAJA       1
## 5            MUARA LAWAI       1
## 6           LUBUK EMPLAS       1
## 7                  KEPUR       1
## 8         TANJUNG SERIAN       1
## 9          MUARA HARAPAN       1
## 10          HARAPAN JAYA       1
## 11           LUBUK RAMAN       1
## 12           TEBAT AGUNG       1
## 13          SUBAN JERIJI       1
## 14        MANUNGGAL JAYA       1
## 15      MANUNGGAL MAKMUR       1
## 16    GUNUNG MEGANG LUAR       1
## 17   GUNUNG MEGANG DALAM       1
## 18         SUMAJA MAKMUR       1
## 19           SUKA MENANG       1
## 20          KARANG ENDAH       1
## 21                 JAMBU       1
## 22         TALANG TALING       1
## 23            TEGAL REJO       1
## 24                LINGGA       1
## 25        PULAU PANGGUNG       1
## 26         UJAN MAS LAMA       1
## 27         UJAN MAS BARU       1
## 28       MUARA GULA BARU       1
## 29              BERINGIN       1
## 30             KOTA BARU       1
## 31          PAGAR GUNUNG       1
## 32        TANJUNG KEMALA       1
## 33          SUKA MERINDU       1
## 34             JIWA BARU       1
## 35               MENANTI       1
## 36         SUMBER RAHAYU       1
## 37              SUKARAMI       1
## 38                  ALAI       1
## 39                LEMBAK       1
## 40                KEMANG       1
## 41          PADANG BINDU       1
## 42            PAGAR DEWA       1
## 43             PAGARJATI       1
## 44            RAMI PASAI       1
## 45           CINTA KASIH       1
## 46           TELUK LUBUK       1
## 47             BELIMBING       1
## 48        BELIMBING JAYA       1
## 49                 DALAM       1
## 50         TANJUNG BUNUT       1
## 51          KARANG AGUNG       1
## 52           KARANG SARI       1
## 53          SUMBER MULYA       1
## 54            PAGAR DEWA       1
## 55            LEBAK BUDI       1
## 56          PADANG BINDU       1
## 57              EMBAWANG       2
## 58         TANJUNG BULAN       2
## 59           LESUNG BATU       2
## 60           PANDAN ENIM       2
## 61               SELEMAN       2
## 62          PENYANDINGAN       2
## 63              GEMAWANG       2
## 64              JEMENANG       2
## 65        TANJUNG MENANG       2
## 66               GERINAM       2
## 67             AIR LIMAU       2
## 68              AIR ENAU       2
## 69              AUR DURI       2
## 70            KASIH DEWA       2
## 71            AIR CEKDAM       2
## 72           PENANGGIRAN       2
## 73           LUBUK MUMPO       2
## 74               PERJITO       2
## 75        TANJUNG MUNING       2
## 76           BANGUN SARI       2
## 77             SIDOMULYO       2
## 78           PAJAR INDAH       2
## 79        KAYU ARA SAKTI       2
## 80           PANANG JAYA       2
## 81          GAUNG TELANG       2
## 82         PINANG BANJAR       2
## 83               SEGAYAM       2
## 84     TAMBANGAN KELEKAR       2
## 85                 MIDAR       2
## 86             PEDATARAN       2
## 87           KERTA MULYA       2
## 88                 SEBAU       2
## 89                 SIGAM       2
## 90             PAYABAKAL       2
## 91                 BITIS       2
## 92                 GUMAI       2
## 93                BETUNG       2
## 94           KEBAN AGUNG       2
## 95                 DARMO       2
## 96            PENINDAIAN       2
## 97               BABATAN       2
## 98             MUARA DUA       2
## 99           MUARA DANAU       2
## 100         PENYANDINGAN       2
## 101          TANAH ABANG       2
## 102          KARYA NYATA       2
## 103        TENAM BUNGKUK       2
## 104          KOTA PADANG       2
## 105         GUNUNG AGUNG       2
## 106         TEBING ABANG       2
## 107         TANJUNG RAYA       2
## 108         MUARA TENANG       2
## 109         REKIMAI JAYA       2
## 110          CAHAYA ALAM       2
## 111              SEGAMIT       2
## 112         SIRING AGUNG       2
## 113        TANJUNG AGUNG       2
## 114          PAJAR BULAN       2
## 115              PELAKAT       2
## 116      MUARA GULA LAMA       2
## 117         ULAK BANDUNG       2
## 118         BARU RAMBANG       2
## 119              SUGIHAN       2
## 120          PAGAR AGUNG       2
## 121          SUGIH WARAS       2
## 122          MARGA MULYA       2
## 123        KENCANA MULIA       2
## 124     SUGIHWARAS BARAT       2
## 125            AIR KERUH       2
## 126       TANJUNG MIRING       2
## 127          SUKAMERINDU       2
## 128       MUARA LEMATANG       2
## 129             SUKADANA       2
## 130            SUKACINTA       2
## 131          PENANDINGAN       2
## 132           DANAU RATA       2
## 133             SUKAJADI       2
## 134           DANAU BARU       2
## 135             PETANANG       2
## 136        TALANG NANGKA       2
## 137         TANJUNG BARU       2
## 138           HIDUP BARU       2
## 139     EMBACANG KELEKAR       2
## 140              MENANTI       2
## 141      MENANTI SELATAN       2
## 142           SUBAN BARU       2
## 143      SIMPANG TANJUNG       2
## 144               BERUGO       2
## 145          DARMO KASIH       2
## 146                BABAT       2
## 147      LUBUK SEMANTUNG       2
## 148          LUBUK GETAM       2
## 149         TALANG BALAI       2
## 150       TALANG BELIUNG       2
## 151            SIALINGAN       2
## 152         TANJUNG TIGA       2
## 153                 IBUL       2
## 154           GAUNG ASAM       2
## 155         KARANG MULYA       2
## 156          PRABUMENANG       2
## 157                LECAH       2
## 158        LUBAI PERSADA       2
## 159         LUBAI MAKMUR       2
## 160       KAHURIPAN BARU       2
## 161      PANGKALAN BABAT       2
## 162          GUNUNG RAJA       2
## 163              BANUAYU       2
## 164              KURIPAN       2
## 165      KURIPAN SELATAN       2
## 166            BATU RAJA       2
## 167               DANGKU       2
## 168                 SIKU       2
## 169               LAMBUR       2
## 170           PAGAR JATI       2
## 171             SUKARAJA       2
## 172            MUARA MEO       2
## 173          SUGIH WARAS       2
## 174           PAGAR DEWA       3
## 175            PADURAKSA       3
## 176                MATAS       3
## 177           MUARA EMIL       3
## 178       TANJUNG LALANG       3
## 179       PULAU PANGGUNG       3
## 180         TANJUNG JATI       3
## 181            SAKA JAYA       3
## 182       MUARA EMBURUNG       3
## 183            AIR TALAS       3
## 184       TANJUNG TERANG       3
## 185             MILILIAN       3
## 186          TELUK LIMAU       3
## 187                PUTAK       3
## 188            SUKA JAYA       3
## 189 KARANG ENDAH SELATAN       3
## 190          PAGAR AGUNG       3
## 191              PERAPAU       3
## 192          SRI TANJUNG       3
## 193           BATU SURAU       3
## 194          PALAK TANAH       3
## 195           KOTA AGUNG       3
## 196         SWARNA DWIPA       3
## 197         TANJUNG TIGA       3
## 198          DATAR LEBAR       3
## 199            AREMANTAI       3
## 200          DANAU GERAK       3
## 201       PINANG BELARIK       3
## 202        TANJUNG RAMAN       3
## 203                 GUCI       3
## 204                  AUR       3
## 205          GUNUNG RAJA       3
## 206             AIR ASAM       3
## 207         TANJUNG RAYA       3
## 208        TANJUNG DALAM       3
## 209             SUKARAMI       3
## 210         NEGERI AGUNG       3
## 211        DANAU TAMPANG       3
## 212                KASAI       3
## 213         SUNGAI ROTAN       3
## 214        TANDING MARGA       3
## 215               MODONG       3
## 216           PAYA ANGUS       3
## 217          PETAR DALAM       3
## 218             SUKAMAJU       3
## 219           PETAR LUAR       3
## 220         SUNGAI DUREN       3
## 221                TAPUS       3
## 222           LUBUK ENAU       3
## 223         ALAI SELATAN       3
## 224               BETUNG       3
## 225            PELEMPANG       3
## 226           TELUK JAYA       3
## 227       TANJUNG MEDANG       3
## 228         GEDUNG BURUK       3
## 229          ARISAN MUSI       3
## 230        HARAPAN MULIA       3
## 231          MULIA ABADI       3
## 232    ARISAN MUSI TIMUR       3
## 233           PATRA TANI       3
## 234         TANJUNG BARU       3
## 235        KAYU ARA BATU       3
## 236              TANJUNG       3
## 237               BULANG       3
## 238          SUMBER ASRI       3
## 239           MEKAR JAYA       3
## 240           MUARA NIRU       3
## 241         TANJUNG BARU       3
## 242        PANDAN DULANG       3
## 243            INDRAMAYU       3
## 244             BEDEGUNG       3
## 245          LUBUK NIPIS       3
library(factoextra)

fviz_cluster(kmeans_result, 
             data = cluster_scaled,
             palette = "Set2",
             ggtheme = theme_minimal(),
             main = "Visualisasi Cluster K-Means (n=3)",
             geom = "point",
             ellipse.type = "convex",
             repel = TRUE)

library(ggplot2)
library(dplyr)
library(tidyr) 


data_clustered_scaled <- data.frame(cluster_scaled, 
                                    cluster = factor(kmeans_result$cluster))


cluster_means_heatmap <- data_clustered_scaled %>%
  group_by(cluster) %>%
  summarise(
    IKS = mean(IKS),
    IKE = mean(IKE),
    IKL = mean(IKL)
  ) %>%
  

  pivot_longer(cols = c(IKS, IKE, IKL), 
               names_to = "Variabel", 
               values_to = "Rata_Z_Score")

ggplot(cluster_means_heatmap, 
       aes(x = Variabel, y = cluster, fill = Rata_Z_Score)) +
  geom_tile(color = "white") +
  
  scale_fill_gradient2(low = "red", mid = "white", high = "blue", 
                       midpoint = 0, name = "Rata-rata Z-Score") +
  
 
  geom_text(aes(label = round(Rata_Z_Score, 2)), color = "black", size = 4) +
  
  labs(title = "Heatmap Karakteristik Rata-rata Cluster",
       x = "Variabel IDM",
       y = "Cluster") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0)) 

Hasil visualisasi K-Means dan heatmap menunjukkan bahwa analisis berhasil mempartisi 245 kecamatan menjadi tiga profil yang jelas dan bermakna. Plot PCA (Visualisasi Cluster K-Means (n=3)), yang menjelaskan 82.4% varians data, secara visual mengkonfirmasi pemisahan yang baik antar cluster. Heatmap Karakteristik Rata-rata Cluster kemudian mendefinisikan profil-profil ini: Cluster 1 (Hijau) adalah “Unggul Seimbang” (IKS/IKE tinggi IKL sedang); Cluster 2 (Oranye) adalah “Rata-rata, Lingkungan Rentan” (IKS/IKE sedang, IKL sangat rendah); dan Cluster 3 (Ungu) adalah “Lingkungan Kuat, Sos-ek Tertinggal” (IKS/IKE rendah, IKL tinggi).