library(readxl)
data<- read_xlsx("C:/SEM6/DC/dc clustering .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()+
xlim(0,85)
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
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()+
xlim(0,85)
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
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()+
xlim(0,85)
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
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()+
xlim(0,85)
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
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()+
xlim(0,85)
## Warning: Removed 3 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
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()+
xlim(0,85)
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
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()
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()
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()
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()
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()
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()
boxplot(data$A, horizontal = FALSE,
main = "A", col = "#112446")
boxplot(data$B, horizontal = FALSE,
main = "B", col = "#EF562D")
boxplot(data$C, horizontal = FALSE,
main = "C", col = "#619E61")
boxplot(data$D, horizontal = FALSE,
main = "D", col = "#ED7070")
boxplot(data$E, horizontal = FALSE,
main = "E", col = "#B08E64")
boxplot(data$F, horizontal = FALSE,
main = "F", col = "#9D8BD4")
data2<- read_xlsx("C:/SEM6/DC/dc clustering .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()
data.ok<-data[,2:7]
cor(data.ok)
## A B C D E F
## A 1.0000000 0.4093421 0.1664541 0.111259161 -0.6365541 -0.311335526
## B 0.4093421 1.0000000 0.5945285 0.329769299 -0.0568532 0.463162400
## C 0.1664541 0.5945285 1.0000000 0.577963288 0.2495735 0.319770264
## D 0.1112592 0.3297693 0.5779633 1.000000000 0.1146769 0.009000377
## E -0.6365541 -0.0568532 0.2495735 0.114676906 1.0000000 0.247405352
## F -0.3113355 0.4631624 0.3197703 0.009000377 0.2474054 1.000000000
str(data.ok)
## tibble [27 × 6] (S3: tbl_df/tbl/data.frame)
## $ 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 ...
stdz.data<-scale (data.ok)
apply(stdz.data, 2 , mean)
## A B C D E
## 2.672799e-16 -1.216033e-16 1.444474e-16 9.089228e-17 -8.254408e-16
## F
## -1.620681e-17
library(ggplot2)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
#penentuan jumlah kluster
wss.kmeans<-fviz_nbclust(stdz.data, FUNcluster = kmeans, method = "wss")
wss.kmeans
wss.kmeans$data
## clusters y
## 1 1 156.00000
## 2 2 113.27567
## 3 3 93.56145
## 4 4 82.25513
## 5 5 65.77999
## 6 6 59.21003
## 7 7 51.23340
## 8 8 45.89994
## 9 9 36.20814
## 10 10 35.22480
fviz_nbclust(stdz.data, FUNcluster = kmeans, method = "silhouette")
fviz_nbclust(stdz.data, FUNcluster = kmeans, method = "gap_stat")
kmeans.data4 <- eclust(data.ok, stand = TRUE, FUNcluster = "kmeans", k=4, graph=FALSE)
fviz_cluster(kmeans.data4)
kmeans.data4$size
## [1] 7 4 9 7
data.frame(data$`Kota/Kab`, kmeans.data4$cluster)
## data..Kota.Kab. kmeans.data4.cluster
## 1 Kabupaten Bandung 3
## 2 Kabupaten Bandung Barat 2
## 3 Kabupaten Bekasi 4
## 4 Kabupaten Bogor 4
## 5 Kabupaten Ciamis 3
## 6 Kabupaten Cianjur 4
## 7 Kabupaten Cirebon 3
## 8 Kabupaten Garut 3
## 9 Kabupaten Indramayu 4
## 10 Kabupaten Karawang 4
## 11 Kabupaten Kuningan 3
## 12 Kabupaten Majalengka 4
## 13 Kabupaten Pangandaran 3
## 14 Kabupaten Purwakarta 2
## 15 Kabupaten Subang 2
## 16 Kabupaten Sukabumi 1
## 17 Kabupaten Sumedang 3
## 18 Kabupaten Tasikmalaya 4
## 19 Kota Bandung 2
## 20 Kota Banjar 3
## 21 Kota Bekasi 1
## 22 Kota Bogor 1
## 23 Kota Cimahi 1
## 24 Kota Cirebon 1
## 25 Kota Depok 1
## 26 Kota Sukabumi 3
## 27 Kota Tasikmalaya 1
aggregate(data.ok, by=list(cluster=kmeans.data4$cluster ), FUN = mean)
## cluster A B C D E F
## 1 1 66.00801 8.194393 6.054403 1.866546 66.69848 0.3912815
## 2 2 45.77796 6.108149 4.198310 3.113701 79.16067 1.1731948
## 3 3 54.37780 15.469138 11.924837 2.908963 79.15222 5.1720848
## 4 4 67.78125 19.070003 13.745509 5.437230 71.13465 2.5823147
kmeans.data3 <- eclust(data.ok, stand = TRUE, FUNcluster = "kmeans", k=3, graph=FALSE)
fviz_cluster(kmeans.data3)
kmeans.data3$size
## [1] 8 8 11
data.frame(data$`Kota/Kab`, kmeans.data3$cluster)
## data..Kota.Kab. kmeans.data3.cluster
## 1 Kabupaten Bandung 3
## 2 Kabupaten Bandung Barat 2
## 3 Kabupaten Bekasi 3
## 4 Kabupaten Bogor 3
## 5 Kabupaten Ciamis 3
## 6 Kabupaten Cianjur 3
## 7 Kabupaten Cirebon 2
## 8 Kabupaten Garut 3
## 9 Kabupaten Indramayu 3
## 10 Kabupaten Karawang 3
## 11 Kabupaten Kuningan 2
## 12 Kabupaten Majalengka 3
## 13 Kabupaten Pangandaran 3
## 14 Kabupaten Purwakarta 2
## 15 Kabupaten Subang 1
## 16 Kabupaten Sukabumi 1
## 17 Kabupaten Sumedang 2
## 18 Kabupaten Tasikmalaya 3
## 19 Kota Bandung 2
## 20 Kota Banjar 2
## 21 Kota Bekasi 1
## 22 Kota Bogor 1
## 23 Kota Cimahi 1
## 24 Kota Cirebon 1
## 25 Kota Depok 1
## 26 Kota Sukabumi 2
## 27 Kota Tasikmalaya 1
aggregate(data.ok, by=list(cluster=kmeans.data3$cluster ), FUN = mean)
## cluster A B C D E F
## 1 1 64.38744 7.930964 5.732385 1.850619 67.81769 0.3423713
## 2 2 49.00042 10.887146 7.290232 2.758471 79.34876 4.2905088
## 3 3 63.81217 18.541884 14.412292 4.808107 74.22845 3.1812432
dc3<-data.frame(data$`Kota/Kab`, kmeans.data3$cluster)
dc4<-data.frame(data$`Kota/Kab`, kmeans.data4$cluster)
library("xlsx")
## Warning: package 'xlsx' was built under R version 4.2.3
#write.xlsx(dc3,"C:/SEM6/DC/dc3.xlsx")
#write.xlsx(dc4,"C:/SEM6/DC/dc4.xlsx")
library(readxl)
data<- read_xlsx("C:/SEM6/DC/dc clustering .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(readxl)
library(cluster)
library(factoextra)
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
(jarak1<-dist(data.ok))
## 1 2 3 4 5 6 7
## 2 17.915633
## 3 12.494293 23.733490
## 4 13.546279 15.949820 12.860429
## 5 8.965107 17.896182 9.518249 8.486074
## 6 14.331058 24.947614 15.195020 12.429952 10.887549
## 7 15.040366 14.805030 25.156880 20.283540 18.195612 23.514567
## 8 9.319818 17.423978 13.156096 8.244471 4.900340 8.238789 16.863789
## 9 17.094235 28.249765 16.424946 15.157938 12.996086 3.838000 26.155494
## 10 20.382760 26.117803 18.852273 13.814848 13.366708 11.053699 24.770612
## 11 19.347058 20.229501 21.296588 10.883432 13.984430 12.787120 21.479814
## 12 30.067578 37.074997 28.784011 26.736634 24.868970 21.924082 31.591529
## 13 5.289504 21.822616 15.831869 18.154362 13.401746 16.127576 17.125646
## 14 15.131880 9.697733 21.192418 10.879917 15.181895 18.546609 14.488494
## 15 19.806662 10.017712 23.715031 12.224652 17.013551 20.366434 19.377915
## 16 27.903344 31.829293 26.255492 20.249757 20.997620 15.907448 31.458957
## 17 9.459104 12.153712 14.027770 10.536140 10.020486 17.062354 17.675309
## 18 33.560560 45.771906 31.092890 32.831096 29.804273 22.421117 40.716083
## 19 32.795194 18.450319 39.319604 31.644152 35.088510 40.228906 28.598963
## 20 12.242711 8.264730 21.034300 16.443603 15.181791 22.650068 8.613142
## 21 28.799781 28.819439 25.686522 18.624924 21.211835 20.545481 30.532107
## 22 21.714618 13.273572 22.846990 12.044355 16.225307 20.612259 22.270309
## 23 20.681909 21.671931 20.744511 11.147333 14.831811 12.115111 25.852440
## 24 17.613281 16.760861 18.393773 8.082655 11.326955 13.289107 20.243289
## 25 42.029617 37.633201 39.329122 30.920040 34.220532 33.589390 41.310172
## 26 12.393671 15.027323 21.297631 14.803542 14.993294 16.749084 16.156386
## 27 22.849737 25.705317 19.732273 13.235218 15.984028 13.227780 30.252121
## 8 9 10 11 12 13 14
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9 11.167639
## 10 12.277142 10.271037
## 11 11.427711 14.399867 10.085286
## 12 23.914432 19.882600 14.544699 23.101318
## 13 13.107001 18.600043 23.723684 22.829705 32.462920
## 14 12.829199 22.018829 20.758254 14.447173 31.700065 18.884668
## 15 14.947086 23.524225 20.971394 13.471239 33.123799 23.753434 7.994264
## 16 19.062587 14.430731 8.865791 13.878095 15.458658 30.763838 26.199214
## 17 10.803101 20.282185 21.694279 17.702253 34.132815 13.308394 11.978898
## 18 28.753616 18.871992 22.067289 30.098031 18.042135 33.872144 39.500334
## 19 34.038611 43.911083 43.074029 35.235315 54.305933 35.018792 23.361004
## 20 14.933886 25.803111 25.067724 20.949154 34.658701 15.524984 11.212454
## 21 20.378758 20.240968 11.384163 15.492662 16.943444 32.955709 24.325685
## 22 15.396045 23.025998 18.526737 12.334491 31.055786 26.180124 13.067868
## 23 12.387445 13.878201 12.558357 7.501186 26.195192 23.935651 16.399714
## 24 9.255479 15.472837 11.054519 8.328478 23.144247 21.929695 12.196876
## 25 33.233393 33.208684 24.538636 25.392476 27.768491 46.230821 34.764704
## 26 12.577343 20.136386 22.605746 16.070046 34.599463 13.703563 11.661778
## 27 15.063541 13.811993 13.151563 11.660959 26.751212 26.030951 21.210274
## 15 16 17 18 19 20 21
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16 24.657490
## 17 13.778348 28.290025
## 18 40.937901 20.984249 38.574942
## 19 23.018263 47.561425 26.566277 62.104804
## 20 15.248525 31.991444 10.987650 42.553151 23.476111
## 21 22.591351 10.857005 27.908429 28.383605 44.728190 30.282580
## 22 6.816930 21.903135 15.461813 39.514890 27.711864 18.238433 18.884137
## 23 13.481838 13.989767 17.457400 30.151134 35.559618 23.459697 16.600117
## 24 10.714871 15.539839 15.264497 31.318733 33.087074 18.162394 13.634690
## 25 30.498689 20.106608 39.263411 38.846256 50.869425 41.122945 15.056492
## 26 14.077949 27.877530 10.214525 38.166253 26.322058 13.228169 29.978136
## 27 18.327352 14.031193 19.643332 28.711287 39.788508 27.281609 17.120177
## 22 23 24 25 26
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23 12.096896
## 24 9.227462 8.834024
## 25 25.895216 25.850166 25.158778
## 26 17.861706 17.047046 17.206846 40.323355
## 27 15.519400 6.151719 12.663101 26.130626 21.008883
Secara default metode penghitungan jarak pada fungsi dist adalah Euclidean.Untuk mengubah metode penghitungan jarak, menggunakan argumen method diikuti nama metode yang ingin digunakan.
jarak2<-dist(data.ok,method="manhattan")
Untuk melakukan hierarchical clustering Agglomerative menggunakan fungsi hclust. Pada fungsi hclust secara default jenis tautan yang digunakan adalah Tautan Lengkap (Complete Linkage), untuk mengganti jenis tautan menggunakan argumen method
#Pautan Lengkap Euclid
clustering1<-hclust(jarak1)
plot(clustering1, hang=-1)
rect.hclust(clustering1,k=3)
#Pautan Lengkap Manhattan
clustering1m<-hclust(jarak2)
plot(clustering1m, hang=-1)
rect.hclust(clustering1m,k=3)
cutree(clustering1,3)
## [1] 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1 2 1 2 3 1 2 1 1 1 2 1 1
#Pautan Tunggal Euclid
clustering2 <- hclust(jarak1,method="single")
plot(clustering2,hang=-1)
rect.hclust(clustering2,k=3)
#Pautan Rata Rataan
clustering3 <- hclust(jarak1,method="average")
plot(clustering3,hang=-1)
rect.hclust(clustering3,k=3)
Terdapat 3 metode yang dapat digunakan untuk menentukan jumlah kelompok yang paling optimum yaitu, Elbow Method, Silhouette Method & Gap Statistic Method.
Dengan metode pertama ini kita akan memvariasikan jumlah kelompok dengan menghitung Within Sum of Square (WSS). WSS adalah akan menghasilkan jumlah kuadrat jarak antara setiap observasi terhadap titik Medoids untuk setiap kemungkinan jumlah kelompok, fungsi fviz_nbclust() secara otomatis akan menghitung WCSS sampai dengan 10 kelompok (jumlah kelompok yang ingin dicoba hitung bisa diatur secara manual sesuai dengan kebutuhan).
Dengan bertambahnya jumlah kelompok, nilai WSS akan mulai berkurang (nilai WSS terbesar ketika K = 1). Ketika kita menganalisis grafik kita dapat melihat bahwa grafik akan berubah dengan cepat pada suatu titik dan dengan demikian menciptakan bentuk siku. Dari titik ini, grafik mulai bergerak hampir sejajar dengan sumbu X. Nilai K yang sesuai dengan titik ini adalah nilai K optimal atau jumlah kelompok yang optimal.
#penentuan jumlah kluster
wss.kmeans<-fviz_nbclust(data.ok, FUNcluster = kmeans, method = "wss")
wss.kmeans
fviz_nbclust(data.ok, FUNcluster = kmeans, method = "silhouette")
fviz_nbclust(data.ok, FUNcluster = kmeans, method = "gap_stat")
#penentuan jumlah kluster
wss.kmeans<-fviz_nbclust(data.ok, FUNcluster = pam, method = "wss")
wss.kmeans
fviz_nbclust(data.ok, FUNcluster = pam, method = "silhouette")
fviz_nbclust(data.ok, FUNcluster = pam, method = "gap_stat")
#K-Medoid
clustering_kmed4 <- pam(data.ok,4)
clustering_kmed4
## Medoids:
## ID A B C D E F
## [1,] 8 59.29204 15.929204 12.389381 2.654867 76.10619 2.654867
## [2,] 2 45.03817 6.870229 8.396947 1.526718 77.09924 3.053435
## [3,] 16 72.94118 15.294118 5.882353 1.176471 64.70588 1.176471
## [4,] 23 66.07143 8.928571 5.357143 1.785714 75.00000 0.000000
## Clustering vector:
## [1] 1 2 1 1 1 1 2 1 1 3 4 3 1 2 2 3 1 3 2 2 3 4 4 4 3 1 4
## Objective function:
## build swap
## 9.763195 9.763195
##
## Available components:
## [1] "medoids" "id.med" "clustering" "objective" "isolation"
## [6] "clusinfo" "silinfo" "diss" "call" "data"
fviz_cluster(clustering_kmed4,data.ok)
aggregate(data.ok, by=list(cluster=clustering_kmed4$cluster ), FUN = mean)
## cluster A B C D E F
## 1 1 59.18351 15.497468 14.157303 4.470172 79.24521 3.291669
## 2 2 45.52852 9.718854 6.180846 2.660996 78.37798 3.312910
## 3 3 71.39676 16.692188 8.531140 3.180171 61.10360 2.001502
## 4 4 63.13001 8.212936 6.574240 2.002635 72.90060 1.450711
clustering_kmed4$size
## NULL
data.frame(data$`Kota/Kab`, clustering_kmed4$cluster)
## data..Kota.Kab. clustering_kmed4.cluster
## 1 Kabupaten Bandung 1
## 2 Kabupaten Bandung Barat 2
## 3 Kabupaten Bekasi 1
## 4 Kabupaten Bogor 1
## 5 Kabupaten Ciamis 1
## 6 Kabupaten Cianjur 1
## 7 Kabupaten Cirebon 2
## 8 Kabupaten Garut 1
## 9 Kabupaten Indramayu 1
## 10 Kabupaten Karawang 3
## 11 Kabupaten Kuningan 4
## 12 Kabupaten Majalengka 3
## 13 Kabupaten Pangandaran 1
## 14 Kabupaten Purwakarta 2
## 15 Kabupaten Subang 2
## 16 Kabupaten Sukabumi 3
## 17 Kabupaten Sumedang 1
## 18 Kabupaten Tasikmalaya 3
## 19 Kota Bandung 2
## 20 Kota Banjar 2
## 21 Kota Bekasi 3
## 22 Kota Bogor 4
## 23 Kota Cimahi 4
## 24 Kota Cirebon 4
## 25 Kota Depok 3
## 26 Kota Sukabumi 1
## 27 Kota Tasikmalaya 4
#K-Medoid
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)
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
clustering_kmed2$size
## NULL
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
kmed2<-data.frame(data$`Kota/Kab`, clustering_kmed2$cluster)
kmed4<-data.frame(data$`Kota/Kab`, clustering_kmed4$cluster)
library("xlsx")
#write.xlsx(kmed2,"C:/SEM6/DC/kmed2.xlsx")
#write.xlsx(kmed4,"C:/SEM6/DC/kmed4.xlsx")