Pendahuluan

Latar Belakang

Sarana kesehatan merupakan salah satu indikator penting dalam penilaian kualitas pelayanan kesehatan di suatu wilayah. Variasi jumlah fasilitas kesehatan antardaerah dapat mencerminkan kesenjangan pelayanan dan kebutuhan intervensi kebijakan. Oleh karena itu, diperlukan analisis yang mampu mengelompokkan provinsi berdasarkan jumlah sarana kesehatan yang dimiliki sehingga pola dan perbedaan antar kelompok dapat dipahami secara lebih komprehensif.

Data yang digunakan pada penelitian ini mencakup beberapa jenis fasilitas kesehatan seperti Rumah Sakit, Rumah Sakit Bersalin, Poliklinik, Puskesmas, Puskesmas Pembantu, dan Apotek. Analisis dilakukan untuk melihat kemiripan antar provinsi dalam hal ketersediaan fasilitas kesehatan.

Data

## # A tibble: 6 × 7
##   Provinsi         `Rumah Sakit` `Rumah Sakit Bersalin` Poliklinik Puskesmas
##   <chr>                    <dbl>                  <dbl>      <dbl>     <dbl>
## 1 ACEH                        64                    225        258       395
## 2 SUMATERA UTARA             199                    441        800       661
## 3 SUMATERA BARAT              54                    139        127       294
## 4 RIAU                        55                    207        329       272
## 5 JAMBI                       36                    151        103       231
## 6 SUMATERA SELATAN            65                    248        195       403
## # ℹ 2 more variables: `Puskesmas Pembantu` <dbl>, Apotek <dbl>

Latar Belakang Metode

Analisis Cluster Hierarki merupakan metode pengelompokan objek berdasarkan ukuran kemiripan atau jarak antar objek. Metode ini tidak memerlukan penentuan jumlah cluster di awal, sehingga struktur pengelompokan dapat divisualisasikan melalui dendrogram. Metode ini sangat sesuai digunakan pada data dengan jumlah objek yang tidak terlalu besar seperti data provinsi di Indonesia.

Tinjuan Pustaka

Menurut Hair et al., analisis cluster hierarki merupakan metode penting dalam pengelompokan objek berdasarkan similaritas. Prosesnya dimulai dari pembentukan klaster kecil hingga menjadi klaster besar, ditampilkan dalam dendrogram. Faktor paling krusial adalah pemilihan ukuran jarak, metode linkage, dan standardisasi data. Ward’s method sering menjadi pilihan terbaik karena menghasilkan klaster yang kompak dan stabil. Validasi dan interpretasi substantif tetap menjadi langkah yang tidak terpisahkan dalam memastikan hasil klaster bermakna.

Tujuan

  • Mengidentifikasi jumlah cluster yang tepat untuk data sarana kesehatan.

  • Mengelompokkan fasilitas kesehatan berdasarkan kemiripan karakteristiknya

Source Code

Library yang digunakan

library(readxl)   #Membaca file Excel
library(dplyr)    #Manipulasi data (select, filter, mutate)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(psych)  #Uji KMO dan analisis psikometri
library(clValid) # Validitas cluster dan penentuan jumlah cluster
## Loading required package: cluster
library(factoextra) # Visualisasi dendrogram dan cluster
## Loading required package: ggplot2
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(cluster) # Perhitungan silhouette dan metode clustering
library(stats)  # fungsi dasar cluster (dist, hclust)

Source Code Analisis

Import Data

data <- read_excel("C:/Users/Azka Kania/DownloadS/DATA_SARANA_KESEHATAN.xlsx")

Membaca file Excel dan menyimpannya sebagai data frame.

Memilih Variabel Numerik

data <- data %>% select_if(is.numeric)

Mengambil hanya kolom numerik karena analisis cluster membutuhkan data angka untuk menghitung jarak.

Membersihkan Nilai Hilang (NA)

data <- na.omit(data) 

Menghapus baris yang memiliki nilai hilang (NA) agar analisis tidak error dan hasil analisisnya lebih akurat.

Uji Asumsi

Uji KMO (Analisis Kecukupan Sampel)

psych::KMO(data)
## Kaiser-Meyer-Olkin factor adequacy
## Call: psych::KMO(r = data)
## Overall MSA =  0.9
## MSA for each item = 
##          Rumah Sakit Rumah Sakit Bersalin           Poliklinik 
##                 0.94                 0.91                 0.92 
##            Puskesmas   Puskesmas Pembantu               Apotek 
##                 0.86                 0.84                 0.94

Menilai kecukupan sampel dan kelayakan data untuk dianalisis, Semakin tinggi nilai KMO semakin baik dan layak data untuk dianalisis.

Uji Non-Multikolinearitas (Korelasi)

cor(data)       
##                      Rumah Sakit Rumah Sakit Bersalin Poliklinik Puskesmas
## Rumah Sakit            1.0000000            0.9618700  0.9565052 0.9330942
## Rumah Sakit Bersalin   0.9618700            1.0000000  0.9690787 0.9342288
## Poliklinik             0.9565052            0.9690787  1.0000000 0.9284192
## Puskesmas              0.9330942            0.9342288  0.9284192 1.0000000
## Puskesmas Pembantu     0.7934684            0.7834446  0.7714473 0.8998482
## Apotek                 0.9600062            0.9589805  0.9499034 0.9235252
##                      Puskesmas Pembantu    Apotek
## Rumah Sakit                   0.7934684 0.9600062
## Rumah Sakit Bersalin          0.7834446 0.9589805
## Poliklinik                    0.7714473 0.9499034
## Puskesmas                     0.8998482 0.9235252
## Puskesmas Pembantu            1.0000000 0.7967605
## Apotek                        0.7967605 1.0000000

Melihat hubungan antar variabel untuk memahami pola awal dan memastikan struktur data masuk akal.

Standarisasi Data

Menyeragamkan skala antar variabel agar tidak ada variabel yang mendominasi perhitungan jarak.

Analisis Cluster Hierarki

Matriks Jarak dan Single Linkage

Kode berikut digunakan untuk menghitung matriks jarak menggunakan metode Euclidean dan kemudian membentuk cluster menggunakan metode single linkage. Perhitungan jarak ini menjadi dasar untuk menyusun struktur hierarchical clustering.

Koefisien Korelasi Cophenetic

Kode ini membandingkan nilai korelasi cophenetic dari beberapa metode hierarchical clustering yaitu single, complete, dan average.

Validitas Cluster

Kode ini menjalankan evaluasi internal menggunakan paket clValid dengan metode hierarchical dan average linkage. Tiga indeks evaluasi yaitu Connectivity, Dunn, dan Silhouette dihitung untuk menentukan jumlah cluster yang paling sesuai.

Dendogram

Kode ini digunakan untuk menampilkan dendrogram dari hasil hierarchical clustering metode single. Visualisasi ini membantu mengidentifikasi struktur pengelompokan secara lebih jelas.

Hasil dan Pembahasan

pilih hanya variabel numerik

# pilih hanya variabel numerik
data <- data %>% select_if(is.numeric)
# hapus NA agar tidak error
data <- na.omit(data)

Pengujian Asumsi

Uji Sampel Representatif (KMO)

KMO <- function(x){
  x <- as.matrix(x)
  R <- cor(x)
  S2 <- (solve(R))
  Ai <- diag(1/sqrt(diag(S2)))
  MS <- Ai %*% S2 %*% Ai
  Vi <- 1 - diag(1/diag(S2))
  MSA <- 1 - (MS - diag(diag(MS)))
  KMO_value <- sum(MSA) / (sum(MSA) + sum(Vi))
  
  return(KMO_value)
}
KMO(data)
## [1] 0.5393008

Nilai KMO sebesar 0.539 menunjukkan bahwa data cukup memadai untuk dianalisis. Nilai di atas 0.50 dianggap memenuhi syarat minimal untuk analisis lebih lanjut.

Uji Non-Multikolinearitas

korelasi <- cor(data, method = "pearson")
korelasi
##                      Rumah Sakit Rumah Sakit Bersalin Poliklinik Puskesmas
## Rumah Sakit            1.0000000            0.9618700  0.9565052 0.9330942
## Rumah Sakit Bersalin   0.9618700            1.0000000  0.9690787 0.9342288
## Poliklinik             0.9565052            0.9690787  1.0000000 0.9284192
## Puskesmas              0.9330942            0.9342288  0.9284192 1.0000000
## Puskesmas Pembantu     0.7934684            0.7834446  0.7714473 0.8998482
## Apotek                 0.9600062            0.9589805  0.9499034 0.9235252
##                      Puskesmas Pembantu    Apotek
## Rumah Sakit                   0.7934684 0.9600062
## Rumah Sakit Bersalin          0.7834446 0.9589805
## Poliklinik                    0.7714473 0.9499034
## Puskesmas                     0.8998482 0.9235252
## Puskesmas Pembantu            1.0000000 0.7967605
## Apotek                        0.7967605 1.0000000

Hasil uji non-multikolinearitas menggunakan matriks korelasi Pearson menunjukkan bahwa seluruh variabel numerik memiliki korelasi yang tinggi (nilai > 0,90). Namun, hal ini tidak menjadi masalah dalam analisis cluster karena yang dibutuhkan dalam analisis cluster adalah ukuran kemiripan antar objek bukan estimasi model prediktif.

Standarisasi Data

datastand <- scale(data)

Analisis Cluster Hierarki

Matriks Jarak dan Single Linkage

dist_mat <- dist(datastand, method = "euclidean")
hc <- hclust(dist_mat, method = "single")

Koefisien Korelasi Cophenetic

methods <- c("single", "complete", "average")

cor_values <- sapply(methods, function(m) {
  hc_all <- hclust(dist_mat, method = m)
  d_coph <- cophenetic(hc_all)
  cor(dist_mat, d_coph)
})
cor_values
##    single  complete   average 
## 0.9609600 0.9340591 0.9416371

Metode Single Linkage memiliki nilai sebesar 0.96. Nilai tersebut lebih baik dibanding Avarage Linkage yang memiliki nilai sebesar 0.94 dan nilai metode Complete linkage yang memiliki nilai sebesar 0,94.

Indeks Validitas

inval <- clValid(datastand, 2:6,
                 clMethods = "hierarchical",
                 validation = "internal",
                 metric = "euclidean",
                 method = "single")
## Warning in clValid(datastand, 2:6, clMethods = "hierarchical", validation =
## "internal", : rownames for data not specified, using 1:nrow(data)
summary(inval)
## 
## Clustering Methods:
##  hierarchical 
## 
## Cluster sizes:
##  2 3 4 5 6 
## 
## Validation Measures:
##                                  2       3       4       5       6
##                                                                   
## hierarchical Connectivity   4.4536  7.2159  9.7159 11.7159 15.1448
##              Dunn           0.6497  0.9032  0.6219  0.5359  0.3589
##              Silhouette     0.7993  0.6725  0.6351  0.6253  0.2632
## 
## Optimal Scores:
## 
##              Score  Method       Clusters
## Connectivity 4.4536 hierarchical 2       
## Dunn         0.9032 hierarchical 3       
## Silhouette   0.7993 hierarchical 2

Berdasarkan hasil uji validitas cluster dengan indeks validitas silhouette diperoleh bahwa banyak cluster optimal adalah 2.

Dendogram

plot(hc,
     main = "Dendrogram - Metode Single",
     xlab = "",
     sub = "",
     cex = 0.7)

Pembagian Cluster

cluster2 <- cutree(hc, k = 2)

Menggabungkan hasil Cluster

hasil_cluster <- data.frame(
  Provinsi   = data[[1]],   # kolom pertama = nama provinsi
  Cluster_2  = cluster2
)
hasil_cluster
##    Provinsi Cluster_2
## 1        64         1
## 2       199         1
## 3        54         1
## 4        55         1
## 5        36         1
## 6        65         1
## 7        20         1
## 8        53         1
## 9        21         1
## 10       23         1
## 11      119         1
## 12      292         2
## 13      274         2
## 14       61         1
## 15      317         2
## 16       87         1
## 17       49         1
## 18       31         1
## 19       48         1
## 20       39         1
## 21       19         1
## 22       34         1
## 23       39         1
## 24       11         1
## 25       46         1
## 26       29         1
## 27       75         1
## 28       31         1
## 29       14         1
## 30       10         1
## 31       27         1
## 32       20         1
## 33       16         1
## 34       41         1

Cluster 1 mencakup sebagian besar provinsi di Indonesia yang memiliki jumlah fasilitas kesehatan yang relatif lebih sedikit dibanding provinsi lain. Provinsi-provinsi dalam kelompok ini cenderung memiliki jumlah rumah sakit, puskesmas, klinik, maupun fasilitas layanan kesehatan lain yang masih terbatas. Keterbatasan ini bisa disebabkan oleh faktor geografis, kepadatan penduduk yang tidak terlalu tinggi, atau pembangunan infrastruktur kesehatan yang masih berkembang. Secara keseluruhan, Cluster 1 merepresentasikan wilayah-wilayah yang membutuhkan peningkatan jumlah fasilitas kesehatan agar distribusi layanan menjadi lebih merata dan mampu memenuhi kebutuhan masyarakat.

Cluster 2 terdiri dari provinsi dengan jumlah fasilitas kesehatan yang lebih tinggi dan kapasitas layanan yang lebih besar. Provinsi-provinsi dalam cluster ini umumnya merupakan wilayah dengan populasi besar, tingkat urbanisasi tinggi, serta pusat kegiatan ekonomi dan pemerintahan. Kondisi tersebut mendorong ketersediaan fasilitas kesehatan yang lebih lengkap, mulai dari rumah sakit besar, puskesmas yang lebih banyak, hingga keberadaan tenaga kesehatan yang lebih memadai. Dengan demikian, Cluster 2 mencerminkan wilayah dengan pelayanan kesehatan yang lebih maju dan daya dukung infrastruktur yang lebih kuat.

Penutup

Kesimpulan

Berdasarkan hasil analisis cluster hierarki, dapat disimpulkan seperti berikut:

  • Data memiliki kecukupan sampel yang cukup baik (KMO > 0.50).

  • Evaluasi validitas menunjukkan bahwa dua cluster merupakan struktur yang paling stabil.

  • Dendrogram memperlihatkan pembagian dua kelompok utama provinsi berdasarkan kemiripan fasilitas kesehatan.

Saran

  • Penelitian dapat dilanjutkan dengan metode K-Means atau PCA + clustering untuk eksplorasi lebih mendalam.

  • Variabel tambahan seperti jumlah tenaga kesehatan dapat meningkatkan kualitas pengelompokan.

  • Perlu dilakukan pengecekan ulang kualitas data agar menghindari NA dan inkonsistensi.

Daftar Pustaka

Hair, J. F., Black, W. C., Babin, B. J., & Anderson, R. E. (2019). Multivariate Data Analysis. Kaufman, L., & Rousseeuw, P. J. (2005). Finding Groups in Data. Everitt, B. (2011). Cluster Analysis.