Tugas_Clustering_TPG
Penjelasan Kasus
Judul/Tema
Analisis Pengelompokan Provinsi/Daerah di Indonesia Berdasarkan
Indikator Kriminalitas dengan Metode K-Means dan Ward’s
Clustering.
Latar Belakang
Kriminalitas merupakan indikator penting dalam menilai kondisi
keamanan suatu wilayah. Di Indonesia, tingkat dan karakteristik tindak
pidana bervariasi antar provinsi, dipengaruhi oleh faktor sosial,
ekonomi, kependudukan, dan efektivitas penegakan hukum. Analisis
terhadap pola kriminalitas antar wilayah diperlukan agar kebijakan
pengendalian kejahatan dapat dirumuskan secara tepat sasaran dan
berbasis data.
Pendekatan statistik konvensional sering kali hanya menyoroti jumlah
kasus, sehingga belum mampu menggambarkan kompleksitas situasi secara
menyeluruh. Oleh karena itu, teknik clustering diperlukan untuk
mengelompokkan provinsi berdasarkan kesamaan karakteristik kriminalitas
tanpa memerlukan kategori awal.
Penelitian ini menggunakan dua pendekatan clustering, yaitu K-Means
sebagai metode non-hierarki dan Ward’s Method sebagai metode hierarki,
dengan variabel yang mencakup jumlah kejahatan, risiko per 100.000
penduduk, persentase penyelesaian perkara, serta selang waktu terjadinya
tindak pidana. Hasil analisis diharapkan dapat memberikan gambaran pola
kriminalitas antar provinsi serta menjadi dasar pertimbangan bagi
perumusan strategi peningkatan keamanan yang lebih efektif.
Tujuan
- Mengelompokkan provinsi di Indonesia berdasarkan indikator
kriminalitas untuk melihat pola wilayah dengan tingkat risiko kejahatan
berbeda.
- Membandingkan hasil pengelompokan menggunakan metode hierarchical
clustering (Ward) dan non-hierarchical clustering (K-Means).
- Mengidentifikasi karakteristik tiap cluster sebagai dasar pemahaman
kondisi keamanan di tiap provinsi.
Peubah yang digunakan
- Jumlah Kejahatan yang Dilaporkan (Var1) : Total laporan tindak
pidana di setiap provinsi
- Risiko Terjadi Tindak Pidana per 100.000 Penduduk (Var2): Indikasi
probabilitas penduduk menjadi korban berdasarkan populasi
- Persentase Penyelesaian Tindak Pidana (Var3):Proporsi kasus
kejahatan yang berhasil ditangani dituntaskan
- Selang Waktu Terjadinya Tindak Pidana(Var4): Interval waktu
rata-rata antar kejadian kejahatan di wilayah tersebut
sumber: https://www.bps.go.id/id/statistics-table?subject=526\
Pengolahan Data
Input Data
library(readxl)
data <- read_xlsx("D:\\DEPARTEMEN\\SEMESTER 5\\TPG\\Data_tpg_clustering.xlsx")
head(data)## # A tibble: 6 × 5
## `Kepolisian Daerah` `Jumlah Kejahatan yang Dilaporkan` Risiko Penduduk Terja…¹
## <chr> <dbl> <dbl>
## 1 Aceh 6651 125
## 2 Sumatera Utara 36534 250
## 3 Sumatera Barat 5666 103
## 4 Riau 7512 110
## 5 Jambi 3701 104
## 6 Sumatera Selatan 13037 153
## # ℹ abbreviated name:
## # ¹`Risiko Penduduk Terjadi Tindak Pidana per 100.000 Penduduk`
## # ℹ 2 more variables: `Persentase Penyelesaian Tindak Pidana` <dbl>,
## # `Selang Waktu Terjadinya Tindak Pidana` <chr>
NOTE Polda Metro Jaya meliputi Polres Jakarta
Selatan, Jakarta Timur, Jakarta Pusat, Jakarta Utara, Jakarta Barat,
Kepulauan Seribu, Kabupaten Bekasi, Kota Bekasi,Kabupaten Tangerang,
Kota Tangerang, Kota Depok, Bandara Soekarno-Hatta, dan Kesatuan
Pelaksanaan Pengamanan Pelabuhan (KP3) Tanjung Priok
Merapihkan data
##
## 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
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
# Mengubah Nama Kolom
data_temp <- data %>%
rename(
Provinsi = 1, # Kolom 1 diubah menjadi 'Provinsi'
Var1 = 2, # Kolom 2 diubah
Var2= 3, # Kolom 3 diubah
Var3 = 4, # Kolom 4 diubah
Varr4 = 5
)
# Mengkonversi Kolom Waktu ('Selang_Waktu_HHMMSS') ke Satuan Menit
data_kriminalitas<- data_temp %>%
mutate(
Var4 = round(as.duration(hms(Varr4)) / dminutes(1),3)
) %>%
# Hapus kolom waktu lama yang berformat teks
select(-Varr4)
#Memeriksa Struktur Data Akhir
head(data_kriminalitas)## # A tibble: 6 × 5
## Provinsi Var1 Var2 Var3 Var4
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Aceh 6651 125 57.0 79.0
## 2 Sumatera Utara 36534 250 68.4 14.4
## 3 Sumatera Barat 5666 103 100 92.8
## 4 Riau 7512 110 77.3 70.0
## 5 Jambi 3701 104 79.2 142
## 6 Sumatera Selatan 13037 153 74 40.3
## tibble [34 × 5] (S3: tbl_df/tbl/data.frame)
## $ Provinsi: chr [1:34] "Aceh" "Sumatera Utara" "Sumatera Barat" "Riau" ...
## $ Var1 : num [1:34] 6651 36534 5666 7512 3701 ...
## $ Var2 : num [1:34] 125 250 103 110 104 153 177 115 108 111 ...
## $ Var3 : num [1:34] 57 68.4 100 77.3 79.2 ...
## $ Var4 : num [1:34] 79 14.4 92.8 70 142 ...
Standarisasi
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.1 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ purrr 1.1.0 ✔ tidyr 1.3.1
## ✔ readr 2.1.5
## ── 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
Menentukan jumlah cluster optimal (k)
## Warning: package 'factoextra' was built under R version 4.5.2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Plot Elbow (WSS)
# Cari titik 'siku' dimana penurunan WSS mulai melambat.
fviz_nbclust(data_scaled, kmeans, method = "wss", k.max = 10) +
labs(subtitle = "Metode Elbow (WSS)")# Plot Silhouette
# Cari k yang menghasilkan rata-rata nilai Silhouette tertinggi.
fviz_nbclust(data_scaled, kmeans, method = "silhouette", k.max = 10) +
labs(subtitle = "Metode Silhouette")
Berdasarkan plot tersebut dapat dilihat bahwa k optimum yang terpilih
adalah k=5. Pada plot elbow k dipilih denga melihat penurunan total
within sum of square yang melambat, Sedangkan pada silhoutte k yang
dipilih dilihat berdasarkan average silhoutte widht tertinggi. Oleh
karenanya terpililah K=5.
K-Means (k=5)
## Warning: package 'cluster' was built under R version 4.5.2
library(factoextra)
k_optimal <- 5
# 1. Jalankan Algoritma K-Means
# set.seed(123) digunakan agar hasil klaster tetap
set.seed(123)
kmeans_result <- kmeans(data_scaled,
centers = k_optimal,
nstart = 25)
# 2. Melihat Output Dasar K-Means
cat("--- Ringkasan Hasil K-Means ---\n")## --- Ringkasan Hasil K-Means ---
## K-means clustering with 5 clusters of sizes 7, 2, 8, 4, 13
##
## Cluster means:
## Var1 Var2 Var3 Var4
## 1 -0.3682488 1.1446719 -1.1605131 -0.06801936
## 2 3.3465009 1.9630538 0.8936069 -1.06259266
## 3 0.3694716 -0.1750873 -0.5018158 -0.65454357
## 4 -0.7507486 -0.2945878 0.2730522 2.27063816
## 5 -0.3129260 -0.7199816 0.7122073 -0.09576025
##
## Clustering vector:
## Aceh Sumatera Utara Sumatera Barat
## 3 2 5
## Riau Jambi Sumatera Selatan
## 5 5 3
## Bengkulu Lampung Kepulauan Bangka Belitung
## 1 3 4
## Kepulauan Riau Metro Jaya1 Jawa Barat
## 5 2 5
## Jawa Tengah DI Yogyakarta Jawa Timur
## 5 5 3
## Banten Bali Nusa Tenggara Barat
## 5 5 3
## Nusa Tenggara Timur Kalimantan Barat Kalimantan Tengah
## 3 5 5
## Kalimantan Selatan Kalimantan Timur Kalimantan Utara2
## 5 3 4
## Sulawesi Utara Sulawesi Tengah Sulawesi Selatan
## 1 1 3
## Sulawesi Tenggara Gorontalo Sulawesi Barat
## 5 1 4
## Maluku Maluku Utara Papua Barat
## 1 4 1
## Papua
## 1
##
## Within cluster sum of squares by cluster:
## [1] 5.418914 1.990967 9.093409 3.989865 12.937684
## (between_SS / total_SS = 74.7 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
# 3. Tambahkan Hasil Klaster ke Data Asli (Non-scaled)
data_dengan_klaster <- data_kriminalitas %>%
mutate(Cluster_KMeans = factor(kmeans_result$cluster))
head(data_dengan_klaster)## # A tibble: 6 × 6
## Provinsi Var1 Var2 Var3 Var4 Cluster_KMeans
## <chr> <dbl> <dbl> <dbl> <dbl> <fct>
## 1 Aceh 6651 125 57.0 79.0 3
## 2 Sumatera Utara 36534 250 68.4 14.4 2
## 3 Sumatera Barat 5666 103 100 92.8 5
## 4 Riau 7512 110 77.3 70.0 5
## 5 Jambi 3701 104 79.2 142 5
## 6 Sumatera Selatan 13037 153 74 40.3 3
## $cluster
## Aceh Sumatera Utara Sumatera Barat
## 3 2 5
## Riau Jambi Sumatera Selatan
## 5 5 3
## Bengkulu Lampung Kepulauan Bangka Belitung
## 1 3 4
## Kepulauan Riau Metro Jaya1 Jawa Barat
## 5 2 5
## Jawa Tengah DI Yogyakarta Jawa Timur
## 5 5 3
## Banten Bali Nusa Tenggara Barat
## 5 5 3
## Nusa Tenggara Timur Kalimantan Barat Kalimantan Tengah
## 3 5 5
## Kalimantan Selatan Kalimantan Timur Kalimantan Utara2
## 5 3 4
## Sulawesi Utara Sulawesi Tengah Sulawesi Selatan
## 1 1 3
## Sulawesi Tenggara Gorontalo Sulawesi Barat
## 5 1 4
## Maluku Maluku Utara Papua Barat
## 1 4 1
## Papua
## 1
##
## $centers
## Var1 Var2 Var3 Var4
## 1 -0.3682488 1.1446719 -1.1605131 -0.06801936
## 2 3.3465009 1.9630538 0.8936069 -1.06259266
## 3 0.3694716 -0.1750873 -0.5018158 -0.65454357
## 4 -0.7507486 -0.2945878 0.2730522 2.27063816
## 5 -0.3129260 -0.7199816 0.7122073 -0.09576025
##
## $totss
## [1] 132
##
## $withinss
## [1] 5.418914 1.990967 9.093409 3.989865 12.937684
##
## $tot.withinss
## [1] 33.43084
##
## $betweenss
## [1] 98.56916
Plot hasil K-means
library(factoextra)
fviz_cluster(kmeans_result, data = data_scaled_df,
geom = "point",
ellipse.type = "convex",
main = paste("K-Means Clustering Provinsi Kriminalitas (k =", k_optimal, ")"),
ggtheme = theme_bw())
Berdasarkan Visual ini sumbu horizontal menjelaskan variasi terbesar
(43.7%). Provinsi yang letaknya jauh di sebelah kanan memiliki nilai
yang sangat berbeda pada variabel tertentu dibandingkan dengan provinsi
di sebelah kiri.
Dim2 (Sumbu Y, 29.9% Variansi): Sumbu vertikal ini menjelaskan
variasi terbesar kedua (29.9%).
Dilihat dari jaraknya semakin jauh jarak dua cluster pada plot maka
semakin besar perbedaan profil kriminalitas antara kelompok provinsi
tersebut.
Anggota Cluster dan Profilnya
Berikutnya akan dilihat anggota dan profil Cluster, agar dapat
diketahui provinsi mana saja yang masuk dalam suatu cluster.
library(dplyr)
# Anggota provinsi per klaster
data_dengan_klaster %>%
select(Provinsi, Cluster_KMeans) %>%
arrange(Cluster_KMeans) %>%
print(n = 34) ## # A tibble: 34 × 2
## Provinsi Cluster_KMeans
## <chr> <fct>
## 1 Bengkulu 1
## 2 Sulawesi Utara 1
## 3 Sulawesi Tengah 1
## 4 Gorontalo 1
## 5 Maluku 1
## 6 Papua Barat 1
## 7 Papua 1
## 8 Sumatera Utara 2
## 9 Metro Jaya1 2
## 10 Aceh 3
## 11 Sumatera Selatan 3
## 12 Lampung 3
## 13 Jawa Timur 3
## 14 Nusa Tenggara Barat 3
## 15 Nusa Tenggara Timur 3
## 16 Kalimantan Timur 3
## 17 Sulawesi Selatan 3
## 18 Kepulauan Bangka Belitung 4
## 19 Kalimantan Utara2 4
## 20 Sulawesi Barat 4
## 21 Maluku Utara 4
## 22 Sumatera Barat 5
## 23 Riau 5
## 24 Jambi 5
## 25 Kepulauan Riau 5
## 26 Jawa Barat 5
## 27 Jawa Tengah 5
## 28 DI Yogyakarta 5
## 29 Banten 5
## 30 Bali 5
## 31 Kalimantan Barat 5
## 32 Kalimantan Tengah 5
## 33 Kalimantan Selatan 5
## 34 Sulawesi Tenggara 5
# Tabel Profil Interpretasi Klaster K-Means (untuk memberi nama pada klaster)
profil_klaster_kmeans <- data_dengan_klaster %>%
group_by(Cluster_KMeans) %>%
summarise(
Rata_Var1_Jml_Kejahatan = mean(Var1),
Rata_Var2_Risiko_per_100rb = mean(Var2),
Rata_Var3_Persen_Selesai = mean(Var3),
Rata_Var4_Selang_Waktu_Menit = mean(Var4)
)
print(profil_klaster_kmeans)## # A tibble: 5 × 5
## Cluster_KMeans Rata_Var1_Jml_Kejahatan Rata_Var2_Risiko_per_100rb
## <fct> <dbl> <dbl>
## 1 1 4207. 208.
## 2 2 32818. 264.
## 3 3 9889. 118.
## 4 4 1261. 110
## 5 5 4633. 81.1
## # ℹ 2 more variables: Rata_Var3_Persen_Selesai <dbl>,
## # Rata_Var4_Selang_Waktu_Menit <dbl>
Penjelesan
Cluster 1 : Klaster resiko tinggi dan penanganan rendah.
Karakteristik Kunci: Memiliki Risiko (Var2) tertinggi kedua (207.8) namun Persentase Penyelesaian (Var3) terendah (47.4%).
Implikasi: Provinsi dalam kelompok ini menghadapi tingkat risiko kriminalitas yang tinggi tetapi memiliki tantangan signifikan dalam penyelesaian kasus. Provinsi yang termasuk: Bengkulu, Sulawesi Utara, Sulawesi Tengah, Gorontalo, Maluku, Papua Barat, Papua.
Faktor Pendorong: Risiko Kriminalitas Tinggi (Var2)Poin Utama: Wilayah ini memiliki tingkat risiko menjadi korban kejahatan yang tinggi (Var2 \(\approx 207.8\) per \(100.000\) penduduk).Hubungan Sosio-Ekonomi: Risiko tinggi ini didorong oleh kesenjangan ekonomi yang besar dan tingkat kemiskinan di atas rata-rata, terutama di wilayah Indonesia Timur. Kesenjangan ini menciptakan tekanan sosial yang mendorong kejahatan properti dan konflik sosial. 2. Faktor Penghambat: Efektivitas Penanganan Rendah (Var3)Poin Utama: Klaster ini memiliki Persentase Penyelesaian Kasus (Var3) yang sangat rendah (hanya \(\approx 47.4\%\)), menunjukkan efektivitas penegakan hukum yang buruk.Hubungan Geografis & Sumber Daya:Keterpencilan Geografis: Struktur wilayah kepulauan (Maluku, Papua Barat) atau topografi yang sulit menyebabkan aksesibilitas dan waktu respons penegak hukum menjadi sangat lambat. Kesulitan ini menghambat pengumpulan bukti dan saksi, sehingga menekan angka penyelesaian perkara.
Cluster 2 : Klaster Risiko kritis dan penanganan cepat.
Karakteristik Kunci: Memiliki Risiko (Var2) tertinggi (263.5) dan Selang Waktu (Var4) terpendek (16.2 menit). Selang waktu yang sangat pendek menunjukkan frekuensi kejahatan yang sangat tinggi (sangat sering).
Implikasi: Kelompok ini terdiri dari Provinsi-Provinsi dengan tingkat kriminalitas yang sangat tinggi dan intensitas yang masif. Namun, mereka juga menunjukkan efektivitas penegakan hukum yang baik (Persen Selesai tinggi, 83.18%).
Cluster 3 : Klaster Risiko menengah & Kasus Cepat
Karakteristik Kunci: Risiko (Var2) dan Jumlah Kejahatan (Var1) berada di tingkat menengah. Selang Waktu (Var4) relatif pendek (67.7 menit).
Implikasi: Kelompok ini menghadapi risiko kriminalitas yang moderat dengan frekuensi yang cukup sering, memerlukan perhatian yang seimbang antara pencegahan dan penegakan.
Cluster 4 : Karakteristik Kunci: Memiliki Risiko (Var2) terendah (10.0) dan Selang Waktu (Var4) terlama (437.1 menit, atau lebih dari 7 jam). Implikasi: Ini adalah kelompok Provinsi yang menikmati tingkat keamanan publik tertinggi, dengan kasus kejahatan yang sangat jarang. Basis keamanan paling tinggi
Cluster 5 : Klaster risiko terendah
Klaster resiko rendah dan efektif
Karakteristik Kunci: Risiko (Var2) relatif rendah (81.07) dan memiliki Persen Penyelesaian (Var3) tinggi (80.02%).
Implikasi: Provinsi ini berhasil mengelola risiko kriminalitasnya dengan tingkat efektivitas penegakan hukum yang baik.
Cluster 4 dan 5 masuk dalam area daerah yang cukup aman.
Simpulan keterangan cluster kluster
1: Zona merah dengan tantangan penegakan hukum.
kluster 2: Kriminalitas intensif. Provinsi/daerah
yang masuk dalam kluster ini adalah daerah-daerah metropolitan, masuk
akal bila tingkat kriminalitas nya tinggi dan penangann pun cepat karena
memang memiliki fasilitas keamanan yang lebih banyak dan porper.
kluster 3: Area kriminalitas moderat (tingkat
kriminalitasnya tak terlalu tinggi dan tak terlalu rendah).kluster ini
dapat menjadi target kebijakan pencegahan dan pengawasan rutin.Fokus
utamanya adalah pencegahan agar tak bergeser ke kluster risiko
tingi
kluster 4: daerah aman dan respponsif
kluster 5: daerah dengan basis keamanan paling
tinggi
NOTE Polda Metro Jaya meliputi Polres Jakarta
Selatan, Jakarta Timur, Jakarta Pusat, Jakarta Utara, Jakarta Barat,
Kepulauan Seribu, Kabupaten Bekasi, Kota Bekasi,Kabupaten Tangerang,
Kota Tangerang, Kota Depok, Bandara Soekarno-Hatta, dan Kesatuan
Pelaksanaan Pengamanan Pelabuhan (KP3) Tanjung Priok
Metode Hierarki (Ward’s)
Ward’s
Ward’s Method (atau ward.D2 di R) digunakan karena cenderung
menghasilkan klaster yang kompak dan berukuran relatif sama,
menjadikannya perbandingan yang baik dengan K-Means.
library(cluster)
library(factoextra)
k_visualisasi <- 5
# 1. Hitung Matriks Jarak
dist_mat <- dist(data_scaled, method = "euclidean")
# 2. Terapkan Ward's Hierarchical Clustering
hc_result <- hclust(dist_mat, method = "ward.D2")
# 3. Visualisasi Dendrogram DENGAN PEWARNAAN untuk tujuan visualisasi/pewarnaan
cat("--- Dendrogram Ward's Clustering (Dipotong Visual k=5) ---\n")## --- Dendrogram Ward's Clustering (Dipotong Visual k=5) ---
fviz_dend(hc_result,
k = k_visualisasi,
cex = 0.6,
main = "Dendrogram Ward's Clustering",
k_colors = "jco",
rect = TRUE,
rect_border = "jco",
rect_fill = TRUE,
ggtheme = theme_bw())## 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.
Berdasarkan gambar dendogram tersebut terdapat 5 cluster yang
terbentuk.
Height rendah (0–3) → penggabungan antar provinsi/cluster yang sangat
mirip.
Height tinggi (di atas 6) → penggabungan antar kelompok yang cukup
berbeda karakteristiknya.
Bagian bawah dendrogram (height < 3): Terdapat banyak garis pendek
dan rapat — seperti pada cluster kuning (Papua Barat, Gorontalo,
Sulawesi Tengah, Bengkulu). Artinya provinsi-provinsi ini memiliki
karakteristik yang sangat mirip sehingga bergabung cepat di height
rendah.
Cluster merah (misal Bali, Jawa Tengah, Jambi, Sumatera Barat, DIY):
Bergabung di sekitar height 2–3, menandakan tingkat kemiripan yang kuat
di antara anggota cluster tersebut.
Cluster abu-abu (misal Nusa Tenggara, Maluku Utara, Maluku):
Bergabung sedikit lebih tinggi (sekitar height 3–4), jadi masih mirip,
tapi tidak sedekat cluster kuning/merah.
Cluster biru dan kuning baru menyatu di height yang tinggi (sekitar
6–7): Kedua kelompok besar ini cukup berbeda
karakteristiknya(berdasarkan variabel yang digunakan)
Cabang paling tinggi (height tertinggi, garis hitam besar di atas):
menunjukkan penggabungan antar dua cluster besar terakhir — perbedaan
mereka paling besar di seluruh data.Semakin tinggi cabang ini, semakin
berbeda antar kelompok utama provinsi di Indonesia.
Anggota dan Profil Cluster
# Contoh: Memotong Dendrogram pada Tinggi h=4
h_optimal <- 4
clusters_ward_new <- cutree(hc_result, h = h_optimal)
# Hitung jumlah klaster yang dihasilkan dari pemotongan ini
k_hasil <- length(unique(clusters_ward_new))
cat(paste("Jumlah Klaster yang Terbentuk Jika Dipotong pada Tinggi =", h_optimal, "adalah k =", k_hasil, "\n"))## Jumlah Klaster yang Terbentuk Jika Dipotong pada Tinggi = 4 adalah k = 5
# Buat Profil Interpretasi berdasarkan k baru ini
data_dengan_klaster_ward_h <- data_kriminalitas %>%
mutate(Cluster_Ward_h = factor(clusters_ward_new))
profil_klaster_ward_h <- data_dengan_klaster_ward_h %>%
group_by(Cluster_Ward_h) %>%
summarise(
Rata_Var1_Jml_Kejahatan = mean(Var1),
Rata_Var2_Risiko_per_100rb = mean(Var2),
Rata_Var3_Persen_Selesai = mean(Var3),
Rata_Var4_Selang_Waktu_Menit = mean(Var4)
)
cat("\n--- Tabel Profil Klaster Ward's (Dipilih Berdasarkan Tinggi Dendrogram) ---\n")##
## --- Tabel Profil Klaster Ward's (Dipilih Berdasarkan Tinggi Dendrogram) ---
## # A tibble: 5 × 5
## Cluster_Ward_h Rata_Var1_Jml_Kejahatan Rata_Var2_Risiko_per_100rb
## <fct> <dbl> <dbl>
## 1 1 10068. 99.6
## 2 2 32818. 264.
## 3 3 4323. 90.1
## 4 4 4295 193.
## 5 5 1660. 107
## # ℹ 2 more variables: Rata_Var3_Persen_Selesai <dbl>,
## # Rata_Var4_Selang_Waktu_Menit <dbl>
Penjelasan Cluster 1: Klaster Menengah-Rendah (IV):
Risiko agak rendah, Jumlah Kejahatan absolut tinggi.
Cluster 2: Klaster Kritis (I): Risiko tertinggi, Selang Waktu
terpendek (frekuensi kejahatan tertinggi).
cluster 3: Klaster Rendah & Efektif (V): Risiko paling rendah,
Persen Selesai tertinggi (penanganan terbaik).
cluster 4: Klaster Tinggi (II): Risiko tinggi, Persen Selesai
terendah (penanganan terburuk)
cluster 5: Klaster Moderat (III): Risiko menengah, Selang Waktu cukup
pendek.
Interpretasi/Simpulan
Kesamaan Mayor (Stabilitas Klaster) Kedua metode berhasil mengidentifikasi Klaster Kritis (Klaster 2) secara hampir sempurna.
Ward’s Klaster 2 (Risiko 263.5)
K-Means Klaster 2 (Risiko 263.5)
Perbedaan Mayor (Distribusi Risiko Rendah)Ward’s Method cenderung mendistribusikan provinsi dengan risiko rendah dan menengah secara berbeda, yang tercermin pada Rata_Var1 (Jumlah Kejahatan).Ward’s (Klaster 1 & 3): Ward’s cenderung mengelompokkan provinsi yang memiliki Jumlah Kejahatan Tinggi (Var1 \(\approx 10.000\)) tetapi Risiko Rendah (\(\approx 99.5\)) ke dalam Klaster 1. Ini mungkin memprioritaskan faktor Var1 (Jumlah Absolut).K-Means (Klaster 5/D): K-Means lebih fokus pada kepadatan, yang menghasilkan kelompok yang lebih merata.
Jadi ada konsistensi tinggi dan identifikasi kelompok paling ekstrem(
kluster risiko tinggi). Ward’s Method, bersifat hierarki, lebih peka
terhadap outlier (provinsi yang sangat unik) di awal proses
pengelompokan, yang dapat menghasilkan komposisi klaster menengah yang
berbeda dari K-Means.