set.seed(321)
n <- 100
data_bangkitan <- data.frame(
pendapatan = c(rnorm(50, 5000000, 1000000),
rnorm(50, 10000000, 1500000)),
pengeluaran = c(rnorm(50, 3000000, 800000),
rnorm(50, 6000000, 1000000)),
usia = c(rnorm(50, 25, 3),
rnorm(50, 40, 5))
)
head(data_bangkitan)
## pendapatan pengeluaran usia
## 1 6704903 1957208 21.10047
## 2 4287961 2265038 31.35948
## 3 4722015 3906639 26.63643
## 4 4880351 3654276 25.46602
## 5 4876039 2060595 22.94296
## 6 5268184 2929228 26.24456
summary(data_bangkitan)
## pendapatan pengeluaran usia
## Min. : 2669069 Min. : 815650 Min. :20.61
## 1st Qu.: 5241349 1st Qu.:3131503 1st Qu.:25.29
## Median : 6984420 Median :4352244 Median :31.88
## Mean : 7493710 Mean :4486572 Mean :33.02
## 3rd Qu.: 9881262 3rd Qu.:5840143 3rd Qu.:40.09
## Max. :13431763 Max. :7805043 Max. :51.91
data_scaled <- scale(data_bangkitan)
# Hitung jarak antar observasi
dist_mat <- dist(data_scaled, method = "euclidean")
# Lakukan hierarchical clustering
hc <- hclust(dist_mat, method = "ward.D2")
# Plot dendrogram
plot(hc, main = "Dendrogram Hierarchical Clustering", xlab = "", sub = "")
# Tentukan jumlah cluster (misal 2)
rect.hclust(hc, k = 2, border = "red")
# Simpan hasil klasterisasi
cluster_hc <- cutree(hc, k = 2)
table(cluster_hc)
## cluster_hc
## 1 2
## 50 50
set.seed(123)
kmeans_result <- kmeans(data_scaled, centers = 2, nstart = 25)
# Lihat hasil
kmeans_result$size
## [1] 50 50
kmeans_result$centers
## pendapatan pengeluaran usia
## 1 -0.889514 -0.8610079 -0.8380011
## 2 0.889514 0.8610079 0.8380011
# Tambahkan hasil cluster ke data asli
data_bangkitan$cluster_kmeans <- as.factor(kmeans_result$cluster)
library(ggplot2)
ggplot(data_bangkitan, aes(x = pendapatan, y = pengeluaran, color = cluster_kmeans)) +
geom_point(size = 3) +
theme_minimal() +
labs(title = "Hasil K-Means Clustering", x = "Pendapatan", y = "Pengeluaran")
library(cluster)
pam_result <- pam(data_scaled, k = 2)
# Visualisasi
clusplot(pam_result, main = "K-Medoids Clustering (PAM)")
Hasil analisis menggunakan metode Hierarchical Clustering dan K-Means sama-sama menunjukkan bahwa data terbagi menjadi dua kelompok utama. Kelompok pertama terdiri dari individu dengan pendapatan rata-rata sekitar lima juta rupiah, pengeluaran sekitar tiga juta rupiah, dan usia relatif muda, yaitu sekitar 25 tahun. Kelompok ini dapat diinterpretasikan sebagai kelompok masyarakat muda dengan kondisi ekonomi menengah ke bawah yang cenderung memiliki daya beli dan kebutuhan finansial yang masih terbatas. Sementara itu, kelompok kedua memiliki karakteristik pendapatan yang lebih tinggi, yaitu sekitar sepuluh juta rupiah, dengan pengeluaran sekitar enam juta rupiah dan rata-rata usia sekitar 40 tahun. Kelompok ini mencerminkan individu yang sudah lebih mapan secara ekonomi dan memiliki pola pengeluaran yang lebih besar seiring dengan peningkatan pendapatan dan tanggung jawab finansial.