# Install dan load paket yang diperlukan
#install.packages(c("readxl", "ggplot2", "cluster", "factoextra", "dbscan", "e1071", "tidyr", "dplyr", "corrplot", "psych"))
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(cluster)
## Warning: package 'cluster' was built under R version 4.4.3
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(dbscan)
## Warning: package 'dbscan' was built under R version 4.4.3
##
## Attaching package: 'dbscan'
## The following object is masked from 'package:stats':
##
## as.dendrogram
library(e1071)
## Warning: package 'e1071' was built under R version 4.4.3
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
##
## 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(corrplot)
## Warning: package 'corrplot' was built under R version 4.4.3
## corrplot 0.95 loaded
library(psych)
## Warning: package 'psych' was built under R version 4.4.3
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
# Membaca data
data <- read_excel("C:/Users/nachla/ANMUL/DATASET ANMUL KEL 3.xlsx")
## New names:
## • `` -> `...8`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
# Membersihkan data: pilih kolom yang relevan dan hapus baris total "Lampung"
data <- data %>%
select(`Kabupaten/Kota`, `Year`,
`Tenaga Kesehatan - Perawat`,
`Tenaga Kesehatan - Bidan`,
`Tenaga Kesehatan - Tenaga Kefarmasian`,
`Tenaga Kesehatan - Tenaga Kesehatan Masyarakat`,
`Tenaga Kesehatan - Tenaga Kesehatan Lingkungan`,
`Tenaga Kesehatan - Tenaga Gizi`) %>%
filter(`Kabupaten/Kota` != "Lampung")
# Cek missing values
print("Jumlah missing values:")
## [1] "Jumlah missing values:"
print(sum(is.na(data)))
## [1] 0
# Mengisi missing values dengan rata-rata per kolom (jika ada)
data <- data %>%
mutate(across(where(is.numeric), ~ifelse(is.na(.), mean(., na.rm = TRUE), .)))
# Fungsi untuk analisis klaster per tahun atau seluruh tahun
perform_clustering <- function(data_subset, period_name) {
cat("\n=== Analisis Klaster untuk", period_name, "===\n")
# Pilih kolom numerik untuk analisis
data_numeric <- data_subset %>%
select(`Tenaga Kesehatan - Perawat`,
`Tenaga Kesehatan - Bidan`,
`Tenaga Kesehatan - Tenaga Kefarmasian`,
`Tenaga Kesehatan - Tenaga Kesehatan Masyarakat`,
`Tenaga Kesehatan - Tenaga Kesehatan Lingkungan`,
`Tenaga Kesehatan - Tenaga Gizi`)
# Analisis Statistik Deskriptif
summary_stats <- data.frame(
Kategori = colnames(data_numeric),
Mean = sapply(data_numeric, mean, na.rm = TRUE),
Median = sapply(data_numeric, median, na.rm = TRUE),
Min = sapply(data_numeric, min, na.rm = TRUE),
Max = sapply(data_numeric, max, na.rm = TRUE),
SD = sapply(data_numeric, sd, na.rm = TRUE)
)
print("Statistik Deskriptif:")
print(summary_stats)
# Visualisasi: Boxplot
data_long <- pivot_longer(data_subset,
cols = c("Tenaga Kesehatan - Perawat",
"Tenaga Kesehatan - Bidan",
"Tenaga Kesehatan - Tenaga Kefarmasian",
"Tenaga Kesehatan - Tenaga Kesehatan Masyarakat",
"Tenaga Kesehatan - Tenaga Kesehatan Lingkungan",
"Tenaga Kesehatan - Tenaga Gizi"),
names_to = "Kategori",
values_to = "Jumlah")
boxplot <- ggplot(data_long, aes(x = Kategori, y = Jumlah, fill = Kategori)) +
geom_boxplot() +
labs(title = paste("Distribusi Tenaga Kesehatan -", period_name),
x = "Kategori", y = "Jumlah") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Save boxplot to file to avoid interactive device conflicts
ggsave(paste0("boxplot_", period_name, ".png"), plot = boxplot, width = 8, height = 6)
# Optionally display in RStudio (comment out if causing issues)
# print(boxplot)
# Visualisasi: Heatmap Korelasi
# Clear all graphics devices to prevent invalid state
while (!is.null(dev.list())) dev.off()
# Initialize PNG device
png(paste0("corrplot_", period_name, ".png"), width = 800, height = 600)
tryCatch({
corr_matrix <- cor(data_numeric, use = "complete.obs")
corrplot(corr_matrix, method = "color", type = "upper",
title = paste("Heatmap Korelasi -", period_name),
tl.cex = 0.6, mar = c(0, 0, 4, 0))
}, error = function(e) {
cat("Error in corrplot for", period_name, ":", conditionMessage(e), "\n")
}, finally = {
dev.off() # Ensure device is closed even if error occurs
})
# Pra-pemrosesan: Normalisasi
data_normalized <- scale(data_numeric)
# PCA untuk reduksi dimensi (opsional untuk visualisasi)
pca_result <- prcomp(data_normalized, scale. = TRUE)
print("Varian PCA:")
print(summary(pca_result))
pca_plot <- fviz_pca_ind(pca_result, geom = "point",
title = paste("PCA Plot -", period_name)) +
theme_minimal()
ggsave(paste0("pca_plot_", period_name, ".png"), plot = pca_plot, width = 8, height = 6)
# K-Means Clustering
set.seed(123)
wss <- numeric(10)
for (i in 1:10) wss[i] <- sum(kmeans(data_normalized, centers = i, nstart = 25)$tot.withinss)
# Save elbow plot
png(paste0("elbow_plot_", period_name, ".png"), width = 600, height = 400)
plot(1:10, wss, type = "b",
xlab = "Jumlah Klaster",
ylab = "Within-Cluster Sum of Squares",
main = paste("Elbow Method -", period_name))
dev.off()
kmeans_result <- kmeans(data_normalized, centers = 4, nstart = 25)
data_subset$KMeans_Cluster <- kmeans_result$cluster
silhouette_kmeans <- silhouette(kmeans_result$cluster, dist(data_normalized))
kmeans_sil_score <- mean(silhouette_kmeans[, 3])
print(paste("Silhouette Score K-Means:", kmeans_sil_score))
silhouette_kmeans_plot <- fviz_silhouette(silhouette_kmeans) +
labs(title = paste("Silhouette Plot K-Means -", period_name))
ggsave(paste0("silhouette_kmeans_", period_name, ".png"), plot = silhouette_kmeans_plot, width = 6, height = 4)
# Hierarchical Clustering
dist_matrix <- dist(data_normalized, method = "euclidean")
hclust_result <- hclust(dist_matrix, method = "ward.D2")
# Save dendrogram
png(paste0("dendrogram_", period_name, ".png"), width = 600, height = 400)
plot(hclust_result, main = paste("Dendrogram Hierarchical -", period_name))
dev.off()
data_subset$HCluster <- cutree(hclust_result, k = 4)
silhouette_hclust <- silhouette(data_subset$HCluster, dist_matrix)
hclust_sil_score <- mean(silhouette_hclust[, 3])
print(paste("Silhouette Score Hierarchical:", hclust_sil_score))
silhouette_hclust_plot <- fviz_silhouette(silhouette_hclust) +
labs(title = paste("Silhouette Plot Hierarchical -", period_name))
ggsave(paste0("silhouette_hclust_", period_name, ".png"), plot = silhouette_hclust_plot, width = 6, height = 4)
# DBSCAN
# Save kNN distance plot
png(paste0("knn_plot_", period_name, ".png"), width = 600, height = 400)
kNNdistplot(data_normalized, k = 5)
abline(h = 0.7, col = "red")
dev.off()
dbscan_result <- dbscan(data_normalized, eps = 0.7, minPts = 3)
data_subset$DBSCAN_Cluster <- dbscan_result$cluster
print("Distribusi klaster DBSCAN:")
print(table(dbscan_result$cluster))
non_outlier_indices <- which(dbscan_result$cluster != 0)
num_clusters <- length(unique(dbscan_result$cluster[dbscan_result$cluster != 0]))
if (num_clusters > 1 && length(non_outlier_indices) > 1) {
silhouette_dbscan <- silhouette(dbscan_result$cluster[non_outlier_indices],
dist(data_normalized[non_outlier_indices, ]))
dbscan_sil_score <- mean(silhouette_dbscan[, 3])
print(paste("Silhouette Score DBSCAN:", dbscan_sil_score))
silhouette_dbscan_plot <- fviz_silhouette(silhouette_dbscan) +
labs(title = paste("Silhouette Plot DBSCAN -", period_name))
ggsave(paste0("silhouette_dbscan_", period_name, ".png"), plot = silhouette_dbscan_plot, width = 6, height = 4)
} else {
print("Tidak cukup klaster non-outlier untuk silhouette plot DBSCAN")
dbscan_sil_score <- NA
}
# Fuzzy C-Means
set.seed(123)
fcm_result <- cmeans(data_normalized, centers = 4, iter.max = 100, m = 2)
data_subset$Fuzzy_Cluster <- max.col(fcm_result$membership)
silhouette_fcm <- silhouette(data_subset$Fuzzy_Cluster, dist_matrix)
fcm_sil_score <- mean(silhouette_fcm[, 3])
print(paste("Silhouette Score Fuzzy C-Means:", fcm_sil_score))
silhouette_fcm_plot <- fviz_silhouette(silhouette_fcm) +
labs(title = paste("Silhouette Plot Fuzzy C-Means -", period_name))
ggsave(paste0("silhouette_fcm_", period_name, ".png"), plot = silhouette_fcm_plot, width = 6, height = 4)
# Visualisasi Klaster (menggunakan PCA untuk 2D)
kmeans_cluster_plot <- fviz_cluster(list(data = data_normalized, cluster = kmeans_result$cluster),
geom = "point", main = paste("K-Means Clustering -", period_name))
ggsave(paste0("cluster_kmeans_", period_name, ".png"), plot = kmeans_cluster_plot, width = 6, height = 4)
hclust_cluster_plot <- fviz_cluster(list(data = data_normalized, cluster = data_subset$HCluster),
geom = "point", main = paste("Hierarchical Clustering -", period_name))
ggsave(paste0("cluster_hclust_", period_name, ".png"), plot = hclust_cluster_plot, width = 6, height = 4)
dbscan_cluster_plot <- fviz_cluster(list(data = data_normalized, cluster = dbscan_result$cluster),
geom = "point", main = paste("DBSCAN Clustering -", period_name))
ggsave(paste0("cluster_dbscan_", period_name, ".png"), plot = dbscan_cluster_plot, width = 6, height = 4)
fcm_cluster_plot <- fviz_cluster(list(data = data_normalized, cluster = data_subset$Fuzzy_Cluster),
geom = "point", main = paste("Fuzzy C-Means Clustering -", period_name))
ggsave(paste0("cluster_fcm_", period_name, ".png"), plot = fcm_cluster_plot, width = 6, height = 4)
# Menampilkan daerah per klaster
cluster_assignments <- data_subset %>%
select(`Kabupaten/Kota`, KMeans_Cluster, HCluster, DBSCAN_Cluster, Fuzzy_Cluster)
# K-Means
cat("\nDaerah per Klaster K-Means:\n")
kmeans_regions <- data_subset %>%
group_by(KMeans_Cluster) %>%
summarise(Daerah = paste(`Kabupaten/Kota`, collapse = ", "))
print(kmeans_regions)
# Hierarchical
cat("\nDaerah per Klaster Hierarchical:\n")
hclust_regions <- data_subset %>%
group_by(HCluster) %>%
summarise(Daerah = paste(`Kabupaten/Kota`, collapse = ", "))
print(hclust_regions)
# DBSCAN
cat("\nDaerah per Klaster DBSCAN:\n")
dbscan_regions <- data_subset %>%
group_by(DBSCAN_Cluster) %>%
summarise(Daerah = paste(`Kabupaten/Kota`, collapse = ", "))
print(dbscan_regions)
# Fuzzy C-Means
cat("\nDaerah per Klaster Fuzzy C-Means:\n")
fcm_regions <- data_subset %>%
group_by(Fuzzy_Cluster) %>%
summarise(Daerah = paste(`Kabupaten/Kota`, collapse = ", "))
print(fcm_regions)
# Simpan semua penugasan klaster ke CSV
write.csv(cluster_assignments, paste0("cluster_assignments_", period_name, ".csv"), row.names = FALSE)
# Ringkasan Klaster
summary_kmeans <- data_subset %>%
group_by(KMeans_Cluster) %>%
summarise(
Mean_Perawat = mean(`Tenaga Kesehatan - Perawat`, na.rm = TRUE),
Mean_Bidan = mean(`Tenaga Kesehatan - Bidan`, na.rm = TRUE),
Mean_Tenaga_Kefarmasian = mean(`Tenaga Kesehatan - Tenaga Kefarmasian`, na.rm = TRUE),
Count = n()
) %>%
mutate(Method = "K-Means", Silhouette_Score = kmeans_sil_score)
summary_hclust <- data_subset %>%
group_by(HCluster) %>%
summarise(
Mean_Perawat = mean(`Tenaga Kesehatan - Perawat`, na.rm = TRUE),
Mean_Bidan = mean(`Tenaga Kesehatan - Bidan`, na.rm = TRUE),
Mean_Tenaga_Kefarmasian = mean(`Tenaga Kesehatan - Tenaga Kefarmasian`, na.rm = TRUE),
Count = n()
) %>%
mutate(Method = "Hierarchical", Silhouette_Score = hclust_sil_score)
summary_dbscan <- data_subset %>%
group_by(DBSCAN_Cluster) %>%
summarise(
Mean_Perawat = mean(`Tenaga Kesehatan - Perawat`, na.rm = TRUE),
Mean_Bidan = mean(`Tenaga Kesehatan - Bidan`, na.rm = TRUE),
Mean_Tenaga_Kefarmasian = mean(`Tenaga Kesehatan - Tenaga Kefarmasian`, na.rm = TRUE),
Count = n()
) %>%
mutate(Method = "DBSCAN", Silhouette_Score = ifelse(exists("dbscan_sil_score"), dbscan_sil_score, NA))
summary_fcm <- data_subset %>%
group_by(Fuzzy_Cluster) %>%
summarise(
Mean_Perawat = mean(`Tenaga Kesehatan - Perawat`, na.rm = TRUE),
Mean_Bidan = mean(`Tenaga Kesehatan - Bidan`, na.rm = TRUE),
Mean_Tenaga_Kefarmasian = mean(`Tenaga Kesehatan - Tenaga Kefarmasian`, na.rm = TRUE),
Count = n()
) %>%
mutate(Method = "Fuzzy C-Means", Silhouette_Score = fcm_sil_score)
combined_summary <- bind_rows(summary_kmeans, summary_hclust, summary_dbscan, summary_fcm)
print("Ringkasan Klaster:")
print(combined_summary)
# Simpan ringkasan
write.csv(combined_summary, paste0("ringkasan_klaster_", period_name, ".csv"), row.names = FALSE)
return(data_subset)
}
# Analisis per tahun (2020-2024)
for (year in 2020:2024) {
data_year <- data %>% filter(Year == year)
perform_clustering(data_year, paste("Tahun", year))
}
##
## === Analisis Klaster untuk Tahun 2020 ===
## [1] "Statistik Deskriptif:"
## Kategori
## Tenaga Kesehatan - Perawat Tenaga Kesehatan - Perawat
## Tenaga Kesehatan - Bidan Tenaga Kesehatan - Bidan
## Tenaga Kesehatan - Tenaga Kefarmasian Tenaga Kesehatan - Tenaga Kefarmasian
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat Tenaga Kesehatan - Tenaga Kesehatan Masyarakat
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan Tenaga Kesehatan - Tenaga Kesehatan Lingkungan
## Tenaga Kesehatan - Tenaga Gizi Tenaga Kesehatan - Tenaga Gizi
## Mean Median Min Max
## Tenaga Kesehatan - Perawat 704.93333 467 189 2992
## Tenaga Kesehatan - Bidan 616.86667 554 291 1044
## Tenaga Kesehatan - Tenaga Kefarmasian 59.26667 42 17 288
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 48.53333 34 15 141
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 33.80000 24 11 79
## Tenaga Kesehatan - Tenaga Gizi 35.86667 24 13 123
## SD
## Tenaga Kesehatan - Perawat 699.54878
## Tenaga Kesehatan - Bidan 240.39161
## Tenaga Kesehatan - Tenaga Kefarmasian 67.43088
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 34.93640
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 19.15799
## Tenaga Kesehatan - Tenaga Gizi 27.94859
## [1] "Varian PCA:"
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 2.2588 0.8201 0.30836 0.29323 0.1784 0.11093
## Proportion of Variance 0.8504 0.1121 0.01585 0.01433 0.0053 0.00205
## Cumulative Proportion 0.8504 0.9625 0.97831 0.99265 0.9980 1.00000
## [1] "Silhouette Score K-Means: 0.385976559887271"
## cluster size ave.sil.width
## 1 1 9 0.50
## 2 2 2 0.27
## 3 3 1 0.00
## 4 4 3 0.24
## [1] "Silhouette Score Hierarchical: 0.385976559887271"
## cluster size ave.sil.width
## 1 1 9 0.50
## 2 2 3 0.24
## 3 3 2 0.27
## 4 4 1 0.00
## [1] "Distribusi klaster DBSCAN:"
##
## 0 1
## 10 5
## [1] "Tidak cukup klaster non-outlier untuk silhouette plot DBSCAN"
## [1] "Silhouette Score Fuzzy C-Means: 0.264002121973484"
## cluster size ave.sil.width
## 1 1 5 0.27
## 2 2 4 0.50
## 3 3 1 0.00
## 4 4 5 0.12
##
## Daerah per Klaster K-Means:
## # A tibble: 4 × 2
## KMeans_Cluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Tanggamus, Tulangbawang, Pesawaran, Pringsewu, …
## 2 2 Lampung Timur, Way Kanan
## 3 3 Kota Bandar Lampung
## 4 4 Lampung Selatan, Lampung Tengah, Lampung Utara
##
## Daerah per Klaster Hierarchical:
## # A tibble: 4 × 2
## HCluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Tanggamus, Tulangbawang, Pesawaran, Pringsewu, Mesuji…
## 2 2 Lampung Selatan, Lampung Tengah, Lampung Utara
## 3 3 Lampung Timur, Way Kanan
## 4 4 Kota Bandar Lampung
##
## Daerah per Klaster DBSCAN:
## # A tibble: 2 × 2
## DBSCAN_Cluster Daerah
## <int> <chr>
## 1 0 Lampung Barat, Tanggamus, Lampung Selatan, Lampung Timur, Lamp…
## 2 1 Tulangbawang, Pesawaran, Mesuji, Tulang Bawang Barat, Pesisir …
##
## Daerah per Klaster Fuzzy C-Means:
## # A tibble: 4 × 2
## Fuzzy_Cluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Mesuji, Tulang Bawang Barat, Pesisir Barat, Kota…
## 2 2 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
## 3 3 Kota Bandar Lampung
## 4 4 Tanggamus, Way Kanan, Tulangbawang, Pesawaran, Pringsewu
## [1] "Ringkasan Klaster:"
## # A tibble: 14 × 10
## KMeans_Cluster Mean_Perawat Mean_Bidan Mean_Tenaga_Kefarmasian Count Method
## <int> <dbl> <dbl> <dbl> <int> <chr>
## 1 1 431. 446. 30.4 9 K-Means
## 2 2 488 796. 56.5 2 K-Means
## 3 3 2992 906 288 1 K-Means
## 4 4 908. 915 71.3 3 K-Means
## 5 NA 431. 446. 30.4 9 Hierarc…
## 6 NA 908. 915 71.3 3 Hierarc…
## 7 NA 488 796. 56.5 2 Hierarc…
## 8 NA 2992 906 288 1 Hierarc…
## 9 NA 919. 711. 77.2 10 DBSCAN
## 10 NA 276. 428 23.4 5 DBSCAN
## 11 NA 382. 377. 29.8 5 Fuzzy C…
## 12 NA 828 904. 70.5 4 Fuzzy C…
## 13 NA 2992 906 288 1 Fuzzy C…
## 14 NA 472. 568. 34 5 Fuzzy C…
## # ℹ 4 more variables: Silhouette_Score <dbl>, HCluster <int>,
## # DBSCAN_Cluster <int>, Fuzzy_Cluster <int>
##
## === Analisis Klaster untuk Tahun 2021 ===
## [1] "Statistik Deskriptif:"
## Kategori
## Tenaga Kesehatan - Perawat Tenaga Kesehatan - Perawat
## Tenaga Kesehatan - Bidan Tenaga Kesehatan - Bidan
## Tenaga Kesehatan - Tenaga Kefarmasian Tenaga Kesehatan - Tenaga Kefarmasian
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat Tenaga Kesehatan - Tenaga Kesehatan Masyarakat
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan Tenaga Kesehatan - Tenaga Kesehatan Lingkungan
## Tenaga Kesehatan - Tenaga Gizi Tenaga Kesehatan - Tenaga Gizi
## Mean Median Min Max
## Tenaga Kesehatan - Perawat 686.80000 482 188 2362
## Tenaga Kesehatan - Bidan 612.40000 516 318 1070
## Tenaga Kesehatan - Tenaga Kefarmasian 99.20000 78 35 346
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 54.33333 47 19 126
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 38.00000 36 18 72
## Tenaga Kesehatan - Tenaga Gizi 38.66667 32 19 102
## SD
## Tenaga Kesehatan - Perawat 556.54241
## Tenaga Kesehatan - Bidan 243.29488
## Tenaga Kesehatan - Tenaga Kefarmasian 78.32734
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 32.33014
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 19.12366
## Tenaga Kesehatan - Tenaga Gizi 21.81633
## [1] "Varian PCA:"
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 2.2328 0.8422 0.39681 0.29824 0.20376 0.13113
## Proportion of Variance 0.8309 0.1182 0.02624 0.01482 0.00692 0.00287
## Cumulative Proportion 0.8309 0.9492 0.97539 0.99021 0.99713 1.00000
## [1] "Silhouette Score K-Means: 0.322240837682808"
## cluster size ave.sil.width
## 1 1 1 0.00
## 2 2 5 0.05
## 3 3 5 0.56
## 4 4 4 0.44
## [1] "Silhouette Score Hierarchical: 0.322240837682808"
## cluster size ave.sil.width
## 1 1 5 0.56
## 2 2 5 0.05
## 3 3 4 0.44
## 4 4 1 0.00
## [1] "Distribusi klaster DBSCAN:"
##
## 0 1
## 12 3
## [1] "Tidak cukup klaster non-outlier untuk silhouette plot DBSCAN"
## [1] "Silhouette Score Fuzzy C-Means: 0.322240837682808"
## cluster size ave.sil.width
## 1 1 5 0.05
## 2 2 4 0.44
## 3 3 1 0.00
## 4 4 5 0.56
##
## Daerah per Klaster K-Means:
## # A tibble: 4 × 2
## KMeans_Cluster Daerah
## <int> <chr>
## 1 1 Kota Bandar Lampung
## 2 2 Tanggamus, Way Kanan, Tulangbawang, Pringsewu, Kota Metro
## 3 3 Lampung Barat, Pesawaran, Mesuji, Tulang Bawang Barat, Pesisir…
## 4 4 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
##
## Daerah per Klaster Hierarchical:
## # A tibble: 4 × 2
## HCluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Pesawaran, Mesuji, Tulang Bawang Barat, Pesisir Barat
## 2 2 Tanggamus, Way Kanan, Tulangbawang, Pringsewu, Kota Metro
## 3 3 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
## 4 4 Kota Bandar Lampung
##
## Daerah per Klaster DBSCAN:
## # A tibble: 2 × 2
## DBSCAN_Cluster Daerah
## <int> <chr>
## 1 0 Lampung Barat, Tanggamus, Lampung Selatan, Lampung Timur, Lamp…
## 2 1 Mesuji, Tulang Bawang Barat, Pesisir Barat
##
## Daerah per Klaster Fuzzy C-Means:
## # A tibble: 4 × 2
## Fuzzy_Cluster Daerah
## <int> <chr>
## 1 1 Tanggamus, Way Kanan, Tulangbawang, Pringsewu, Kota Metro
## 2 2 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
## 3 3 Kota Bandar Lampung
## 4 4 Lampung Barat, Pesawaran, Mesuji, Tulang Bawang Barat, Pesisir …
## [1] "Ringkasan Klaster:"
## # A tibble: 14 × 10
## KMeans_Cluster Mean_Perawat Mean_Bidan Mean_Tenaga_Kefarmasian Count Method
## <int> <dbl> <dbl> <dbl> <int> <chr>
## 1 1 2362 871 346 1 K-Means
## 2 2 641. 552 77.2 5 K-Means
## 3 3 277. 386. 52 5 K-Means
## 4 4 838. 906 124 4 K-Means
## 5 NA 277. 386. 52 5 Hierarc…
## 6 NA 641. 552 77.2 5 Hierarc…
## 7 NA 838. 906 124 4 Hierarc…
## 8 NA 2362 871 346 1 Hierarc…
## 9 NA 806. 670. 114. 12 DBSCAN
## 10 NA 211 380. 42 3 DBSCAN
## 11 NA 641. 552 77.2 5 Fuzzy C…
## 12 NA 838. 906 124 4 Fuzzy C…
## 13 NA 2362 871 346 1 Fuzzy C…
## 14 NA 277. 386. 52 5 Fuzzy C…
## # ℹ 4 more variables: Silhouette_Score <dbl>, HCluster <int>,
## # DBSCAN_Cluster <int>, Fuzzy_Cluster <int>
##
## === Analisis Klaster untuk Tahun 2022 ===
## [1] "Statistik Deskriptif:"
## Kategori
## Tenaga Kesehatan - Perawat Tenaga Kesehatan - Perawat
## Tenaga Kesehatan - Bidan Tenaga Kesehatan - Bidan
## Tenaga Kesehatan - Tenaga Kefarmasian Tenaga Kesehatan - Tenaga Kefarmasian
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat Tenaga Kesehatan - Tenaga Kesehatan Masyarakat
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan Tenaga Kesehatan - Tenaga Kesehatan Lingkungan
## Tenaga Kesehatan - Tenaga Gizi Tenaga Kesehatan - Tenaga Gizi
## Mean Median Min Max
## Tenaga Kesehatan - Perawat 843.13333 565 210 3466
## Tenaga Kesehatan - Bidan 742.26667 631 389 1286
## Tenaga Kesehatan - Tenaga Kefarmasian 140.40000 90 32 659
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 67.66667 58 18 184
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 49.13333 45 22 122
## Tenaga Kesehatan - Tenaga Gizi 52.60000 44 20 155
## SD
## Tenaga Kesehatan - Perawat 802.83737
## Tenaga Kesehatan - Bidan 286.21557
## Tenaga Kesehatan - Tenaga Kefarmasian 155.14132
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 43.85474
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 25.56467
## Tenaga Kesehatan - Tenaga Gizi 32.94107
## [1] "Varian PCA:"
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 2.2889 0.76794 0.33825 0.21399 0.09302 0.04962
## Proportion of Variance 0.8732 0.09829 0.01907 0.00763 0.00144 0.00041
## Cumulative Proportion 0.8732 0.97145 0.99052 0.99815 0.99959 1.00000
## [1] "Silhouette Score K-Means: 0.294635313553713"
## cluster size ave.sil.width
## 1 1 4 0.46
## 2 2 4 0.48
## 3 3 1 0.00
## 4 4 6 0.11
## [1] "Silhouette Score Hierarchical: 0.275000816568558"
## cluster size ave.sil.width
## 1 1 9 0.29
## 2 2 3 0.21
## 3 3 2 0.43
## 4 4 1 0.00
## [1] "Distribusi klaster DBSCAN:"
##
## 0 1
## 11 4
## [1] "Tidak cukup klaster non-outlier untuk silhouette plot DBSCAN"
## [1] "Silhouette Score Fuzzy C-Means: 0.294635313553713"
## cluster size ave.sil.width
## 1 1 6 0.11
## 2 2 4 0.48
## 3 3 1 0.00
## 4 4 4 0.46
##
## Daerah per Klaster K-Means:
## # A tibble: 4 × 2
## KMeans_Cluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Pesawaran, Mesuji, Pesisir Barat
## 2 2 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
## 3 3 Kota Bandar Lampung
## 4 4 Tanggamus, Way Kanan, Tulangbawang, Pringsewu, Tulang Bawang B…
##
## Daerah per Klaster Hierarchical:
## # A tibble: 4 × 2
## HCluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Tanggamus, Tulangbawang, Pesawaran, Pringsewu, Mesuji…
## 2 2 Lampung Selatan, Lampung Tengah, Lampung Utara
## 3 3 Lampung Timur, Way Kanan
## 4 4 Kota Bandar Lampung
##
## Daerah per Klaster DBSCAN:
## # A tibble: 2 × 2
## DBSCAN_Cluster Daerah
## <int> <chr>
## 1 0 Tanggamus, Lampung Selatan, Lampung Timur, Lampung Tengah, Lam…
## 2 1 Lampung Barat, Pesawaran, Mesuji, Pesisir Barat
##
## Daerah per Klaster Fuzzy C-Means:
## # A tibble: 4 × 2
## Fuzzy_Cluster Daerah
## <int> <chr>
## 1 1 Tanggamus, Way Kanan, Tulangbawang, Pringsewu, Tulang Bawang Ba…
## 2 2 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
## 3 3 Kota Bandar Lampung
## 4 4 Lampung Barat, Pesawaran, Mesuji, Pesisir Barat
## [1] "Ringkasan Klaster:"
## # A tibble: 14 × 10
## KMeans_Cluster Mean_Perawat Mean_Bidan Mean_Tenaga_Kefarmasian Count Method
## <int> <dbl> <dbl> <dbl> <int> <chr>
## 1 1 322. 502. 44.2 4 K-Means
## 2 2 972 1062. 156. 4 K-Means
## 3 3 3466 1188 659 1 K-Means
## 4 4 668. 614. 108. 6 K-Means
## 5 NA 533. 542. 81.6 9 Hierarc…
## 6 NA 1060. 1091. 168. 3 Hierarc…
## 7 NA 600. 898. 104 2 Hierarc…
## 8 NA 3466 1188 659 1 Hierarc…
## 9 NA 1033. 829. 175. 11 DBSCAN
## 10 NA 322. 502. 44.2 4 DBSCAN
## 11 NA 668. 614. 108. 6 Fuzzy C…
## 12 NA 972 1062. 156. 4 Fuzzy C…
## 13 NA 3466 1188 659 1 Fuzzy C…
## 14 NA 322. 502. 44.2 4 Fuzzy C…
## # ℹ 4 more variables: Silhouette_Score <dbl>, HCluster <int>,
## # DBSCAN_Cluster <int>, Fuzzy_Cluster <int>
##
## === Analisis Klaster untuk Tahun 2023 ===
## [1] "Statistik Deskriptif:"
## Kategori
## Tenaga Kesehatan - Perawat Tenaga Kesehatan - Perawat
## Tenaga Kesehatan - Bidan Tenaga Kesehatan - Bidan
## Tenaga Kesehatan - Tenaga Kefarmasian Tenaga Kesehatan - Tenaga Kefarmasian
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat Tenaga Kesehatan - Tenaga Kesehatan Masyarakat
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan Tenaga Kesehatan - Tenaga Kesehatan Lingkungan
## Tenaga Kesehatan - Tenaga Gizi Tenaga Kesehatan - Tenaga Gizi
## Mean Median Min Max
## Tenaga Kesehatan - Perawat 783.93333 613 217 2603
## Tenaga Kesehatan - Bidan 725.73333 596 175 1395
## Tenaga Kesehatan - Tenaga Kefarmasian 108.73333 100 27 350
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 64.20000 45 21 124
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 48.33333 47 19 73
## Tenaga Kesehatan - Tenaga Gizi 51.20000 48 18 85
## SD
## Tenaga Kesehatan - Perawat 621.82226
## Tenaga Kesehatan - Bidan 368.04900
## Tenaga Kesehatan - Tenaga Kefarmasian 84.93734
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 40.11092
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 17.33150
## Tenaga Kesehatan - Tenaga Gizi 20.67849
## [1] "Varian PCA:"
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 2.0766 0.8845 0.73586 0.51983 0.26868 0.14637
## Proportion of Variance 0.7187 0.1304 0.09025 0.04504 0.01203 0.00357
## Cumulative Proportion 0.7187 0.8491 0.93936 0.98440 0.99643 1.00000
## [1] "Silhouette Score K-Means: 0.323720695214485"
## cluster size ave.sil.width
## 1 1 1 0.00
## 2 2 5 0.06
## 3 3 4 0.39
## 4 4 5 0.60
## [1] "Silhouette Score Hierarchical: 0.323720695214485"
## cluster size ave.sil.width
## 1 1 5 0.06
## 2 2 4 0.39
## 3 3 5 0.60
## 4 4 1 0.00
## [1] "Distribusi klaster DBSCAN:"
##
## 0 1
## 12 3
## [1] "Tidak cukup klaster non-outlier untuk silhouette plot DBSCAN"
## [1] "Silhouette Score Fuzzy C-Means: 0.323720695214485"
## cluster size ave.sil.width
## 1 1 5 0.06
## 2 2 4 0.39
## 3 3 1 0.00
## 4 4 5 0.60
##
## Daerah per Klaster K-Means:
## # A tibble: 4 × 2
## KMeans_Cluster Daerah
## <int> <chr>
## 1 1 Kota Bandar Lampung
## 2 2 Lampung Barat, Lampung Selatan, Lampung Timur, Pringsewu, Kota…
## 3 3 Tanggamus, Lampung Tengah, Lampung Utara, Way Kanan
## 4 4 Tulangbawang, Pesawaran, Mesuji, Tulang Bawang Barat, Pesisir …
##
## Daerah per Klaster Hierarchical:
## # A tibble: 4 × 2
## HCluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Lampung Selatan, Lampung Timur, Pringsewu, Kota Metro
## 2 2 Tanggamus, Lampung Tengah, Lampung Utara, Way Kanan
## 3 3 Tulangbawang, Pesawaran, Mesuji, Tulang Bawang Barat, Pesisir Barat
## 4 4 Kota Bandar Lampung
##
## Daerah per Klaster DBSCAN:
## # A tibble: 2 × 2
## DBSCAN_Cluster Daerah
## <int> <chr>
## 1 0 Lampung Barat, Tanggamus, Lampung Selatan, Lampung Timur, Lamp…
## 2 1 Tulangbawang, Pesawaran, Tulang Bawang Barat
##
## Daerah per Klaster Fuzzy C-Means:
## # A tibble: 4 × 2
## Fuzzy_Cluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Lampung Selatan, Lampung Timur, Pringsewu, Kota …
## 2 2 Tanggamus, Lampung Tengah, Lampung Utara, Way Kanan
## 3 3 Kota Bandar Lampung
## 4 4 Tulangbawang, Pesawaran, Mesuji, Tulang Bawang Barat, Pesisir B…
## [1] "Ringkasan Klaster:"
## # A tibble: 14 × 10
## KMeans_Cluster Mean_Perawat Mean_Bidan Mean_Tenaga_Kefarmasian Count Method
## <int> <dbl> <dbl> <dbl> <int> <chr>
## 1 1 2603 1015 350 1 K-Means
## 2 2 700. 512. 119. 5 K-Means
## 3 3 1002 1214. 124. 4 K-Means
## 4 4 329. 492. 38.2 5 K-Means
## 5 NA 700. 512. 119. 5 Hierarc…
## 6 NA 1002 1214. 124. 4 Hierarc…
## 7 NA 329. 492. 38.2 5 Hierarc…
## 8 NA 2603 1015 350 1 Hierarc…
## 9 NA 879. 768. 125. 12 DBSCAN
## 10 NA 402 556. 42.3 3 DBSCAN
## 11 NA 700. 512. 119. 5 Fuzzy C…
## 12 NA 1002 1214. 124. 4 Fuzzy C…
## 13 NA 2603 1015 350 1 Fuzzy C…
## 14 NA 329. 492. 38.2 5 Fuzzy C…
## # ℹ 4 more variables: Silhouette_Score <dbl>, HCluster <int>,
## # DBSCAN_Cluster <int>, Fuzzy_Cluster <int>
##
## === Analisis Klaster untuk Tahun 2024 ===
## [1] "Statistik Deskriptif:"
## Kategori
## Tenaga Kesehatan - Perawat Tenaga Kesehatan - Perawat
## Tenaga Kesehatan - Bidan Tenaga Kesehatan - Bidan
## Tenaga Kesehatan - Tenaga Kefarmasian Tenaga Kesehatan - Tenaga Kefarmasian
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat Tenaga Kesehatan - Tenaga Kesehatan Masyarakat
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan Tenaga Kesehatan - Tenaga Kesehatan Lingkungan
## Tenaga Kesehatan - Tenaga Gizi Tenaga Kesehatan - Tenaga Gizi
## Mean Median Min Max
## Tenaga Kesehatan - Perawat 861.20000 558 230 3480
## Tenaga Kesehatan - Bidan 744.86667 642 381 1357
## Tenaga Kesehatan - Tenaga Kefarmasian 144.80000 84 39 571
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 70.13333 47 29 194
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 50.40000 40 21 116
## Tenaga Kesehatan - Tenaga Gizi 48.26667 40 22 112
## SD
## Tenaga Kesehatan - Perawat 812.00732
## Tenaga Kesehatan - Bidan 307.14186
## Tenaga Kesehatan - Tenaga Kefarmasian 133.22012
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 47.02411
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 24.88775
## Tenaga Kesehatan - Tenaga Gizi 24.86956
## [1] "Varian PCA:"
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 2.3050 0.68698 0.36814 0.23339 0.13813 0.07686
## Proportion of Variance 0.8855 0.07866 0.02259 0.00908 0.00318 0.00098
## Cumulative Proportion 0.8855 0.96417 0.98676 0.99584 0.99902 1.00000
## [1] "Silhouette Score K-Means: 0.362402089350725"
## cluster size ave.sil.width
## 1 1 1 0.00
## 2 2 2 0.14
## 3 3 8 0.39
## 4 4 4 0.50
## [1] "Silhouette Score Hierarchical: 0.425294065095144"
## cluster size ave.sil.width
## 1 1 9 0.48
## 2 2 4 0.52
## 3 3 1 0.00
## 4 4 1 0.00
## [1] "Distribusi klaster DBSCAN:"
##
## 0 1
## 10 5
## [1] "Tidak cukup klaster non-outlier untuk silhouette plot DBSCAN"
## [1] "Silhouette Score Fuzzy C-Means: 0.295426611133959"
## cluster size ave.sil.width
## 1 1 5 0.07
## 2 2 4 0.48
## 3 3 1 0.00
## 4 4 5 0.43
##
## Daerah per Klaster K-Means:
## # A tibble: 4 × 2
## KMeans_Cluster Daerah
## <int> <chr>
## 1 1 Kota Bandar Lampung
## 2 2 Pringsewu, Kota Metro
## 3 3 Lampung Barat, Tanggamus, Way Kanan, Tulangbawang, Pesawaran, …
## 4 4 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
##
## Daerah per Klaster Hierarchical:
## # A tibble: 4 × 2
## HCluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Tanggamus, Way Kanan, Tulangbawang, Pesawaran, Prings…
## 2 2 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
## 3 3 Kota Bandar Lampung
## 4 4 Kota Metro
##
## Daerah per Klaster DBSCAN:
## # A tibble: 2 × 2
## DBSCAN_Cluster Daerah
## <int> <chr>
## 1 0 Tanggamus, Lampung Selatan, Lampung Timur, Lampung Tengah, Lam…
## 2 1 Lampung Barat, Tulangbawang, Mesuji, Tulang Bawang Barat, Pesi…
##
## Daerah per Klaster Fuzzy C-Means:
## # A tibble: 4 × 2
## Fuzzy_Cluster Daerah
## <int> <chr>
## 1 1 Tanggamus, Way Kanan, Pesawaran, Pringsewu, Kota Metro
## 2 2 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara
## 3 3 Kota Bandar Lampung
## 4 4 Lampung Barat, Tulangbawang, Mesuji, Tulang Bawang Barat, Pesis…
## [1] "Ringkasan Klaster:"
## # A tibble: 14 × 10
## KMeans_Cluster Mean_Perawat Mean_Bidan Mean_Tenaga_Kefarmasian Count Method
## <int> <dbl> <dbl> <dbl> <int> <chr>
## 1 1 3480 1255 571 1 K-Means
## 2 2 1108. 527 173 2 K-Means
## 3 3 404. 566. 66.1 8 K-Means
## 4 4 997. 1083. 182. 4 K-Means
## 5 NA 455. 574. 74.3 9 Hierarc…
## 6 NA 997. 1083. 182. 4 Hierarc…
## 7 NA 3480 1255 571 1 Hierarc…
## 8 NA 1359 415 206 1 Hierarc…
## 9 NA 1124. 875. 188 10 DBSCAN
## 10 NA 335. 484. 58.4 5 DBSCAN
## 11 NA 755 633. 117. 5 Fuzzy C…
## 12 NA 997. 1083. 182. 4 Fuzzy C…
## 13 NA 3480 1255 571 1 Fuzzy C…
## 14 NA 335. 484. 58.4 5 Fuzzy C…
## # ℹ 4 more variables: Silhouette_Score <dbl>, HCluster <int>,
## # DBSCAN_Cluster <int>, Fuzzy_Cluster <int>
# Analisis seluruh tahun
perform_clustering(data, "Seluruh Tahun")
##
## === Analisis Klaster untuk Seluruh Tahun ===
## [1] "Statistik Deskriptif:"
## Kategori
## Tenaga Kesehatan - Perawat Tenaga Kesehatan - Perawat
## Tenaga Kesehatan - Bidan Tenaga Kesehatan - Bidan
## Tenaga Kesehatan - Tenaga Kefarmasian Tenaga Kesehatan - Tenaga Kefarmasian
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat Tenaga Kesehatan - Tenaga Kesehatan Masyarakat
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan Tenaga Kesehatan - Tenaga Kesehatan Lingkungan
## Tenaga Kesehatan - Tenaga Gizi Tenaga Kesehatan - Tenaga Gizi
## Mean Median Min Max
## Tenaga Kesehatan - Perawat 776.00000 561 188 3480
## Tenaga Kesehatan - Bidan 688.42667 608 175 1395
## Tenaga Kesehatan - Tenaga Kefarmasian 110.48000 78 17 659
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 60.97333 47 15 194
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 43.93333 39 11 122
## Tenaga Kesehatan - Tenaga Gizi 45.32000 42 13 155
## SD
## Tenaga Kesehatan - Perawat 689.96655
## Tenaga Kesehatan - Bidan 291.25540
## Tenaga Kesehatan - Tenaga Kefarmasian 110.79398
## Tenaga Kesehatan - Tenaga Kesehatan Masyarakat 39.79643
## Tenaga Kesehatan - Tenaga Kesehatan Lingkungan 21.95717
## Tenaga Kesehatan - Tenaga Gizi 26.22262
## [1] "Varian PCA:"
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 2.2299 0.7751 0.44426 0.33646 0.25567 0.2258
## Proportion of Variance 0.8287 0.1001 0.03289 0.01887 0.01089 0.0085
## Cumulative Proportion 0.8287 0.9288 0.96174 0.98061 0.99150 1.0000
## [1] "Silhouette Score K-Means: 0.372849829261655"
## cluster size ave.sil.width
## 1 1 22 0.16
## 2 2 15 0.43
## 3 3 5 0.31
## 4 4 33 0.50
## [1] "Silhouette Score Hierarchical: 0.496682410232249"
## cluster size ave.sil.width
## 1 1 48 0.53
## 2 2 22 0.39
## 3 3 3 0.63
## 4 4 2 0.56
## [1] "Distribusi klaster DBSCAN:"
##
## 0 1 2 3 4 5 6 7
## 16 37 6 4 3 3 3 3
## [1] "Silhouette Score DBSCAN: 0.362313254032855"
## cluster size ave.sil.width
## 1 1 37 0.32
## 2 2 6 0.41
## 3 3 4 0.35
## 4 4 3 0.40
## 5 5 3 0.41
## 6 6 3 0.61
## 7 7 3 0.45
## [1] "Silhouette Score Fuzzy C-Means: 0.34770339126653"
## cluster size ave.sil.width
## 1 1 30 0.51
## 2 2 17 0.32
## 3 3 3 0.37
## 4 4 25 0.17
##
## Daerah per Klaster K-Means:
## # A tibble: 4 × 2
## KMeans_Cluster Daerah
## <int> <chr>
## 1 1 Lampung Selatan, Lampung Timur, Lampung Utara, Lampung Selatan…
## 2 2 Lampung Tengah, Lampung Tengah, Lampung Utara, Lampung Selatan…
## 3 3 Kota Bandar Lampung, Kota Bandar Lampung, Kota Bandar Lampung,…
## 4 4 Lampung Barat, Tanggamus, Way Kanan, Tulangbawang, Pesawaran, …
##
## Daerah per Klaster Hierarchical:
## # A tibble: 4 × 2
## HCluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Tanggamus, Way Kanan, Tulangbawang, Pesawaran, Prings…
## 2 2 Lampung Selatan, Lampung Timur, Lampung Tengah, Lampung Utara, Lampu…
## 3 3 Kota Bandar Lampung, Kota Bandar Lampung, Kota Bandar Lampung
## 4 4 Kota Bandar Lampung, Kota Bandar Lampung
##
## Daerah per Klaster DBSCAN:
## # A tibble: 8 × 2
## DBSCAN_Cluster Daerah
## <int> <chr>
## 1 0 Lampung Tengah, Lampung Utara, Kota Bandar Lampung, Kota Metro…
## 2 1 Lampung Barat, Tanggamus, Way Kanan, Tulangbawang, Pesawaran, …
## 3 2 Lampung Selatan, Lampung Timur, Lampung Timur, Lampung Timur, …
## 4 3 Lampung Tengah, Lampung Selatan, Lampung Selatan, Lampung Timur
## 5 4 Lampung Tengah, Lampung Tengah, Lampung Tengah
## 6 5 Lampung Utara, Lampung Utara, Lampung Utara
## 7 6 Pringsewu, Pringsewu, Pringsewu
## 8 7 Kota Metro, Kota Metro, Kota Metro
##
## Daerah per Klaster Fuzzy C-Means:
## # A tibble: 4 × 2
## Fuzzy_Cluster Daerah
## <int> <chr>
## 1 1 Lampung Barat, Tanggamus, Tulangbawang, Pesawaran, Pringsewu, M…
## 2 2 Lampung Tengah, Lampung Tengah, Lampung Utara, Kota Bandar Lamp…
## 3 3 Kota Bandar Lampung, Kota Bandar Lampung, Kota Bandar Lampung
## 4 4 Lampung Selatan, Lampung Timur, Lampung Utara, Way Kanan, Lampu…
## [1] "Ringkasan Klaster:"
## # A tibble: 20 × 10
## KMeans_Cluster Mean_Perawat Mean_Bidan Mean_Tenaga_Kefarmasian Count Method
## <int> <dbl> <dbl> <dbl> <int> <chr>
## 1 1 688. 655. 108. 22 K-Means
## 2 2 1005 1095. 144. 15 K-Means
## 3 3 2981. 1047 443. 5 K-Means
## 4 4 396. 472. 46.7 33 K-Means
## 5 NA 493. 502. 67.9 48 Hierarc…
## 6 NA 893. 1014. 128. 22 Hierarc…
## 7 NA 2652. 931. 328 3 Hierarc…
## 8 NA 3473 1222. 615 2 Hierarc…
## 9 NA 1477. 864. 206. 16 DBSCAN
## 10 NA 370. 507. 47.6 37 DBSCAN
## 11 NA 623 862. 96 6 DBSCAN
## 12 NA 953. 1010 164. 4 DBSCAN
## 13 NA 1383. 1264. 209. 3 DBSCAN
## 14 NA 922. 995. 131. 3 DBSCAN
## 15 NA 846. 617 137 3 DBSCAN
## 16 NA 1289. 409 189. 3 DBSCAN
## 17 NA 399 457. 46.3 30 Fuzzy C…
## 18 NA 1179. 1077 168. 17 Fuzzy C…
## 19 NA 3313. 1116. 506 3 Fuzzy C…
## 20 NA 650. 650. 101. 25 Fuzzy C…
## # ℹ 4 more variables: Silhouette_Score <dbl>, HCluster <int>,
## # DBSCAN_Cluster <int>, Fuzzy_Cluster <int>
## # A tibble: 75 × 12
## `Kabupaten/Kota` Year `Tenaga Kesehatan - Perawat` Tenaga Kesehatan - Bida…¹
## <chr> <dbl> <dbl> <dbl>
## 1 Lampung Barat 2020 320 477
## 2 Tanggamus 2020 467 640
## 3 Lampung Selatan 2020 747 816
## 4 Lampung Timur 2020 589 873
## 5 Lampung Tengah 2020 1195 1044
## 6 Lampung Utara 2020 781 885
## 7 Way Kanan 2020 387 718
## 8 Tulangbawang 2020 424 467
## 9 Pesawaran 2020 366 554
## 10 Pringsewu 2020 718 463
## # ℹ 65 more rows
## # ℹ abbreviated name: ¹`Tenaga Kesehatan - Bidan`
## # ℹ 8 more variables: `Tenaga Kesehatan - Tenaga Kefarmasian` <dbl>,
## # `Tenaga Kesehatan - Tenaga Kesehatan Masyarakat` <dbl>,
## # `Tenaga Kesehatan - Tenaga Kesehatan Lingkungan` <dbl>,
## # `Tenaga Kesehatan - Tenaga Gizi` <dbl>, KMeans_Cluster <int>,
## # HCluster <int>, DBSCAN_Cluster <int>, Fuzzy_Cluster <int>