# 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>