PENDAHULUAN

Latar Belakang

Analisis clustering merupakan teknik statistika eksploratif untuk mengelompokkan objek-objek observasi ke dalam cluster-cluster berdasarkan kemiripan karakteristiknya. Dalam konteks masyarakat, pendekatan ini memungkinkan identifikasi pola spasial dan segmentasi wilayah-wilayah berdasarkan profil indikator yang serupa. Algoritma clustering hierarki khususnya, menawarkan keunggulan dalam menampilkan hubungan hierarki antar cluster melalui dendrogram yang visual, memudahkan interpretasi struktur pengelompokan data. Penerapan metode ini sangat relevan untuk kondisi Indonesia yang terdiri dari beragam provinsi dengan karakteristik geografis, demografis, dan capaian pembangunan kesehatan yang heterogen.

Stunting dan gizi buruk merupakan masalah kesehatan masyarakat yang serius di Indonesia. Berdasarkan data dari Kementerian Kesehatan, prevalensi stunting di Indonesia masih berada pada angka yang mengkhawatirkan. Sanitasi layak, akses air bersih, dan cakupan imunisasi merupakan faktor determinan yang diduga memiliki pengaruh signifikan terhadap kejadian stunting dan gizi buruk.

Penelitian ini bertujuan untuk memetakan wilayah-wilayah di Indonesia berdasarkan karakteristik indikator kesehatan tersebut menggunakan algoritma clustering hierarki. Dengan pemetaan ini, diharapkan dapat diidentifikasi pola-pola spasial yang dapat menjadi dasar dalam penyusunan kebijakan kesehatan yang tepat sasaran.

Tujuan Penelitian

  1. Mengelompokkan wilayah berdasarkan indikator stunting, gizi buruk, sanitasi layak, akses air bersih, dan imunisasi
  2. Mengidentifikasi karakteristik setiap cluster yang terbentuk berdasarkan indikator stunting, gizi buruk, sanitasi layak, akses air bersih, dan imunisasi

TINJAUAN PUSTAKA

Analisis Cluster

Analisis Cluster adalah salah satu teknik multivariat yang bertujuan mengklasifikasi suatu objek-objek ke dalam suatu kelompok-kelompok yang berbeda antara lain antara kelompok satu dengan lainnya. Objek-objek yang telah memiliki kedekatan jarak relatif sama dengan objek lainnya (Narimawati, 2008). Prosedur pembentukan cluster terbagi menjadi 2, yaitu hierarki dan nonhierarki. Pembentukan cluster hierarki mempunyai sifat sebagai pengembangan suatu hierarki atau struktur mirip pohon bercabang. Metode cluster hierarki merupakan metode pengelompokan yang mana jumlah kelompok yang akan dibuat belum diketahui. Teknik ini diproses dengan baik melalui penggabungan berurutan (agglomerative) atau pembagian berurutan (divissive).

Pemeriksaan Asumsi

Asumsi Kecukupan Data

Penggunaan uji Kaiser-Mayer-Olkin (KMO) dapat memberikan evaluasi apakah sampel representatif atau tidak. Hal ini penting karena menggunakan sampel yang mewakili populasi dapat memberikan hasil terbaik. Uji KMO merupakan indeks yang digunakan untuk mengukur ketepatan sampel yang sudah mencukupi secara keseluruhan tiap indikator. Asumsi bahwa sampel mewakili populasi terpenuhi atau sampel representatif jika koefisien KMO antara 0,5 dan 1. Persamaan uji KMO adalah sebagai berikut (Muhtadan:2020).

\[ \begin{align*} KMO= \frac{\sum^p_{i=1} \sum^p_{j=i}r^2_{ij}}{\sum^p_{i=1} \sum^p_{j=i}r^2_{ij} + \sum^p_{i=1} \sum^p_{j=i}a^2_{ij}} \end{align*} \] p : banyaknya variabel

r : koefisien korelasi antara variabel i dan j

Asumsi Kebebasan Variabel

Pengujian asumsi ini bertujuan untuk mengetahui apakah terdapat hubungan antar variabel dalam kasus multivariat. Jika variabel independent(bersifat saling bebas), maka matriks korelasi antar variabel sama dengan matriks identitas. Salah satu cara pengujian asumsi kebebasan variabel adalah mengunakan korelasi, dimana nilai korelasi rendah menunjukkan bahwa keterikatan antarvariabel rendah, begitupun sebaliknya nilai korelasi tinggi menunjukkan bahwa keterikatan antarvariabel yang tinggi.

Perhitungan Jarak

Perhitungan jarak (distance measure) merupakan komponen fundamental dalam analisis cluster yang berfungsi untuk mengkuantifikasi tingkat kemiripan atau perbedaan antara objek-objek observasi. Dalam konteks penelitian ini, setiap provinsi direpresentasikan sebagai titik dalam ruang multidimensi berdasarkan nilai variabel stunting, gizi buruk, sanitasi layak, akses air bersih, dan cakupan imunisasi.

Jarak Euclidian

Euclidean distance adalah metode pengukuran jarak yang mengacu pada jarak antara dua titik di suatu dimensi (A. Zhu, dkk:2021). Jarak Euclidean distance dapat ditentukan dengan menggunakan persamaan dibawah ini:

\[ \begin{align*} d(x,y) = \sqrt {\sum^k_{i=1}(x_i-y_j)^2} \end{align*} \] d : jarak antara dua amatan

x : variabel pada amatan ke i

y : variabel pada amatan ke j

Metode Clustering Hierarki

Kriteria linkage merupakan aturan untuk menghitung jarak antara dua cluster yang telah terbentuk dalam analisis clustering hierarki. Kriteria ini menentukan bagaimana pengukuran kemiripan atau ketidaksamaan antara cluster yang berisi multiple observasi dilakukan, dan menjadi dasar pengambilan keputusan dalam penggabungan cluster pada setiap iterasi algoritma agglomerative hierarchical clustering.

Single Linkage

\[ \begin{align*} d(K_1,K_2)=min_{x\in K_1, y \in K_2} [d(x,y)] \end{align*} \] Single Linkage atau disebut juga metode nearest neighbor adalah pendekatan yang mengukur jarak antar cluster berdasarkan jarak terdekat antara dua objek, masing-masing berasal dari cluster yang berbeda. Metode ini cenderung menghasilkan cluster yang memanjang dan rentan terhadap efek rantai (chain effect), di mana objek-objek yang sebenarnya tidak terlalu mirip dapat tergabung hanya karena ada satu titik yang berdekatan. Kelemahan utamanya adalah sensitivitas terhadap pencilan, karena satu titik ekstrem dapat menghubungkan dua cluster yang sebenarnya berbeda.

Complete Linkage

\[ \begin{align*} d(K_1,K_2)=max_{x\in K_1, y \in K_2} [d(x,y)] \end{align*} \] Complete Linkage, dikenal pula sebagai farthest neighbor, mengambil pendekatan kebalikan dari single linkage. Metode ini menggunakan jarak terjauh antara dua objek dari masing-masing cluster sebagai ukuran jarak antar cluster. Hasilnya cenderung membentuk cluster yang lebih kompak dan seragam ukurannya, karena penggabungan hanya terjadi jika semua anggota dalam cluster relatif dekat dengan anggota cluster lain. Metode ini lebih robust terhadap pencilan dibandingkan single linkage, namun terkadang dapat memecah kelompok yang seharusnya menyatu.

Average Linkage

\[ \begin{align*} d(K_1,K_2)= \frac {1}{n_{k_1}n_{k_2}} \sum_{x \in K_1}\sum_{y \in K_2} [d(x,y)] \end{align*} \] Average Linkage merupakan metode yang menyeimbangkan dua pendekatan sebelumnya dengan menggunakan rata-rata jarak antara semua pasangan objek dari dua cluster yang dibandingkan. Metode ini sering disebut UPGMA (Unweighted Pair Group Method with Arithmetic Mean). Karena mempertimbangkan seluruh informasi jarak antar objek, metode ini cenderung lebih stabil dan kurang dipengaruhi oleh bentuk cluster yang ekstrem. Dalam banyak aplikasi praktis, average linkage menjadi pilihan default karena memberikan hasil yang seimbang dan secara konsisten merefleksikan struktur data.

Centroid Linkage

\[ \begin{align*} d(K_1,K_2)=d(\bar {x},\bar {y}) \end{align*} \] Centroid Linkage mengukur jarak antar cluster berdasarkan jarak antara titik pusat (centroid) masing-masing cluster. Meskipun intuitif secara geometris, metode ini memiliki kelemahan signifikan yaitu dapat menghasilkan pembalikan dalam dendrogram (inversion), di mana penggabungan cluster justru menurunkan jarak rata-rata dalam struktur hierarki. Fenomena ini menyulitkan interpretasi dendrogram dan membuat metode ini kurang populer dalam aplikasi praktis.

Ward Method

\[ \begin{align*} d(K_1,K_2)= \sqrt \frac {2n_{K_1}n_{K_2}}{n_{K_1}+n_{K_2}}||\bar {x}-\bar {y}|| \end{align*} \] Ward’s Method adalah pendekatan yang berbeda secara konseptual, karena tidak hanya mengukur jarak, tetapi meminimalkan variansi dalam cluster. Metode ini menggabungkan dua cluster yang menyebabkan peningkatan jumlah variansi intra-cluster paling kecil. Hasilnya cenderung menghasilkan cluster yang homogen dan berbentuk bola (spherical), dengan ukuran yang relatif seragam. Metode ini sangat efektif untuk data yang terdistribusi normal, namun sensitif terhadap pencilan dan dapat menghasilkan cluster yang terlalu seragam ketika data sebenarnya memiliki struktur yang lebih kompleks.

Validitas Cluster

Indeks Connectivity

Indeks Connectivity mengukur sejauh mana setiap objek terhubung dengan tetangga terdekatnya dalam cluster yang sama. Nilai connectivity yang rendah menunjukkan bahwa objek-objek dalam satu cluster memiliki kemiripan yang tinggi dengan tetangga dekatnya.

\[ \begin{align*} C=\frac {S-S_{min}}{S_{max}-S_{min}} \end{align*} \] S : jumlah jarak pada semua pasangan objek amatan dari kelompok yang sama, dengan jumlah pasangan tersebut

S min : Jumlah dari jarak terkecil jika semua pasangan contoh berada pada kelompok yang berbeda

S max : jumlah dari jarak terbesar dari semua pasangan

Indeks Dunn

Indeks Dunn merupakan rasio antara jarak terkecil antar cluster (pemisahan cluster) dan diameter terbesar dalam cluster (kekompakan cluster). Nilai Dunn yang tinggi mengindikasikan cluster yang kompak dan terpisah dengan baik.

\[ \begin{align*} D=min_{1 \leq i \leq n}[min_{1 \leq j \leq n, i\neq j} [\frac{d(c_i,c_j)}{max_{1 \leq k \leq n}(d'(c_k))}]] \end{align*} \]

d(Ci,cj) : jarak antara kelompok c ke i dan kelompok c ke j

d’(Ck) : jarak dalam kelompok c ke k

Indeks Silhouette

Indeks Silhouette menggambarkan seberapa mirip suatu objek dengan objek lain dalam clusternya sendiri dibandingkan dengan objek di cluster terdekat lainnya. Nilainya berkisar dari -1 hingga 1, di mana nilai mendekati 1 menunjukkan struktur cluster yang baik.

\[ \begin{align*} S=\frac {1}{c} \sum^c_{i=1}S(i) \end{align*} \]

S(i) : Silhouette kelompok ke-i

c : jumlah kelompok

Dendogram

Dendrogram adalah representasi visual berbentuk diagram pohon yang menampilkan struktur hierarkis hasil analisis clustering. Dendrogram berfungsi untuk memvisualisasikan proses pengelompokan amatan berdasarkan kemiripan karakteristik indikator. Setiap daun pada dasar dendrogram merepresentasikan satu amatan, sedangkan setiap titik percabangan menunjukkan penggabungan dua cluster. Tinggi vertikal dari titik percabangan tersebut mencerminkan tingkat ketidaksamaan (dissimilarity) antar cluster yang digabungkan - semakin tinggi titik penggabungan, semakin berbeda karakteristik kesehatan antara cluster-cluster yang bersatu.

HASIL DAN PEMBAHASAN

Data Amatan

Sumber: Data BPS 2018

library(readxl)

data <- read_excel("C:/Users/WINDOWS/Downloads/Stunting.xlsx",sheet=1)

Statistika Deskriptif

statistika_deskriptif <- summary(data)
statistika_deskriptif
##    Provinsi         Penanganan_Stunting   Gizi_Buruk       Air_Bersih   
##  Length:34          Min.   :41.70       Min.   : 1.400   Min.   :  520  
##  Class :character   1st Qu.:60.27       1st Qu.: 3.100   1st Qu.: 1708  
##  Mode  :character   Median :64.00       Median : 4.250   Median : 3776  
##                     Mean   :63.21       Mean   : 4.391   Mean   : 6908  
##                     3rd Qu.:66.22       3rd Qu.: 5.575   3rd Qu.: 8691  
##                     Max.   :79.94       Max.   :10.300   Max.   :30790  
##  Sanitasi_Layak  Imunisasi_Bayi  
##  Min.   :33.75   Min.   :  4.55  
##  1st Qu.:63.41   1st Qu.: 55.91  
##  Median :68.94   Median : 78.05  
##  Mean   :68.35   Mean   : 70.79  
##  3rd Qu.:74.46   3rd Qu.: 97.10  
##  Max.   :91.14   Max.   :100.00

Berdasarkan hasil statistik deskriptif dari 34 provinsi, teridentifikasi tingkat keberhasilan penanganan stunting menunjukkan rata-rata capaian sebesar 63.21%, yang mengindikasikan bahwa upaya penanganan stunting telah menunjukkan progress yang berkembang baik, meskipun masih terdapat variasi capaian antar provinsi dari yang terendah 41.70% hingga tertinggi 79.94%.

Dalam hal gizi buruk, capaian rata-rata sebesar 4.39% mengindikasikan bahwa upaya penanggulangan gizi buruk masih menjadi perhatian, terutama mengingat adanya provinsi dengan capaian yang masih sangat tinggi di angka 10.30%. Kondisi akses air bersih menunjukkan disparitas yang cukup besar antar provinsi, dimana beberapa provinsi telah berhasil menyediakan akses hingga 30.790 unit, sementara provinsi lain masih berkutat pada level 520 unit.

Untuk indikator sanitasi layak, capaian rata-rata sebesar 68.35% menunjukkan kemajuan yang cukup merata di sebagian besar provinsi, meskipun masih terdapat beberapa wilayah yang perlu ditingkatkan di bawah level 34%. Pada aspek cakupan imunisasi bayi, terdapat kisaran capaian yang sangat lebar dari yang terendah 4.55% hingga tertinggi 100%, dengan rata-rata 70.79%. Kondisi ini mengindikasikan bahwa sebagian provinsi telah berhasil mencapai cakupan universal, sementara provinsi lain masih sangat tertinggal.

Pemeriksaan Asumsi

Asumsi Kecukupan Data

library(psych)
kmo <- KMO(data[,2:6])
kmo
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = data[, 2:6])
## Overall MSA =  0.77
## MSA for each item = 
## Penanganan_Stunting          Gizi_Buruk          Air_Bersih      Sanitasi_Layak 
##                0.80                0.74                0.86                0.72 
##      Imunisasi_Bayi 
##                0.74

Berdasarkan hasil uji Kaiser-Meyer-Olkin (KMO), nilai Overall MSA sebesar 0.77 menunjukkan bahwa kecukupan data untuk analisis faktor berada dalam kategori layak/baik. Nilai ini mengindikasikan bahwa korelasi antar variabel dalam data sudah memadai untuk dilanjutkan ke analisis cluster.

Untuk masing-masing variabel, semua nilai MSA berada di atas 0.70, dengan Akses Air Bersih sebagai variabel dengan kecukupan tertinggi (0.86), diikuti oleh Penanganan Stunting (0.80). Variabel Gizi Buruk (0.74), Imunisasi Bayi (0.74), dan Sanitasi Layak (0.72) juga menunjukkan kecukupan yang memadai. Hasil ini mengonfirmasi bahwa seluruh variabel yang digunakan layak untuk dimasukkan dalam analisis lebih lanjut, dalam hal ini analisis clustering hierarki.

Asumsi Kebebasan Variabel

korelasi <- cor(data[,2:6], method = 'pearson')
korelasi
##                     Penanganan_Stunting Gizi_Buruk Air_Bersih Sanitasi_Layak
## Penanganan_Stunting           1.0000000 -0.4244714  0.3898941      0.5336680
## Gizi_Buruk                   -0.4244714  1.0000000 -0.3363459     -0.2542163
## Air_Bersih                    0.3898941 -0.3363459  1.0000000      0.2477523
## Sanitasi_Layak                0.5336680 -0.2542163  0.2477523      1.0000000
## Imunisasi_Bayi                0.5546279 -0.5677028  0.4197463      0.5277586
##                     Imunisasi_Bayi
## Penanganan_Stunting      0.5546279
## Gizi_Buruk              -0.5677028
## Air_Bersih               0.4197463
## Sanitasi_Layak           0.5277586
## Imunisasi_Bayi           1.0000000
library(corrplot)
cor_matrix <- cor(data[,2:6])
corrplot(cor_matrix)

Berdasarkan matriks korelasi antar variabel, dapat diasumsikan bahwa terdapat tingkat kebebasan variabel yang memadai untuk dilakukan analisis clustering. Meskipun terdeteksi beberapa korelasi yang sedang kekuatannya, tidak terdapat korelasi yang sangat kuat (≥0.8) yang mengindikasikan masalah multikolinearitas berat.

Penanganan Stunting menunjukkan korelasi positif sedang dengan Sanitasi Layak (0.53) dan Imunisasi Bayi (0.55), serta korelasi negatif sedang dengan Gizi Buruk (-0.42). Hal ini mengindikasikan bahwa keberhasilan penanganan stunting berhubungan dengan peningkatan sanitasi dan cakupan imunisasi. Gizi Buruk sendiri menunjukkan korelasi negatif yang cukup kuat dengan Imunisasi Bayi (-0.57), menegaskan pentingnya cakupan imunisasi dalam pencegahan gizi buruk.

Korelasi antar variabel independen lainnya berada pada tingkat rendah hingga sedang, dengan nilai tertinggi 0.53 antara Sanitasi Layak dan Imunisasi Bayi. Pola korelasi ini menunjukkan bahwa meskipun terdapat hubungan antar variabel, masing-masing variabel masih membawa informasi yang cukup unik untuk berkontribusi dalam pembentukan cluster. Dengan demikian, asumsi kebebasan variabel untuk analisis clustering hierarki dapat terpenuhi.

Analisis Cluster

Transformasi data kedalam bentuk normal baku untuk menyamakan satuan dari seluruh variabel

datastand <- scale(data[,2:6])
rownames(datastand) <- 1:nrow(datastand)
head(datastand)
##   Penanganan_Stunting   Gizi_Buruk Air_Bersih Sanitasi_Layak Imunisasi_Bayi
## 1          -0.1825233  0.975450657 -0.3939607    -0.09736966     -1.8593586
## 2          -0.6738272  0.719939699  0.8242295     0.48284897     -0.3545449
## 3           0.1102301 -0.251001941 -0.1269688    -0.88850664     -0.8155290
## 4          -0.4593347  0.004509017 -0.5797820     0.24179942     -1.0139889
## 5          -0.3158565  0.260019975 -0.3159460    -0.33687402      1.0169177
## 6          -0.4332477 -0.251001941  0.4315052     0.01929214      0.6074635

Perhitungan Jarak Euclidian

Perhitungan jarak antar amatan pada analisis kali ini menggunakan perhitungan jarak euclidian

jarak <- dist(datastand, method = "euclidean")
jarak
##            1         2         3         4         5         6         7
## 2  2.0956552                                                            
## 3  1.8375672 2.1343323                                                  
## 4  1.3724312 1.7384096 1.3826452                                        
## 5  2.9775885 2.0475656 2.0348379 2.1482379                              
## 6  2.8891632 1.5149864 1.8591040 1.9409497 1.0621273                    
## 7  3.4552387 3.3475799 1.8330926 2.6907793 2.1332611 2.3171885          
## 8  3.6205623 3.1874587 2.0297849 2.7229432 1.5442396 1.8979111 1.1044576
## 9  2.9378080 2.1102771 2.7346410 1.8967113 1.8065283 1.8108939 3.3928259
## 10 3.6914304 2.5560952 2.9205309 2.5014330 1.9965140 1.6553807 3.2737908
## 11 4.8883467 3.4921234 4.0312703 4.0511674 3.6844464 2.9413063 4.6507568
## 12 4.1054534 2.7004804 2.8059583 3.4101800 2.6195451 1.8711892 3.1437208
## 13 4.8454219 3.3257655 3.9534516 4.3969202 3.7208765 3.0287749 4.6246212
## 14 4.9207609 4.4369364 4.0836448 4.0753438 3.8053442 3.6635619 4.5435905
## 15 4.7854855 3.3150062 3.8381818 4.3901351 3.6938004 3.0167723 4.4731286
## 16 3.1030846 1.9729509 1.8927378 2.1000037 1.4625681 0.7689255 2.3953178
## 17 4.3990136 3.3064892 3.5640467 3.3698793 3.0503490 2.5448784 4.0765246
## 18 3.4683131 2.8901974 2.6298660 2.7722795 1.9072136 2.1352698 3.1693884
## 19 1.4371464 3.1407635 2.2113786 2.5264631 3.6672203 3.7274296 3.5919517
## 20 1.5540909 2.1353854 1.3594609 1.5627316 2.4661819 2.4041030 2.3455741
## 21 2.4085352 2.2997516 1.3706624 1.8195127 1.4196344 1.7681162 1.4107442
## 22 2.3685212 1.9503828 1.0029036 1.6908247 1.5120703 1.2845295 2.0453240
## 23 3.1430627 2.0194364 2.3048072 2.0962122 1.6031033 1.1516478 2.9361444
## 24 2.8315309 2.6953277 1.7504208 1.6289774 2.2978396 1.9447849 2.3203550
## 25 1.6627467 1.5399600 1.9495129 1.3926187 1.8728230 1.9636892 3.2604502
## 26 2.9436874 2.0744397 1.6650196 2.0203441 0.7819369 0.8181312 1.9045711
## 27 2.6393563 1.5394601 2.1883548 1.9118480 1.6990046 1.3475902 3.2394260
## 28 1.8864727 1.6634112 1.8938266 1.4267730 1.3805835 1.7774900 2.8322110
## 29 2.2641361 2.6291611 2.5229029 2.5551294 2.3822340 2.8950189 3.5799555
## 30 0.9932675 2.3255414 1.3547524 1.3136035 2.5089420 2.6151181 2.8800354
## 31 2.9230257 3.0236702 3.9479424 3.3314206 3.5481700 3.9024587 4.7578543
## 32 1.3492812 2.1134993 2.3234763 1.5400732 2.8318282 2.8508450 3.3927104
## 33 2.5780469 1.9575750 2.1127652 1.3741454 1.4443456 1.4722493 2.5224898
## 34 4.0297200 4.6596641 3.9584467 4.0945731 4.8196934 4.8114215 3.8798823
##            8         9        10        11        12        13        14
## 2                                                                       
## 3                                                                       
## 4                                                                       
## 5                                                                       
## 6                                                                       
## 7                                                                       
## 8                                                                       
## 9  2.8347792                                                            
## 10 2.5609897 1.2467994                                                  
## 11 3.9768474 3.3718846 2.4262260                                        
## 12 2.7073784 3.3795441 2.6768921 2.1718193                              
## 13 4.0955156 4.1582081 3.5240107 2.0140975 1.5644874                    
## 14 3.6785795 3.2884296 2.6149537 2.7104731 3.7003181 4.0407491          
## 15 4.0113380 4.2919838 3.6963666 2.3563988 1.4668787 0.4284428 4.2752668
## 16 1.8118452 1.9047012 1.3813917 2.4276597 1.6112979 2.7800250 2.9842346
## 17 3.3021808 2.4016393 1.3861091 1.4080488 2.6222081 3.0470302 1.7661779
## 18 2.2529347 2.0931417 1.9385512 2.9929311 2.7782690 3.4149773 2.1837932
## 19 3.9665553 4.1381777 4.7762250 5.8031359 4.6528759 5.4153055 5.6997471
## 20 2.8500937 3.1266156 3.6400450 4.9797569 3.6592059 4.7584207 5.2700179
## 21 1.6808298 2.6373097 2.9832931 4.5904205 3.1903274 4.4629553 4.6575375
## 22 1.6880960 2.2577875 2.2240339 3.2283663 2.1315033 3.2205045 3.3095323
## 23 2.2478789 1.3162745 0.8104451 2.3204640 2.1731269 3.0364811 2.6224338
## 24 2.1020180 2.0965789 1.8638996 3.3045362 2.9221929 4.0978525 3.0069493
## 25 2.9122810 1.6382159 2.4524313 3.8493588 3.3468863 3.9944363 3.7660710
## 26 1.2384248 1.9101820 1.7463287 3.1693889 2.0864169 3.2956994 3.3059669
## 27 2.6424279 1.4005482 1.5343858 2.6058036 2.3724863 2.9659794 2.9509840
## 28 2.5274822 1.5928382 2.4549974 4.1630223 3.4113850 4.2580380 4.0631370
## 29 3.2201690 2.8258456 3.5652185 4.8055428 4.0147720 4.5579020 4.3596625
## 30 2.9167332 2.6919649 3.3330000 4.6323565 3.8056737 4.6553482 4.2744927
## 31 4.7939164 3.6483199 4.7233362 6.3164753 5.4549880 6.0613167 6.5782041
## 32 3.6656812 2.8104912 3.7029224 5.3018256 4.4199482 5.3260016 5.5136111
## 33 2.2845101 1.1632685 1.7494146 3.8662246 3.2850567 4.3921572 3.9415599
## 34 4.8359403 5.5256118 5.9859554 7.4181606 5.9057379 7.1442785 7.8199570
##           15        16        17        18        19        20        21
## 2                                                                       
## 3                                                                       
## 4                                                                       
## 5                                                                       
## 6                                                                       
## 7                                                                       
## 8                                                                       
## 9                                                                       
## 10                                                                      
## 11                                                                      
## 12                                                                      
## 13                                                                      
## 14                                                                      
## 15                                                                      
## 16 2.8129973                                                            
## 17 3.3175908 1.9540143                                                  
## 18 3.5143181 1.7418162 2.1791863                                        
## 19 5.2610362 3.9168734 5.4081428 4.1507115                              
## 20 4.6136820 2.8026240 4.5474098 3.6436433 1.8696586                    
## 21 4.3378327 2.1797773 4.0089827 2.8819487 2.7676334 1.3437717          
## 22 3.1621975 1.0965225 2.7553870 1.7404239 2.9373864 2.1446240 1.6726468
## 23 3.1611149 0.7699623 1.5433721 1.4801424 4.1389257 3.1331475 2.5459261
## 24 4.1352676 1.5774869 2.4349578 2.3641020 3.6747819 2.6838871 2.3332664
## 25 4.0265122 2.1278156 3.2134677 2.0753111 2.7216349 2.2838362 2.2012535
## 26 3.2706373 0.8233030 2.5712895 1.6118705 3.6130258 2.4849791 1.5680443
## 27 3.0741329 1.2259576 2.0647194 1.4938409 3.6573426 2.9126788 2.5483637
## 28 4.2551313 2.1215939 3.4604638 2.1954754 2.8030999 2.0209961 1.6540608
## 29 4.5217346 3.0577910 4.2256553 2.4037131 2.5892221 2.7925792 2.5657129
## 30 4.5967367 2.6901179 4.0053323 2.7588647 1.5742812 1.6787372 2.0111680
## 31 6.0118138 4.5046299 5.8151254 4.6932521 3.4948602 3.0798414 3.3600213
## 32 5.2655856 3.3136533 4.7343749 3.9312961 2.2820748 1.3818095 2.1575126
## 33 4.4259293 1.8101883 3.0219411 2.5568026 3.6394444 2.2597777 1.7275979
## 34 6.9340291 5.2781760 7.0145680 6.3145061 3.8156033 2.8538480 3.5142001
##           22        23        24        25        26        27        28
## 2                                                                       
## 3                                                                       
## 4                                                                       
## 5                                                                       
## 6                                                                       
## 7                                                                       
## 8                                                                       
## 9                                                                       
## 10                                                                      
## 11                                                                      
## 12                                                                      
## 13                                                                      
## 14                                                                      
## 15                                                                      
## 16                                                                      
## 17                                                                      
## 18                                                                      
## 19                                                                      
## 20                                                                      
## 21                                                                      
## 22                                                                      
## 23 1.5067344                                                            
## 24 1.6081027 1.6567119                                                  
## 25 1.6939931 1.9009711 2.3827584                                        
## 26 0.9342707 1.2039241 1.7618691 1.9375507                              
## 27 1.4348164 0.8493834 2.0674944 1.2763586 1.4597285                    
## 28 1.7221628 1.9929293 2.4086208 0.7663727 1.6918262 1.5995863          
## 29 2.3329846 2.9689214 3.4213787 1.4745063 2.5883350 2.3675416 1.5288828
## 30 1.7870621 2.7501840 2.3606891 1.4122500 2.3997833 2.3339313 1.5669266
## 31 4.1427929 4.3999355 4.7978255 2.9308725 4.1030089 3.8981847 2.6313838
## 32 2.8484667 3.3404301 3.1007846 2.0754769 3.0523625 2.9989955 1.8670080
## 33 1.9736755 1.6757684 1.7641760 1.8016697 1.6016943 1.8641444 1.4134536
## 34 4.8108804 5.6806885 4.9131976 5.0375878 4.9446693 5.6427743 4.6276611
##           29        30        31        32        33
## 2                                                   
## 3                                                   
## 4                                                   
## 5                                                   
## 6                                                   
## 7                                                   
## 8                                                   
## 9                                                   
## 10                                                  
## 11                                                  
## 12                                                  
## 13                                                  
## 14                                                  
## 15                                                  
## 16                                                  
## 17                                                  
## 18                                                  
## 19                                                  
## 20                                                  
## 21                                                  
## 22                                                  
## 23                                                  
## 24                                                  
## 25                                                  
## 26                                                  
## 27                                                  
## 28                                                  
## 29                                                  
## 30 1.7644257                                        
## 31 2.9698547 3.3286083                              
## 32 2.7854170 1.9003192 2.1589227                    
## 33 2.9046858 2.3641289 3.3822691 2.1611262          
## 34 5.3862625 4.3172512 4.5139110 3.3138382 4.4324154

Penentuan Metode Terbaik

Penentuan metode terbaik yang akan digunakan pada analisis cluster menggunakan perhitungan korelasi cophenetic, dimana nilai korelasi cophenetic tertinggi akan ditetapkan sebagai metode terbaik untuk analisis cluster

calculate_cophenetic_cor <- function(data) {
  
  data_subset <- data
  
  d <- dist(data_subset)
  
  methods <- c("single", "average", "complete", "centroid", "ward.D")
  method_names <- c("Single", "Average", "Complete", "Centroid", "Ward")
  
  results <- data.frame(
    Method = character(),
    Cophenetic_Correlation = numeric(),
    stringsAsFactors = FALSE
  )
  
  for (i in seq_along(methods)) {
    
    hc <- hclust(d, method = methods[i])
    
    cophenetic_matrix <- cophenetic(hc)
    
    cor_value <- cor(d, cophenetic_matrix)
    
    results <- rbind(results, data.frame(
      Method = method_names[i],
      Cophenetic_Correlation = round(cor_value, 4)
    ))
  }
  
  return(results)
}

calculate_cophenetic_cor(datastand)
##     Method Cophenetic_Correlation
## 1   Single                 0.6691
## 2  Average                 0.7894
## 3 Complete                 0.5121
## 4 Centroid                 0.7199
## 5     Ward                 0.4343

Dapat dilihat dari hasil diatas bahwa Average Linkage menjadi metode dengan nilai korelasi cophenetic tertinggi sehingga Average Linkage merupakan metode terbaik yang didapatkan

Penentuan Jumlah Cluster Optimal

Berdasarkan penentuan sebelumnya, metode average linkage merupakan metode terbaik yang selanjutnya digunakan untuk menentukan banyaknya cluster ooptimal yang dapat digunakan.

library(clValid)
inval <- clValid(datastand, 2:5, clMethods = "hierarchical", validation = "internal", metric = "euclidean", method = "average")
summary(inval)
## 
## Clustering Methods:
##  hierarchical 
## 
## Cluster sizes:
##  2 3 4 5 
## 
## Validation Measures:
##                                  2       3       4       5
##                                                           
## hierarchical Connectivity   2.9290  5.9690 14.4861 17.9746
##              Dunn           0.4338  0.3720  0.2902  0.3242
##              Silhouette     0.4193  0.2947  0.2593  0.1915
## 
## Optimal Scores:
## 
##              Score  Method       Clusters
## Connectivity 2.9290 hierarchical 2       
## Dunn         0.4338 hierarchical 2       
## Silhouette   0.4193 hierarchical 2
optimalScores(inval)
##                  Score       Method Clusters
## Connectivity 2.9289683 hierarchical        2
## Dunn         0.4338339 hierarchical        2
## Silhouette   0.4192795 hierarchical        2
par(mfrow = c(3, 1))
plot(inval)

Berdasarkan hasil validasi cluster menggunakan clValid, dapat disimpulkan bahwa pembentukan 2 cluster merupakan pilihan optimal untuk algoritma hierarchical clustering. Nilai Connectivity sebesar 2.9290 mengindikasikan tingkat konektivitas yang baik antar observasi dalam cluster yang sama. Nilai Dunn Index sebesar 0.4338 menunjukkan adanya pemisahan yang cukup jelas antar cluster, dimana nilai yang lebih mendekati 1 menandakan pemisahan cluster yang lebih baik.

Yang paling signifikan adalah nilai Silhouette Width sebesar 0.4193 yang termasuk dalam kategori struktur cluster yang cukup kuat. Berdasarkan interpretasi Silhouette Width, nilai antara 0.41-0.50 menunjukkan bahwa struktur cluster yang terbentuk memiliki kualitas yang moderat hingga baik, dimana observasi within cluster memiliki kemiripan yang cukup tinggi dan sekaligus perbedaan yang jelas dengan observasi di cluster lain. Hasil ini mengkonfirmasi bahwa pembagian 2 cluster pada data kesehatan tersebut secara statistik valid untuk analisis lebih lanjut.

Pembagian Anggota Cluster

hirave <- hclust(dist(scale(data[,2:6])), method = "average")

anggota.clust <- data.frame(id = data$Provinsi, cutree(hirave, k = 2))
anggota.clust
##                      id cutree.hirave..k...2.
## 1                  ACEH                     1
## 2        SUMATERA UTARA                     1
## 3        SUMATERA BARAT                     1
## 4                  RIAU                     1
## 5                 JAMBI                     1
## 6      SUMATERA SELATAN                     1
## 7              BENGKULU                     1
## 8               LAMPUNG                     1
## 9  KEP. BANGKA BELITUNG                     1
## 10            KEP. RIAU                     1
## 11          DKI JAKARTA                     1
## 12           JAWA BARAT                     1
## 13          JAWA TENGAH                     1
## 14        DI YOGYAKARTA                     1
## 15           JAWA TIMUR                     1
## 16               BANTEN                     1
## 17                 BALI                     1
## 18  NUSA TENGGARA BARAT                     1
## 19  NUSA TENGGARA TIMUR                     1
## 20     KALIMANTAN BARAT                     1
## 21    KALIMANTAN TENGAH                     1
## 22   KALIMANTAN SELATAN                     1
## 23     KALIMANTAN TIMUR                     1
## 24     KALIMANTAN UTARA                     1
## 25       SULAWESI UTARA                     1
## 26      SULAWESI TENGAH                     1
## 27     SULAWESI SELATAN                     1
## 28    SULAWESI TENGGARA                     1
## 29            GORONTALO                     1
## 30       SULAWESI BARAT                     1
## 31               MALUKU                     1
## 32         MALUKU UTARA                     1
## 33          PAPUA BARAT                     1
## 34                PAPUA                     2
library(cluster)
library(factoextra)
library(ggplot2)
clus_hier <- eclust(datastand, FUNcluster = "hclust", k = 2, hc_method = "average", graph = TRUE)
fviz_dend(clus_hier, rect = TRUE, cex = 0.5)

Berdasarkan hasil clustering hierarki dengan jarak Euclidean dan metode average linkage, teridentifikasi 2 cluster optimal yang menunjukkan pola pembagian wilayah yang sangat jelas. Hasil yang diperoleh mengungkapkan konfigurasi yang cukup mencolok yaitu Cluster 1 mencakup seluruh provinsi di Indonesia, sementara Cluster 2 hanya berisi Provinsi Papua.

Pembagian ini mengindikasikan bahwa Provinsi Papua memiliki karakteristik yang sangat berbeda dalam hal indikator kesehatan yang dianalisis (penanganan stunting, gizi buruk, akses air bersih, sanitasi layak, dan cakupan imunisasi) dibandingkan dengan semua provinsi lainnya di Indonesia. Jarak Euclidean yang besar antara Papua dan provinsi-provinsi lain merefleksikan disparitas dalam pencapaian indikator kesehatan tersebut.

Karakteristik Masing-Masing Cluster

idclus = clus_hier$cluster
aggregate(data[2:6],list(idclus),mean)
##   Group.1 Penanganan_Stunting Gizi_Buruk Air_Bersih Sanitasi_Layak
## 1       1            63.86121   4.387879   7072.121       69.39879
## 2       2            41.70000   4.500000   1485.000       33.75000
##   Imunisasi_Bayi
## 1       72.62485
## 2       10.34000

Berdasarkan hasil analisis clustering, teridentifikasi dua cluster yang memiliki karakteristik sangat berbeda dalam hal indikator kesehatan. Cluster 1 yang mencakup sebagian besar provinsi di Indonesia menunjukkan kinerja yang lebih baik dengan rata-rata penanganan stunting sebesar 63.86%, akses air bersih 7,072 unit, sanitasi layak 69.40%, dan cakupan imunisasi bayi 72.62%. Sementara itu, prevalensi gizi buruk pada cluster ini berada pada 4.39%.

Sebaliknya, Cluster 2 yang hanya berisi Provinsi Papua menunjukkan kinerja yang sangat memprihatinkan pada hampir semua indikator. Penanganan stunting hanya mencapai 41.70%, akses air bersih sangat terbatas pada 1,485 unit, sanitasi layak hanya 33.75%, dan yang paling mengkhawatirkan adalah cakupan imunisasi bayi yang sangat rendah hanya 10.34%. Meskipun prevalensi gizi buruk di Papua relatif sama dengan cluster lain (4.50%), namun indikator-indikator lainnya menunjukkan kesenjangan yang sangat lebar.

Temuan ini mengonfirmasi adanya disparitas kesehatan yang ekstrem antara Papua dan wilayah lainnya di Indonesia, yang membutuhkan intervensi khusus dan pendekatan yang berbeda dalam penanganan masalah kesehatan di Papua.

DAFTAR PUSTAKA

Narimawati, U. (2008). “Metodologi Penelitian Kualitatif dan Kuantitatif, Teori dan Aplikasi”. Bandung. Agung Media.

A. Muhtadan. (2008). “Clustering of District or City in Central Java Based Covid-19 Case using K-Means Clustering”. Jurnal Matematika, Statistika, & Komputasi.

A. Zhu, Z. Hua, Y. Shi, Y. Tang, and L. Miao. 2021. “An improved k-means algorithm based on evidence distance,” Entropy, vol. 23.