Analisis Cluster

Menurut Everitt dkk (2011), analisis cluster pada dasarnya adalah tentang bagaimana menemukan kelompok dalam data. Analisis ini bertujuan untuk membangun aturan dalam mengklasifikasikan individu atau objek baru ke dalam kelompok yang sudah ada. Pengelompokan analisis ini didasarkan pada homogenitas atau kemiripan dalam objek yang diamati.

Analisis cluster memiliki beberapa kelebihan yaitu dapat mengelompokkan data observasi dalam jumlah besar dan variabel yang relatif banyak serta data yang dipakai bisa dalam skala data ordinal, interval, dan rasio.

K-Means

Algoritma K-Means merupakan salah satu metode dalam analisis cluster non-hierarchy yang dilakukan dengan pendekatan partisi. Menurut Rencher (2002), metode ini memungkinkan suatu item untuk dapat dipindahkan dari satu cluster ke cluster lainnya. Realokasi seperti ini tidak dapat dilakukan pada hierarchical methods.

Dasar algoritma K-means adalah sebagai berikut:

  1. Tentukan sebanyak ‘k’ klaster yang ingin dibentuk. Kemudian secara acak menempatkan sebanyak ‘k’ titik sebagai centroid awal.

  2. Alokasikan objek ke dalam klaster berdasarkan jarak ke centroid awal terdekat.

  3. Hitung centroid baru yang ada dalam klaster.

  4. Alokasikan kembali objek ke centroid baru yang terdekat.

  5. Kembali langkah 3, sampai tidak terdapat objek yang berpindah klaster atau perubahan nilai centroid.

Analisis

Load Package

library(cluster)
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.3
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.2
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
library(readr)
library(markdown)
library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
library(stats)

Cleaning Data

Variabel yang akan dikelompokkan hanya GDP per capita, life expectacy, infant deaths, adult mortality, dan BMI dan tahun yang digunakan hanya untuk tahun 2015. Berikut merupakan variabel-variabel yang akan digunakan dalam analisis clustering:

  1. Country: Daftar 179 negara

  2. Infant_deaths: Mewakili kematian bayi per 1000 penduduk

  3. Adult_mortality: Mewakili kematian orang dewasa per 1000 penduduk

  4. BMI: ukuran status gizi pada orang dewasa

  5. GDP_per_capita: GDP per kapita ($USD)

  6. Life_expectancy: Rata-rata harapan hidup kedua jenis kelamin

data1 <- read_excel("F:/datacm.xlsx")
data2 = data1 %>%
  filter(Year == 2015) %>%
  select(Country, 
         Infant_deaths, 
         Adult_mortality, 
         BMI, 
         GDP_per_capita, 
         Life_expectancy
         )
head(data2, 10)
## # A tibble: 10 × 6
##    Country    Infant_deaths Adult_mortality   BMI GDP_per_capita Life_expectancy
##    <chr>              <dbl>           <dbl> <dbl>          <dbl>           <dbl>
##  1 Turkiye             11.1           106.   27.8          11006            76.5
##  2 Spain                2.7            57.9  26            25742            82.8
##  3 Russian F…           6.6           223    26.2           9313            71.2
##  4 Cameroon            57             340.   24.3           1383            57.6
##  5 Gambia The          39.7           262.   23.9            661            60.9
##  6 Algeria             21.6            95.8  25.5           4178            76.1
##  7 Oman                 9.6            89.2  26.3          18445            76.9
##  8 Madagascar          41.3           218.   21.3            467            65.5
##  9 Norway               2.2            53.9  26.6          74356            82.3
## 10 Vietnam             17.4           125.   21.7           2582            75.1

Preprocessing Data

Mengubah Variabel Country Menjadi Nama Baris

Hal ini bertujuan agar data dapat dianalisis (hanya kolom dengan variabel numerik saja yang dapat dianalisis).

# Menyimpan rownames asli
original_rownames = rownames(data2)

# Mengubah kolom "Country" menjadi rownames
Country = data2$Country
rownames(data2) = data2$Country
## Warning: Setting row names on a tibble is deprecated.
# Menghapus kolom "Country"
data2 = data2[, -1]

Statistik Deskriptif

summary(data2)
##  Infant_deaths   Adult_mortality       BMI       GDP_per_capita  
##  Min.   : 1.80   Min.   : 49.38   Min.   :20.5   Min.   :   306  
##  1st Qu.: 6.65   1st Qu.: 90.79   1st Qu.:23.8   1st Qu.:  1690  
##  Median :15.20   Median :146.52   Median :26.2   Median :  5391  
##  Mean   :23.56   Mean   :163.67   Mean   :25.6   Mean   : 12617  
##  3rd Qu.:36.55   3rd Qu.:215.65   3rd Qu.:27.0   3rd Qu.: 14274  
##  Max.   :95.10   Max.   :513.48   Max.   :32.1   Max.   :105462  
##  Life_expectancy
##  Min.   :50.90  
##  1st Qu.:66.30  
##  Median :73.00  
##  Mean   :71.46  
##  3rd Qu.:76.85  
##  Max.   :83.80

Standarisasi Data

Dengan melakukan standarisasi data, variabel-variabel akan memiliki rentang yang serupa dan berkontribusi secara seimbang dalam perhitungan jarak sehingga menghasilkan hasil clustering yang lebih akurat. Proses standarisasi dilakukan dengan rumus sebagai berikut.

\(Z = \frac{X_i - \bar{X}}{\sigma}\)

dengan

\(X_i\): data ke-i

\(\bar{X}\): rata-rata data

\(\sigma\): simpangan baku

maka, akan dihasilkan data dengan \(\mu = 0\) dan \(\sigma = 1\)

datastd <- scale(data2)
head(datastd)
##      Infant_deaths Adult_mortality         BMI GDP_per_capita Life_expectancy
## [1,]   -0.57980940      -0.6430316  1.00558567    -0.09093292      0.64302080
## [2,]   -0.97073421      -1.1757622  0.18429365     0.74068796      1.44738527
## [3,]   -0.78923341       0.6595829  0.27554832    -0.18647676     -0.03366676
## [4,]    1.55631545       1.9616472 -0.59137104    -0.63400347     -1.77007258
## [5,]    0.75119650       1.0898728 -0.77388038    -0.67474928     -1.34873881
## [6,]   -0.09115339      -0.7542935 -0.04384303    -0.47626865      0.59195005

Cluster Optimal

Algotima K-means memiliki 3 metode yaitu:

  1. Silhouette: Metode ini menghitung koefisien siluet dari setiap titik yang mengukur seberapa mirip suatu titik dengan clusternya sendiri dibandingkan dengan cluster lain dengan memberikan representasi grafis yang ringkas tentang seberapa baik setiap objek telah diklasifikasikan.

  2. Within Cluster Sums of Squares (WSS): Metode ini menggunakan nilai Sum of Square Error (SSE) dari masing-masing jumlah cluster. Semakin besar jumlah cluster, maka SSE akan terus mengecil.

  3. Gap Statistics: Metode ini menawarkan cara yang lebih objektif untuk menentukan jumlah cluster dengan mempertimbangkan variabilitas acak. Hal ini memungkinkan untuk menghindari pemilihan jumlah cluster yang berlebihan atau kurang.

library(NbClust)
## Warning: package 'NbClust' was built under R version 4.3.1
fviz_nbclust(datastd, kmeans, method = "silhouette")

fviz_nbclust(datastd, kmeans, method = "wss")

fviz_nbclust(datastd, kmeans, method = "gap_stat")

Dapat disimpulkan bahwa jumlah cluster yang optimal menggunakan metode Silhouette, WSS, dan Gap Statistics adalah 2 cluster dengan cluster 1 sebagai tingkat kesehatan dan cluster 2 sebagai tingkat kesehatan rendah.

k = 2
set.seed(123)
kmeans_result = kmeans(datastd, centers = k)
kmeans_result
## K-means clustering with 2 clusters of sizes 121, 58
## 
## Cluster means:
##   Infant_deaths Adult_mortality        BMI GDP_per_capita Life_expectancy
## 1    -0.5805402       -0.535638  0.5187684      0.2879357       0.5677864
## 2     1.2111269        1.117452 -1.0822582     -0.6006934      -1.1845199
## 
## Clustering vector:
##   [1] 1 1 1 2 2 1 1 2 1 1 2 2 1 2 2 1 2 1 1 1 1 2 1 1 2 1 2 1 2 1 1 1 2 1 1 1 1
##  [38] 1 2 1 1 1 1 2 1 2 1 1 1 2 2 1 1 2 2 1 2 1 1 1 1 2 2 1 2 1 1 1 1 2 1 1 2 1
##  [75] 2 2 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 2 2
## [112] 2 1 1 1 1 1 1 1 2 1 2 2 1 1 1 1 2 1 2 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1
## [149] 1 1 1 2 1 1 2 1 2 1 2 1 2 2 2 1 2 1 2 1 1 2 1 1 1 2 1 1 2 1 1
## 
## Within cluster sum of squares by cluster:
## [1] 283.9177 121.2404
##  (between_SS / total_SS =  54.5 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Pada tulisan “K-means clustering with 2 clusters of sizes 121, 58” berati cluster 1 terdiri dari 121 negara dengan tingkat kesehatan tinggi dan cluster 2 terdiri dari 58 negara dengan tingkat kesehatan rendah.

Cluster Plot

kmean = kmeans(datastd  ,2)
fviz_cluster(kmean, data = datastd)

Dari cluster plot tersebut, dapat dilihat bahwa cluster 1 (negara-negara dengan tingkat kesehatan tinggi) memiliki jumlah titik yang lebih banyak dibandingkan dengan cluster 2 (negara-negara dengan tingkat kesehatan rendah).

Hasil Analisis

Cluster = kmean$cluster
hasil = data.frame(Country ,Cluster)
hasil = hasil[order(hasil$Cluster),]
hasil
##                            Country Cluster
## 1                          Turkiye       1
## 2                            Spain       1
## 3               Russian Federation       1
## 6                          Algeria       1
## 7                             Oman       1
## 9                           Norway       1
## 10                         Vietnam       1
## 13                          Latvia       1
## 16                         Belarus       1
## 18                         Ukraine       1
## 19                      Costa Rica       1
## 20                          Israel       1
## 21                     New Zealand       1
## 23                 Solomon Islands       1
## 24                            Iraq       1
## 26                        Honduras       1
## 28                          Sweden       1
## 30              Dominican Republic       1
## 31                          Mexico       1
## 32                         Czechia       1
## 34  St. Vincent and the Grenadines       1
## 35                        Kiribati       1
## 36                          Brazil       1
## 37                          Guyana       1
## 38                           China       1
## 40                          Kuwait       1
## 41                          Canada       1
## 42                         Grenada       1
## 43                         Albania       1
## 45                    Saudi Arabia       1
## 47                       Lithuania       1
## 48                    Turkmenistan       1
## 49             Antigua and Barbuda       1
## 52                      Seychelles       1
## 53                     Netherlands       1
## 56                        Bulgaria       1
## 58            Syrian Arab Republic       1
## 59                     El Salvador       1
## 60                          Panama       1
## 61                          Jordan       1
## 64                      Azerbaijan       1
## 66                        Thailand       1
## 67                        Mongolia       1
## 68                        Portugal       1
## 69                        Maldives       1
## 71             Trinidad and Tobago       1
## 72            United Arab Emirates       1
## 74           Sao Tome and Principe       1
## 77                         Finland       1
## 79                          Belize       1
## 80                         Lebanon       1
## 81                        Slovenia       1
## 82                         Jamaica       1
## 83                         Belgium       1
## 85                        Barbados       1
## 86                           Japan       1
## 87                 North Macedonia       1
## 88                         Morocco       1
## 89                 Slovak Republic       1
## 91                       St. Lucia       1
## 92                        Colombia       1
## 93                      Tajikistan       1
## 94                         Austria       1
## 95                         Moldova       1
## 99                           Malta       1
## 101                     Montenegro       1
## 102                         Greece       1
## 103                        Bolivia       1
## 104                        Ireland       1
## 105                        Croatia       1
## 106                Kyrgyz Republic       1
## 107                    Switzerland       1
## 108                      Guatemala       1
## 109                          Qatar       1
## 113                     Kazakhstan       1
## 114                         Serbia       1
## 115                       Paraguay       1
## 116           Micronesia Fed. Sts.       1
## 117         Bosnia and Herzegovina       1
## 118              Brunei Darussalam       1
## 119                 United Kingdom       1
## 121                        Armenia       1
## 124                     Uzbekistan       1
## 125                        Uruguay       1
## 126                          Chile       1
## 127                        Germany       1
## 129                        Denmark       1
## 131                      Mauritius       1
## 133                      Singapore       1
## 134              Iran Islamic Rep.       1
## 135                         Poland       1
## 136                          Italy       1
## 137                           Cuba       1
## 138                           Peru       1
## 139                        Vanuatu       1
## 141                        Hungary       1
## 143                      Australia       1
## 144                Egypt Arab Rep.       1
## 145                        Georgia       1
## 146                   Bahamas  The       1
## 147                       Suriname       1
## 148                     Luxembourg       1
## 149                          Libya       1
## 150                  United States       1
## 151                      Argentina       1
## 153                         Cyprus       1
## 154                     Cabo Verde       1
## 156                        Iceland       1
## 158                        Estonia       1
## 160                        Romania       1
## 164                        Ecuador       1
## 166                           Fiji       1
## 168                          Samoa       1
## 169                      Sri Lanka       1
## 171                         France       1
## 172                       Malaysia       1
## 173                          Tonga       1
## 175                        Tunisia       1
## 176                   Venezuela RB       1
## 178                      Nicaragua       1
## 179                        Bahrain       1
## 4                         Cameroon       2
## 5                       Gambia The       2
## 8                       Madagascar       2
## 11                        Eswatini       2
## 12                        Botswana       2
## 14                           Nepal       2
## 15                 Congo Dem. Rep.       2
## 17                          Angola       2
## 22                            Chad       2
## 25                   Guinea-Bissau       2
## 27                          Guinea       2
## 29                       Indonesia       2
## 33                           Benin       2
## 39                         Eritrea       2
## 44                         Lesotho       2
## 46                           India       2
## 50                          Malawi       2
## 51                         Myanmar       2
## 54                         Burundi       2
## 55                      Mozambique       2
## 57                    Sierra Leone       2
## 62                        Tanzania       2
## 63                           Gabon       2
## 65                         Nigeria       2
## 70                         Comoros       2
## 73                          Uganda       2
## 75                        Pakistan       2
## 76                           Ghana       2
## 78                     Afghanistan       2
## 84               Equatorial Guinea       2
## 90                         Senegal       2
## 96                      Congo Rep.       2
## 97                         Namibia       2
## 98                        Zimbabwe       2
## 100                          Kenya       2
## 110                     Mauritania       2
## 111                     Yemen Rep.       2
## 112                         Zambia       2
## 120                          Niger       2
## 122                     Bangladesh       2
## 123                        Somalia       2
## 128                        Liberia       2
## 130                         Rwanda       2
## 132               Papua New Guinea       2
## 140                       Cambodia       2
## 142       Central African Republic       2
## 152                         Bhutan       2
## 155                        Lao PDR       2
## 157                           Togo       2
## 159                    Philippines       2
## 161                          Haiti       2
## 162                  Cote d'Ivoire       2
## 163                   Burkina Faso       2
## 165                    Timor-Leste       2
## 167                           Mali       2
## 170                       Ethiopia       2
## 174                   South Africa       2
## 177                       Djibouti       2

Tabel di atas menunjukkan daftar masing-masing negara pada tiap cluster.

  1. Cluster 1 (negara-negara dengan tingkat kesehatan tinggi) Turkiye, Spain, Russian Federation, Algeria, Oman, Norway, Vietnam, Latvia, Belarus, Ukraine, Costa Rica, Israel, New Zealand, Solomon Islands, Iraq, Honduras, Sweden, Dominican Republic, Mexico, Czechia, St. Vincent and the Grenadines, Kiribati, Brazil, Guyana, China, Kuwait, Canada, Grenada, Albania, Saudi Arabia, Lithuania, Turkmenistan, Antigua and Barbuda, Seychelles, Netherlands, Bulgaria, Syrian Arab Republic, El Salvador, Panama, Jordan, Azerbaijan, Thailand, Mongolia, Portugal, Maldives, Trinidad and Tobago, United Arab Emirates, Sao Tome and Principe, Finland, Belize, Lebanon, Slovenia, Jamaica, Belgium, Barbados, Japan, North Macedonia, Morocco, Slovak Republic, St. Lucia, Colombia, Tajikistan, Austria, Moldova, Malta, Montenegro, Greece, Bolivia, Ireland, Croatia, Kyrgyz Republic, Switzerland, Guatemala, Qatar, Kazakhstan, Serbia, Paraguay, Micronesia Fed. Sts., Bosnia and Herzegovina, Brunei Darussalam, United Kingdom, Armenia, Uzbekistan, Uruguay, Chile, Germany, Denmark, Mauritius, Singapore, Iran Islamic Rep., Poland, Italy, Cuba, Peru, Vanuatu, Hungary, Australia, Egypt Arab Rep., Georgia, Bahamas The, Suriname, Luxembourg, Libya, United States, Argentina, Cyprus, Cabo Verde, Iceland, Estonia, Romania, Ecuador, Fiji, Samoa, Sri Lanka, France, Malaysia, Tonga, Tunisia, Venezuela RB, Nicaragua, Bahrain.

  2. Cluster 2 (negara-negara dengan tingkat kesehatan rendah) Cameroon, Gambia The, Madagascar, Eswatini, Botswana, Nepal, Congo Dem. Rep., Angola, Chad, Guinea-Bissau, Guinea, Indonesia, Benin, Eritrea, Lesotho, India, Malawi, Myanmar, Burundi, Mozambique, Sierra Leone, Tanzania, Gabon, Nigeria, Comoros, Uganda, Pakistan, Ghana, Afghanistan, Equatorial Guinea, Senegal, Congo Rep., Namibia, Zimbabwe, Kenya, Mauritania, Yemen Rep., Zambia, Niger, Bangladesh, Somalia, Liberia, Rwanda, Papua New Guinea, Cambodia, Central African Republic, Bhutan, Lao PDR, Togo, Philippines, Haiti, Cote d’Ivoire, Burkina Faso, Timor-Leste, Mali, Ethiopia, South Africa, Djibouti.

Kesimpulan

Berdasarkan analisis clustering dengan metode K-Means yang dilakukan dapat disimpulkan bahwa:

  1. Terdapat dua cluster yang terbentuk, yaitu cluster 1 merupakan negara-negara dengan tingkat kesehatan tinggi yang beranggotakan 121 negara dan cluster 2 merupakan negara-negara dengan tingkat kesehatan rendah yang beranggotakan 58 negara.

  2. Negara-negara yang termasuk dalam cluster 1 adalah Turkiye, Spain, Russian Federation, Algeria, Oman, Norway, Vietnam, Latvia, Belarus, Ukraine, Costa Rica, Israel, New Zealand, Solomon Islands, Iraq, Honduras, Sweden, Dominican Republic, Mexico, Czechia, St. Vincent and the Grenadines, Kiribati, Brazil, Guyana, China, Kuwait, Canada, Grenada, Albania, Saudi Arabia, Lithuania, Turkmenistan, Antigua and Barbuda, Seychelles, Netherlands, Bulgaria, Syrian Arab Republic, El Salvador, Panama, Jordan, Azerbaijan, Thailand, Mongolia, Portugal, Maldives, Trinidad and Tobago, United Arab Emirates, Sao Tome and Principe, Finland, Belize, Lebanon, Slovenia, Jamaica, Belgium, Barbados, Japan, North Macedonia, Morocco, Slovak Republic, St. Lucia, Colombia, Tajikistan, Austria, Moldova, Malta, Montenegro, Greece, Bolivia, Ireland, Croatia, Kyrgyz Republic, Switzerland, Guatemala, Qatar, Kazakhstan, Serbia, Paraguay, Micronesia Fed. Sts., Bosnia and Herzegovina, Brunei Darussalam, United Kingdom, Armenia, Uzbekistan, Uruguay, Chile, Germany, Denmark, Mauritius, Singapore, Iran Islamic Rep., Poland, Italy, Cuba, Peru, Vanuatu, Hungary, Australia, Egypt Arab Rep., Georgia, Bahamas The, Suriname, Luxembourg, Libya, United States, Argentina, Cyprus, Cabo Verde, Iceland, Estonia, Romania, Ecuador, Fiji, Samoa, Sri Lanka, France, Malaysia, Tonga, Tunisia, Venezuela RB, Nicaragua, Bahrain.

  3. Negara-negara yang termasuk dalam cluster 2 adalah Cameroon, Gambia The, Madagascar, Eswatini, Botswana, Nepal, Congo Dem. Rep., Angola, Chad, Guinea-Bissau, Guinea, Indonesia, Benin, Eritrea, Lesotho, India, Malawi, Myanmar, Burundi, Mozambique, Sierra Leone, Tanzania, Gabon, Nigeria, Comoros, Uganda, Pakistan, Ghana, Afghanistan, Equatorial Guinea, Senegal, Congo Rep., Namibia, Zimbabwe, Kenya, Mauritania, Yemen Rep., Zambia, Niger, Bangladesh, Somalia, Liberia, Rwanda, Papua New Guinea, Cambodia, Central African Republic, Bhutan, Lao PDR, Togo, Philippines, Haiti, Cote d’Ivoire, Burkina Faso, Timor-Leste, Mali, Ethiopia, South Africa, Djibouti.