Berikut adalah Packages yang digunakan
library(readxl)
library(cluster)
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(plotly)
## Warning: package 'plotly' was built under R version 4.2.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(dplyr)
##
## 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
Data yang digunakan merupakan data sekunder yang diperoleh dari Susenas (Survey Sosial Ekonomi Nasional) yang dilakukan pada tahun 2019.
library(readxl)
data<- read_xlsx("C:/SEM6/DC/DC_K14/DC_K14_Data.xlsx")
str(data)
## tibble [27 × 7] (S3: tbl_df/tbl/data.frame)
## $ Kota/Kab: chr [1:27] "Kabupaten Bandung" "Kabupaten Bandung Barat" "Kabupaten Bekasi" "Kabupaten Bogor" ...
## $ A : num [1:27] 54.4 45 60.8 59 59.1 ...
## $ B : num [1:27] 18.45 6.87 12.87 9.52 13.99 ...
## $ C : num [1:27] 16.5 8.4 23.4 11.4 16.6 ...
## $ D : num [1:27] 4.85 1.53 8.77 7.62 3.11 ...
## $ E : num [1:27] 81.6 77.1 77.8 75.2 75.6 ...
## $ F : num [1:27] 4.85 3.05 2.34 1.9 4.15 ...
library(ggplot2)
ggplot(data) +
aes(x = A) +
geom_histogram(bins = 30L, fill = "#112446") +
labs(
x = "Persentase Penggunaan PKH pada Jenis Pangan (%)",
y = "Frekuensi",
title = "Sebaran Persentase Penggunaan PKH pada Jenis Pangan di Provinsi Jawa Barat"
) +
theme_minimal()
Pada Histogram di atas dapat dilihat sebaran menyebar simetris, artinya sebagian besar kota/kabupaten di Jawa Barat memiliki persentase penggunaan PKH pada kebutuhan pangan tidak terlalu tinggi dan tidak terlalu rendah, sehingga memiliki median sama dengan rataannya.
ggplot(data) +
aes(x = B) +
geom_histogram(bins = 30L, fill = "#EF562D") +
labs(
x = "Persentase Penggunaan PKH pada Jenis Perumahan dan Fasilitas (%)",
y = "Frekuensi",
title = "Sebaran Persentase Penggunaan PKH pada Jenis Perumahan dan Fasilitas di Provinsi Jawa Barat"
) +
theme_minimal()
Pada Histogram di atas dapat dilihat sebaran menjulur ke kanan, artinya banyak kota/kabupaten di Jawa Barat yang memiliki persentase penggunaan PKH pada kebutuhan perumahan yang rendah sehingga memiliki median lebih kecil dari rataannya.
ggplot(data) +
aes(x = C) +
geom_histogram(bins = 30L, fill = "#619E61") +
labs(
x = "Persentase Penggunaan PKH pada Jenis Pengobatan (%)",
y = "Frekuensi",
title = "Sebaran Persentase Penggunaan PKH pada Jenis Pengobatan di Provinsi Jawa Barat"
) +
theme_minimal()
Pada Histogram di atas dapat dilihat sebaran menyebar simetris, artinya sebagian besar kota/kabupaten di Jawa Barat memiliki persentase penggunaan PKH pada kebutuhan pengobatan tidak terlalu tinggi dan tidak terlalu rendah, sehingga memiliki median sama dengan rataannya.
ggplot(data) +
aes(x = D) +
geom_histogram(bins = 30L, fill = "#ED7070") +
labs(
x = "Persentase Penggunaan PKH pada Jenis Perawatan Ibu Hamil (%)",
y = "Frekuensi",
title = "Sebaran Persentase Penggunaan PKH pada Jenis Perawatan Ibu Hamil di Provinsi Jawa Barat"
) +
theme_minimal()
Pada Histogram di atas dapat dilihat sebaran menjulur ke kanan, artinya banyak kota/kabupaten di Jawa Barat yang memiliki persentase penggunaan PKH pada kebutuhan perawatan ibu hamil yang rendah sehingga memiliki median lebih kecil dari rataannya.
ggplot(data) +
aes(x = E) +
geom_histogram(bins = 30L, fill = "#B08E64") +
labs(
x = "Persentase Penggunaan PKH pada Jenis Sekolah (%)",
y = "Frekuensi",
title = "Sebaran Persentase Penggunaan PKH pada Jenis Sekolah di Provinsi Jawa Barat"
) +
theme_minimal()
Pada Histogram di atas dapat dilihat sebaran menjulur ke kiri, artinya banyak kota/kabupaten di Jawa Barat yang memiliki persentase penggunaan PKH pada kebutuhan sekolah yang tinggi sehingga memiliki median lebih besar dari rataannya.
ggplot(data) +
aes(x = F) +
geom_histogram(bins = 30L, fill = "#9D8BD4") +
labs(
x = "Persentase Penggunaan PKH pada Jenis Lainnya (%)",
y = "Frekuensi",
title = "Sebaran Persentase Penggunaan PKH pada Jenis Lainnya di Provinsi Jawa Barat"
) +
theme_minimal()
Pada Histogram di atas dapat dilihat sebaran menjulur ke kanan, artinya banyak kota/kabupaten di Jawa Barat yang memiliki persentase penggunaan PKH pada kebutuhan lainnya yang rendah sehingga memiliki median lebih kecil dari rataannya.
data2<- read_xlsx("C:/SEM6/DC/DC_K14/DC_K14_Data.xlsx", sheet=2)
boxplot_gabungan <- ggplot(data2, aes(x = Jenis, y = Nilai,
color = Jenis))
boxplot_gabungan + geom_boxplot() + geom_jitter(alpha = .5) + scale_x_discrete()
Pada Boxplot di atas dapat dilihat bahwa terdapat beberapa data yang terlihat sebagai pencilan. Maka dari itu, pada penggerombolan digunakan metode K-medoids.
library(readxl)
library(cluster)
library(factoextra)
library(plotly)
data.ok<-data[,2:7]
wss.kmed<-fviz_nbclust(data.ok, FUNcluster = pam, method = "wss")
wss.kmed
Berdasarkan plot di atas, dapat dilihat bahwa k=2 adalah jumlah kelompok yang optimum.
fviz_nbclust(data.ok, FUNcluster = pam, method = "silhouette")
Berdasarkan plot di atas, dapat dilihat bahwa k=2 adalah jumlah kelompok yang optimum.
fviz_nbclust(data.ok, FUNcluster = pam, method = "gap_stat")
Berdasarkan plot di atas, dapat dilihat bahwa k=1 adalah jumlah kelompok yang optimum.
Berdasarkan ketiga metode, dua dari tiga metode menunjukkan bahwa k = 2 adalah jumlah kelompok yang optimal. Jadi, yang terpilih adalah k=2
clustering_kmed2 <- pam(data.ok,2)
clustering_kmed2
## Medoids:
## ID A B C D E F
## [1,] 8 59.29204 15.92920 12.389381 2.654867 76.10619 2.654867
## [2,] 16 72.94118 15.29412 5.882353 1.176471 64.70588 1.176471
## Clustering vector:
## [1] 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 2 1 2 1 1 2 1 1 1 2 1 2
## Objective function:
## build swap
## 12.64153 12.64153
##
## Available components:
## [1] "medoids" "id.med" "clustering" "objective" "isolation"
## [6] "clusinfo" "silinfo" "diss" "call" "data"
fviz_cluster(clustering_kmed2,data.ok)
data.frame(data$`Kota/Kab`, clustering_kmed2$cluster)
## data..Kota.Kab. clustering_kmed2.cluster
## 1 Kabupaten Bandung 1
## 2 Kabupaten Bandung Barat 1
## 3 Kabupaten Bekasi 1
## 4 Kabupaten Bogor 1
## 5 Kabupaten Ciamis 1
## 6 Kabupaten Cianjur 1
## 7 Kabupaten Cirebon 1
## 8 Kabupaten Garut 1
## 9 Kabupaten Indramayu 1
## 10 Kabupaten Karawang 2
## 11 Kabupaten Kuningan 1
## 12 Kabupaten Majalengka 2
## 13 Kabupaten Pangandaran 1
## 14 Kabupaten Purwakarta 1
## 15 Kabupaten Subang 1
## 16 Kabupaten Sukabumi 2
## 17 Kabupaten Sumedang 1
## 18 Kabupaten Tasikmalaya 2
## 19 Kota Bandung 1
## 20 Kota Banjar 1
## 21 Kota Bekasi 2
## 22 Kota Bogor 1
## 23 Kota Cimahi 1
## 24 Kota Cirebon 1
## 25 Kota Depok 2
## 26 Kota Sukabumi 1
## 27 Kota Tasikmalaya 2
aggregate(data.ok, by=list(cluster=clustering_kmed2$cluster ), FUN = mean)
## cluster A B C D E F
## 1 1 55.51009 12.37671 10.121920 3.420407 77.61115 3.002385
## 2 2 71.26216 15.28162 8.611107 3.050536 63.08880 1.715573
Cluster 1 berisi Kota/Kabupaten dengan rata-rata pengguna PKH pada jenis obat, sekolah, dan lainnya yang besar. Cluster 2 berisi Kota/Kabupaten dengan rata-rata pengguna PKH pada jenis pangan dan perumahan yang besar. Kedua cluster memiliki rata-rata pengguna PKH pada jenis perawatan ibu hamil yang sama besar.