Kriminalitas merupakan salah satu indikator penting yang menggambarkan tingkat keamanan suatu wilayah. Tingginya angka kejahatan dapat memberikan dampak negatif terhadap kualitas hidup masyarakat, mendorong meningkatnya rasa tidak aman, serta mempengaruhi stabilitas sosial dan ekonomi. Oleh karena itu, analisis terhadap pola kriminalitas antar wilayah menjadi penting untuk memahami karakteristik keamanan dan kerawanan suatu daerah.
Maka dari itu, dilakukan penelitian menggunakan dataset Violent Crime Rates by US State yang diunggah pada Kaggle. Dataset tersebut berisi populasi penduduk dan angka kriminal, seperti pembunuhan (murder), kekerasan (assault), pemerkosaan (rape) yang tercatat per 100.000 penduduk di 50 negara bagian di Amerika Serikat pada tahun 1973. Untuk penelitian ini, digunakan variabel angka kriminal, seperti pembunuhan, kekerasan, dan pemerkosaan. Berikut merupakan data yang digunakan dalam penelitian ini.
Dengan menggunakan tiga variabel tersebut, pendekatan clustering dapat membantu mengelompokkan negara bagian menjadi beberapa kategori berdasarkan tingkat kerawanan kriminal, seperti kelompok aman, dan kelompok rawan. Pendekatan ini nantinya akan divalidasi menggunakan Indeks Connectivity, Dunn, dan Silhouette untuk menentukan banyak cluster-nya.
# Data
data = read.csv('F:/US_violent_crime.csv')
names(data)[names(data) == "X"] = "State"
data_crime = data[,c(1,2,3,5)]
data_crime
## State Murder Assault Rape
## 1 Alabama 13.2 236 21.2
## 2 Alaska 10.0 263 44.5
## 3 Arizona 8.1 294 31.0
## 4 Arkansas 8.8 190 19.5
## 5 California 9.0 276 40.6
## 6 Colorado 7.9 204 38.7
## 7 Connecticut 3.3 110 11.1
## 8 Delaware 5.9 238 15.8
## 9 Florida 15.4 335 31.9
## 10 Georgia 17.4 211 25.8
## 11 Hawaii 5.3 46 20.2
## 12 Idaho 2.6 120 14.2
## 13 Illinois 10.4 249 24.0
## 14 Indiana 7.2 113 21.0
## 15 Iowa 2.2 56 11.3
## 16 Kansas 6.0 115 18.0
## 17 Kentucky 9.7 109 16.3
## 18 Louisiana 15.4 249 22.2
## 19 Maine 2.1 83 7.8
## 20 Maryland 11.3 300 27.8
## 21 Massachusetts 4.4 149 16.3
## 22 Michigan 12.1 255 35.1
## 23 Minnesota 2.7 72 14.9
## 24 Mississippi 16.1 259 17.1
## 25 Missouri 9.0 178 28.2
## 26 Montana 6.0 109 16.4
## 27 Nebraska 4.3 102 16.5
## 28 Nevada 12.2 252 46.0
## 29 New Hampshire 2.1 57 9.5
## 30 New Jersey 7.4 159 18.8
## 31 New Mexico 11.4 285 32.1
## 32 New York 11.1 254 26.1
## 33 North Carolina 13.0 337 16.1
## 34 North Dakota 0.8 45 7.3
## 35 Ohio 7.3 120 21.4
## 36 Oklahoma 6.6 151 20.0
## 37 Oregon 4.9 159 29.3
## 38 Pennsylvania 6.3 106 14.9
## 39 Rhode Island 3.4 174 8.3
## 40 South Carolina 14.4 279 22.5
## 41 South Dakota 3.8 86 12.8
## 42 Tennessee 13.2 188 26.9
## 43 Texas 12.7 201 25.5
## 44 Utah 3.2 120 22.9
## 45 Vermont 2.2 48 11.2
## 46 Virginia 8.5 156 20.7
## 47 Washington 4.0 145 26.2
## 48 West Virginia 5.7 81 9.3
## 49 Wisconsin 2.6 53 10.8
## 50 Wyoming 6.8 161 15.6
statdes = summary(data_crime[,2:4])
statdes
## Murder Assault Rape
## Min. : 0.800 Min. : 45.0 Min. : 7.30
## 1st Qu.: 4.075 1st Qu.:109.0 1st Qu.:15.07
## Median : 7.250 Median :159.0 Median :20.10
## Mean : 7.788 Mean :170.8 Mean :21.23
## 3rd Qu.:11.250 3rd Qu.:249.0 3rd Qu.:26.18
## Max. :17.400 Max. :337.0 Max. :46.00
Berdasarkan hasil ringkasan statistik deskriptif pada masing-masing variabel, didapatkan rentang angka kasus pembunuhan yang tercatat berada di angka 0,8 hingga 17,4 per 100.000 penduduk. Sedangkan, angka kasus pemerkosaan berada di angka 7,3 hingga 46 per 100.000 penduduk dan angka kasus kekerasan berkisar antara 45 hingga 337 per 100.000 penduduk. Rata-rata untuk jumlah kasus pembunuhan sebesar 7,778, kasus pemerkosaan 21,23, dan kasus kekerasan 170 per 100.000 penduduk. Ringkasan statistik deskriptif ini menjelaskan bahwa kasus kekerasan kerap kali terjadi di Amerika Serikat dibandingkan kasus pembunuhan dan pemerkosaan.
library(psych)
## Warning: package 'psych' was built under R version 4.5.1
kmo = KMO(data_crime[,2:4])
kmo
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = data_crime[, 2:4])
## Overall MSA = 0.68
## MSA for each item =
## Murder Assault Rape
## 0.67 0.62 0.80
Berdasarkan output tersebut didapatkan bahwa nilai KMO semua variabel bernilai > 0,5, sehingga sampel telah cukup dan dapat dilakukan analisis cluster.
korelasi = cor(data_crime[,2:4], method = "pearson")
korelasi
## Murder Assault Rape
## Murder 1.0000000 0.8018733 0.5635788
## Assault 0.8018733 1.0000000 0.6652412
## Rape 0.5635788 0.6652412 1.0000000
Berdasarkan output nilai korelasi tersebut, didapatkan nilai korelasi antara variabel murder dan rape memiliki nilai 0,5635788 yang dimana bernilai < 0,8. Namun, antara variabel murder dan assault bernilai 0.801 yang menandakan terdapat multikolinieritas ringan, tetapi bisa untuk diabaikan, sehingga asumsi non-multikolinieritas sudah terpenuhi.
jarak = dist(data_crime[,2:4], method = "manhattan")
d1 = dist(data_crime[,2:4])
hiers = hclust(dist(data_crime[,2:4]), method = "single")
hc1 = hclust(d1, "single")
d2 = cophenetic(hc1)
single = cor(d1,d2)
single
## [1] 0.689244
hierave = hclust(dist(data_crime[,2:4]), method = "ave")
hc2 = hclust(d1, "ave")
d3 = cophenetic(hc2)
average = cor(d1,d3)
average
## [1] 0.776174
hiercomp = hclust(dist(data_crime[,2:4]), method = "complete")
hc3 = hclust(d1, "complete")
d4 = cophenetic(hc3)
complete = cor(d1,d4)
complete
## [1] 0.7694462
hiercen = hclust(dist(data_crime[,2:4]), method = "centroid")
hc4 = hclust(d1, "centroid")
d5 = cophenetic(hc4)
centroid = cor(d1,d5)
centroid
## [1] 0.7754111
hierward = hclust(dist(data_crime[,2:4]), method = "ward.D")
hc5 = hclust(d1,"ward.D")
d6 = cophenetic(hc5)
ward = cor(d1,d6)
ward
## [1] 0.7656631
KorCop = data.frame(single, average, complete , centroid, ward)
KorCop
## single average complete centroid ward
## 1 0.689244 0.776174 0.7694462 0.7754111 0.7656631
Berdasarkan nilai korelasi cophenetic dari seluruh metode didapatkan nilai korelasi cophenetic untuk metode average linkage memiliki nilai paling mendekati 1 (0,776174) dibandingkan metode yang lain, sehingga metode average linkage dipilih sebagai metode clustering hierarki pada penelitian ini.
library(clValid)
## Warning: package 'clValid' was built under R version 4.5.2
## Loading required package: cluster
## Warning: package 'cluster' was built under R version 4.5.2
inval = clValid(data_crime[,2:4], 2:5, clMethods = "hierarchical", validation = "internal",
metric = "manhattan", method = "average")
## Warning in clValid(data_crime[, 2:4], 2:5, clMethods = "hierarchical",
## validation = "internal", : rownames for data not specified, using 1:nrow(data)
summary(inval)
##
## Clustering Methods:
## hierarchical
##
## Cluster sizes:
## 2 3 4 5
##
## Validation Measures:
## 2 3 4 5
##
## hierarchical Connectivity 2.4357 5.9071 10.2329 15.3956
## Dunn 0.1681 0.1537 0.1537 0.2491
## Silhouette 0.5804 0.5049 0.4617 0.4791
##
## Optimal Scores:
##
## Score Method Clusters
## Connectivity 2.4357 hierarchical 2
## Dunn 0.2491 hierarchical 5
## Silhouette 0.5804 hierarchical 2
optimalScores(inval)
## Score Method Clusters
## Connectivity 2.4357143 hierarchical 2
## Dunn 0.2490752 hierarchical 5
## Silhouette 0.5804293 hierarchical 2
Berdasarkan nilai indeks Connectivity, Dunn, dan Silhouette didapatkan bahwa indeks Connectivity dan Silhouette menyarankan untuk menggunakan 2 cluster dan indeks Dunn menyarankan untuk menggunakan 5 cluster. Maka dari itu, digunakan 2 cluster untuk analisis clustering pada penelitian ini.
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.5.2
## 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
hirave = hclust(jarak, method = 'average')
hirave
##
## Call:
## hclust(d = jarak, method = "average")
##
## Cluster method : average
## Distance : manhattan
## Number of objects: 50
clus_hier = eclust(data_crime[, 2:4],
FUNcluster = "hclust",
hc_method = "average",
distance = "manhattan",
stand = FALSE,
k = 2)
## 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_dend(clus_hier, rect = TRUE, cex = 0.5)
Dari dendogram tersebut dapat dilihat bahwa 50 negara bagian di Amerika Serikat dibagi menjadi 2 cluster berdasarkan angka pembunuhan dan pemerkosaan. Hasil dari kedua cluster dapat dilihat dari tabel berikut.
| Cluster | Negara Bagian |
|---|---|
| 1 | Alabama, Alaska, Arizona, California, Delaware, Florida, Illinois, Louisiana, Maryland, Michigan, Mississippi, Nevada, New Mexico, New York, North Carolina, South Carolina. |
| 2 | Arkansas, Colorado, Connecticut, Georgia, Hawaii, Idaho, Indiana, Iowa, Kansas, Kentucky, Maine, Massachusetts. Minnesota, Missouri, Montana, Nebraska, New Hampshire, New Jersey, North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia, Wisconsin, Wyoming. |
idclus = clus_hier$cluster
aggregate(data_crime[, 2:4],list(idclus),mean)
## Group.1 Murder Assault Rape
## 1 1 11.812500 272.5625 28.37500
## 2 2 5.894118 122.8529 17.87059
Berdasarkan karakteristik dari masing-masing cluster tersebut, dapat disimpulkan bahwa angka kasus pembunuhan , pemerkosaan, dan kekerasan pada cluster 1 memiliki karakteristik yang lebih tinggi dibandingkan cluster 2, sehingga dapat disimpulkan bahwa negara bagian pada cluster 2 lebih aman dibandingkan negara pada cluster 1.
Berdasarkan data angka kasus kriminal, terutama kasus pembunuhan, pemerkosaan, dan kekerasan di 50 negara bagian di Amerika Serikat pada tahun 1973, dilakukan analisis clustering hierarki untuk mengelompokkan negara bagian mana saja yang dapat dikatakan aman dan rawan dari kriminal berdasarkan ketiga angka kejahatan tersebut. Jarak yang digunakan dalam analisis ini adalah jarak Manhattan. Metode clustering didapatkan dari korelasi cophenetic yang paling besar atau yang paling mendekati 1, yakni metode Average Linkage. Untuk memvalidasi hasil cluster tersebut, dilakukan validitas menggunakan indeks Connectivity, Dunn, dan Silhouette. Berdasarkan hasil validitas cluster tersebut, jumlah cluster yang paling optimal dan direkomendasikan adalah sebanyak 2 cluster.
Setelah dilakukan analisis cluster hierarki dengan metode Average Linkage dan jarak Manhattan, didapatkan bahwa Alabama, Alaska, Arizona, California, Delaware, Florida, Illinois, Louisiana, Maryland, Michigan, Mississippi, Nevada, New Mexico, New York, North Carolina, South Carolina tergolong sebagai cluster 1. Sedangkan, 34 negara bagian lain tergolong cluster 2. Karakteristik angka kasus kriminal pada cluster 1 lebih tinggi dibandingkan cluster 2. Hal ini mengindikasikan bahwa negara bagian pada cluster 1 tergolong sebagai negara bagian di Amerika Serikat yang rawan kriminal, terutama pada kasus pembunuhan, pemerkosaan, dan kekerasan.
Namun, rata-rata angka kasus pembunuhan kekerasan pada kedua cluster relatif tinggi. Hal ini mengindikasikan bahwa penduduk di seluruh negara bagian Amerika Serikat harus tetap waspada dengan adanya kasus kriminal, terutama kasus kekerasan.
Violent Crime Rates by US State. (n.d.). Kaggle. Retrieved November 25, 2025, from https://www.kaggle.com/datasets/mathchi/violent-crime-rates-by-us-state :::