Penerapan PCA dan K-Means Clustering Untuk Mengukur Kematangan Tata Kelola Data 50 Negara Tahun 2021

Annas Brigita Br Karo Sekali (215090500111053)

2023-11-06

> library(tidyverse)
> library(ggplot2)
> library(dplyr)
> library(cluster)
> library(factoextra)

1 PENDAHULUAN

1.1 Latar Belakang Kasus

GovTech adalah istilah untuk teknologi informasi dan komunikasi (TIK) yang digunakan oleh pemerintahan atau sektor publik. Misalnya, teknologi ini digunakan untuk meningkatkan layanan publik, meningkatkan efisiensi, meningkatkan transparansi, dan menghubungkan pemerintah dengan masyarakat.

Dalam era digitalisasi dan GovTech, pengukuran variabel perlu dilakukan karena penting bagi pemerintah untuk mengetahui seberapa banyak mereka telah menggunakan teknologi untuk meningkatkan layanan publik dan administrasi. Dengan memantau dan mengukur variabel yang berkaitan dengan GovTech, pemerintah dapat mengidentifikasi peluang perbaikan, mengukur dampak inisiatif teknologi, dan memastikan bahwa mereka dapat memenuhi kebutuhan masyarakat luas.

Dalam Government Technology (GovTech), indikator GTMI, CGSI, PSDI, dan CEI digunakan untuk mengukur kesiapan dan dampak teknologi dalam pemerintahan.

  1. Government Technology Maturity Index (GTMI)

GTMI adalah indeks yang mengukur tingkat kesiapan pemerintah untuk mengadopsi dan menggunakan TIK untuk meningkatkan layanan publik dan efisiensi pemerintahan. Dalam kebanyakan kasus, GTMI terdiri dari subindeks atau indikator yang menunjukkan kemampuan pemerintah untuk mengadopsi teknologi baru, kebijakan TIK, akses publik terhadap layanan digital, dan aspek lainnya.

  1. Citizen Government Satisfaction Index (CGSI)

CGSI adalah indeks yang mengukur seberapa puas masyarakat dengan layanan pemerintah yang disediakan melalui platform dan aplikasi teknologi. Aksesibilitas, kecepatan layanan, kemudahan penggunaan, dan respons pemerintah terhadap masukan masyarakat adalah komponen yang sering digunakan untuk menilai CGSI.

  1. Public Sector Digitalization Index (PSDI)

Indikator PSDI menunjukkan tingkat digitalisasi proses administrasi dan layanan publik, termasuk penggunaan e-government dan e-services. Digitalisasi sektor publik memiliki potensi untuk meningkatkan efisiensi dan transparansi pemerintahan.

  1. E-Government Efficiency Index (CEI)

CEI adalah indeks yang mengukur efisiensi e-government dalam memberikan layanan dan memproses transaksi pemerintah, dengan mempertimbangkan aspek seperti kecepatan respons, waktu pemrosesan, tingkat akurasi, dan biaya operasional. Efisiensi e-government dapat mengurangi birokrasi, menghemat waktu dan biaya, dan meningkatkan kepuasan warga negara.

Model ini mengukur tata kelola data di tingkat negara dari perspektif hukum, kebijakan, infrastruktur, dan kelembagaan secara global dan membantu negara-negara dalam mengembangkan kerangka kerja ini. Indikator kematangan tata kelola data dan kumpulan data yang digunakan untuk membangun dan memvalidasi model mencakup 50 negara yang digunakan untuk memvalidasi model lebih luas secara geografis.

Data ini diperoleh dari situs World Bank yakni tentang “Mengukur Kematangan Tata Kelola Data suatu Negara: Menuju Kontrak Sosial Baru mengenai Data” tahun 2021. Berikut cuplikan data yang digunakan:

> library(readxl)
> library(DT)
> data <- read_excel("C:/Users/annass/Downloads/Try.xlsx")
> datatable(data, caption = "Indeks Kematangan Tata Kelola Data Negara Tahun 2021")

1.2 Metode

1.2.1 K-Means Clustering

Metode clustering non-hierarki K-Means menggunakan model centroid, yang memungkinkan pembentukan cluster. Centroid adalah titik tengah cluster dengan nilai dan digunakan untuk menghitung jarak suatu obyek data terhadap centroid. Jika berada di jarak terpendek dari centroid kelompok, dianggap termasuk dalam satu kelompok (Singla, A. & Karambir, M., 2012).Metode non-hierarkis dimulai dengan menentukan berapa banyak cluster yang diinginkan; setelah itu, proses cluster dilakukan tanpa mengikuti proses hirarti.Tujuan analisis kelompok adalah untuk mengelompokkan objek berdasarkan kesamaan mereka.

K-means grouping adalah salah satu algoritma pembelajaran mesin tanpa pengawasan yang paling populer dan mudah digunakan. Tujuan sederhana K-means adalah untuk mengelompokkan titik data yang sebanding dan menemukan pola dasar. Untuk mencapai tujuan ini, K-means mencari jumlah (k) kelompok yang tetap dalam kumpulan data. Kumpulan titik data yang dikumpulkan karena kesamaan tertentu disebut cluster. Akan dihitung nomor target k, yang menunjukkan berapa banyak centroid yang dibutuhkan dalam kumpulan data. Centroid adalah lokasi yang mewakili pusat cluster secara nyata atau imajiner. Dengan kata lain, algoritma K-means menemukan jumlah k centroid dan kemudian mengalokasikan setiap titik data ke cluster terdekat sambil menjaga jumlah centroid yang paling kecil.

1.2.2 PCA (Principal Components Analysis)

Analisis komponen utama (PCA) adalah metode analisis statistik multivariat yang paling populer saat ini. Pengenalan pola dan pemrosesan sinyal adalah dua bidang di mana PCA biasanya digunakan.PCA adalah dasar analisis data multivariat dengan metode proyeksi. Biasanya digunakan untuk meringkas tabel data multivariat yang sangat besar menjadi kumpulan variabel yang lebih kecil atau indeks ringkasan. Setelah itu, variabel dianalisis untuk menemukan tren, klaster, atau outlier.

Cara yang bisa dilakukan untuk menyusun komponen utama dalam PCA, di antaranya:

  1. KRITERIA APRIORI

Dalam kriteria ini, analis data harus sudah mengetahui berapa banyak komponen utama yang akan disusun.

  1. KRITERIA NILAI EIGEN

Ditentukan dengan melihat besaran nilai eigen. Jika komponen lebih kecil atau kurang dari satu, maka akan langsung dikeluarkan.

  1. KRITERIA PERSENTASE VARIAN

Ditentukan dengan melihat persentase kumulatif varian atau pembahasan sebelumnya. Komponen yang lebih besar persentase variannya akan diambil.

Cara kerja PCA ada 5 tahapan besar yaitu, tahap pertama adalah standarisasi. Pada tahap ini, seluruh variabel disamakan standarnya. Jadi, tiap variabel bisa memiliki kontribusi yang sama dalam analisis. Tahap selanjutnya adalah menghitung matrik kovarians. Dengan melakukan tahapan ini, maka Anda bisa mengetahui hubungan antarvariabel dari kumpulan input. Selanjutnya adalah menghitung nilai dan vektor eigen matriks kovarians.

1.2.3 Tahapan Analisis

Analisis yang saya gunakan kali ini menggunakan dua pendekatan untuk pengukuran indeks kinerja pemerintah berdasarkan 4 variabel sebelumnya. Pertama, dengan mempertimbangkan semua variabel dalam algoritma pengelompokan menggunakan pengelompokan K-means. Kedua, dengan menerapkan reduksi dimensi melalui Principal Component Analysis (PCA) pada dataset, kemudian mengidentifikasi jumlah cluster yang optimal, dan mengulangi analisis clustering dengan jumlah cluster yang diperbarui. Hasil menunjukkan bahwa PCA dapat digunakan secara efektif dalam proses pengelompokan sebagai alat pemeriksaan untuk K-means.

1.3 Tujuan Analisis

Peningkatan pesat dalam produksi dan penggunaan data telah melampaui kemampuan negara-negara untuk mengaturnya. Untuk membangun kontrak sosial baru mengenai data, kerangka tata kelola data suatu negara perlu melindungi terhadap dampak yang merugikan masyarakat, sekaligus memungkinkan potensi data untuk meningkatkan kehidupan.

Untuk memandu negara-negara dalam mengembangkan kinerja ini dilakukan analisis PCA dan K-Means Clustering kematangan tata kelola data suatu negara. Tujuan analisis ini adalah untuk mengukur tata kelola data di tingkat negara pada dimensi hukum, kebijakan, infrastruktur, dan kelembagaan dalam skala global. Diharapkan pula agar hasil analisis ini nantinya bisa dijadikan sebagai saran dan masukan bagi sebuah negara untuk meningkatkan layanan publik, meningkatkan efisiensi, meningkatkan transparansi, dan menghubungkan pemerintah dengan masyarakat di era Goverment Tech sekarang.

2 SOURCE CODE

2.1 Library yang Dibutuhkan

> library(readxl)         #membaca data
> library(tidyverse)      #manajemen dan manipulasi data
> library(ggplot2)        #membuat grafik dan visualisasi data 
> library(dplyr)          #menyederhanakan proses manipulasi
> library(cluster)        #membantu proses _clustering_
> library(factoextra)     #analisis PCA

2.2 Import Data

> library(readxl)
> library(DT)
> data <- read_excel("C:/Users/annass/Downloads/Try.xlsx")
> datatable(data, caption = "Indeks Kematangan Tata Kelola Data Negara")
> statdes <- summary(data)
> statdes

Untuk mengimport file data dari excel ke R dapat menggunakan fungsi read excel dari library readxl, yang kemudian disimpan dalam variabel data.

Summary digunakan untuk melihat gambaran data secara keseluruhan.

2.3 Standarisasi Data

> sc <- scale(data[,2:5])
> sc
> s <- cov(sc)
> s_eig <- eigen(s)
> s_eig
> plot(s_eig$values, xlab="Eigenvalue Number", ylab = "Eigenvalue Size",
+      main = "Scree Plot")
> lines(s_eig$values)

Dilakukan standarisasi menggunakan fungsi scale dengan argument yang memuat data awal dari kolom 2 sampai kolom 5. Standarisasi ini perlu dilakukan dengan tujuan untuk mempersempit dan menyamakan peubah yang memiliki satuan yang berbeda-beda.

2.4 Eksplorasi Korelasi

> library(corrplot)
> kor <- cor(data[,2:5])
> corrplot(kor, method="number")

Untuk melihat korelasi antara tiap peubah digunakan fungsi cor(…) dengan argument yang diisikan adalah data untuk kolom 2 sampai 5. Melalui output yang dihasilkan nantinya kita bisa melihat perbandingan nilai korelasi antar variabel.

2.5 Uji Asumsi

> library(psych)
> kmo <- KMO(data[,2:5])
> kmo
> korelasi <- cor(data[,2:5], method = 'pearson')
> korelasi

Digunakan Uji KMO dengan menggunakan function KMO untuk mengukur kelayakan data sebelum melakukan analisis faktor atau analisis komponen utama (PCA). Dan Uji Multikolinearitas dengan menggunakan function cor untuk menguji mengidentifikasi tingkat multikolinearitas antara variabel-variabel independen.

2.6 Proses PCA

> dafrem <- cbind(data$GTMI, data$CGSI, data$PSDI, data$CEI)
> dafrem
> pca_data = prcomp(dafrem, center = TRUE, scale = TRUE)
> pca_data
> summary(pca_data)

Digunakan function prcomp untuk melakukan analisis Principal Component Analysis (PCA). Dengan tujuan mereduksi dimensi data agar dapat mengidentifikasi pola dalam data dan mengurangi kerumitan data sambil mempertahankan sebagian besar variasi dalam data.

2.7 Proses Clustering

> data_transform = as.data.frame(-pca_data$x[,1:2])
> data_transform
> fviz_nbclust(data_transform, kmeans, method = 'wss')
> fviz_nbclust(data_transform, kmeans, method = 'silhouette')
> fviz_nbclust(data_transform, kmeans, method = 'gap_stat')

Digunakan 3 metode untuk menentukan k optimal pada proses clustering, yaitu metode elbow menggunakan function wss, metode silhouette menggunakan function silhoutte, dan statistik gap dengan function gap stat

3 HASIL DAN PEMBAHASAN

3.1 Analisis Data Eksplanatori

3.1.1 Statistik Deskriptif

> statdes <- summary(data)
> statdes
   Economy               GTMI             CGSI             PSDI       
 Length:50          Min.   :0.5093   Min.   :0.3991   Min.   :0.5759  
 Class :character   1st Qu.:0.7815   1st Qu.:0.6825   1st Qu.:0.8165  
 Mode  :character   Median :0.8474   Median :0.7873   Median :0.8849  
                    Mean   :0.8208   Mean   :0.7502   Mean   :0.8686  
                    3rd Qu.:0.8895   3rd Qu.:0.8423   3rd Qu.:0.9423  
                    Max.   :0.9793   Max.   :0.9674   Max.   :1.0000  
      CEI        
 Min.   :0.2411  
 1st Qu.:0.7909  
 Median :0.8512  
 Mean   :0.8116  
 3rd Qu.:0.9100  
 Max.   :1.0000  

Interpretasi:

  • Variabel GTMI memiliki indeks rata-rata sebesar 0.8208 yang relatif tinggi. Ini menunjukkan bahwa 50 negara tersebut telah mencapai tingkat kematangan yang tinggi dalam menerapkan teknologi untuk meningkatkan efisiensi, transparansi, dan layanan pemerintahan. Dengan nilai GTMI yang cukup tinggi, pemerintah mungkin telah berhasil meningkatkan efisiensi operasional dan proses pengambilan keputusan. Ini juga dapat menghasilkan peningkatan transparansi dalam pemerintahan.

  • Variabel CGSI memiliki indeks rata-rata sebesar 0.7502. Indeks 0.75, menunjukkan bahwa pelayanan pemerintah yang menggunakan platform dan aplikasi teknologi mendapatkan respon positif dari warga dalam prosesnya. Pemerintah mungkin telah mengadopsi layanan publik digital yang memungkinkan warga untuk mengakses layanan pemerintahan dengan mudah dan efisien melalui platform online. Sehingga tingkat kepuasan masyarakat menghasilkan indeks yang cukup tinggi. Namun perlu diperhatikan bahwa indeks terkecil variabel CGSI adalah sebesar 0.3991, sehingga perlu diperhatikan kembali oleh negara yang memiliki indeks CGSI yang rendah. Pemerintah mungkin kurang responsif terhadap kontribusi data atau umpan balik yang diberikan oleh warga. Ini dapat mencerminkan rendahnya pelayanan publik yang dilakukan pemerintah. Sehingga diperlukan perbaikan dan peningkatan keterlibatan masyarakat dalam pengambilan keputusan dan pelayanan publik.

  • Variabel PSDI memiliki indeks rata-rata sebesar 0.8686. Indeks sebesar 0.8686 mengindikasikan bahwa suatu negara atau pemerintah telah mencapai tingkat digitalisasi sektor publik yang tinggi. Ini menunjukkan bahwa negara atau pemerintah tersebut telah mencapai tingkat digitalisasi yang tinggi dalam sektor publik. Digitalisasi mencakup penggunaan teknologi informasi dan komunikasi (TIK) untuk meningkatkan efisiensi dan efektivitas dalam penyelenggaraan layanan publik dan operasi pemerintahan.

  • Variabel CEI memiliki indeks rata-rata sebesar 0.8116. Indeks CEI yang tinggi menandakan bahwa pemerintah telah berhasil mendorong dan memfasilitasi keterlibatan warga dalam berbagai aspek teknologi dan layanan publik melalui efisiensi e-government. Ini juga mencerminkan bahwa pemerintah telah mengintegrasikan teknologi (seperti platform online atau media sosial) sebagai alat untuk meningkatkan keterlibatan warga. Namun perlu diperhatikan bahwa indeks terkecil variabel CEI adalah sebesar 0.2411. Artinya negara tersebut masih belum bisa mengatasi tantangan dari berbagai aspek seperti kecepatan respons dan biaya operasional.

3.1.2 Eksplorasi Korelasi

> library(corrplot)
> kor <- cor(data[,2:5])
> corrplot(kor, method="number")

Dari Output di atas, bisa disimpulkan bahwa semua variabel memiliki hubungan yang arahnya positif/searah. Korelasi tertinggi yang dihasilkan dari 4 variabel adalah antara variabel GTMI dan CEI yaitu sebesar 0.88. Artinya kesiapan pemerintah dan efisiensi e-government memiliki hubungan yang cukup erat.

3.2 Uji Asumsi

3.2.1 Uji Sampel Representatif

> library(psych)
> kmo <- KMO(data[,2:5])
> kmo
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data[, 2:5])
Overall MSA =  0.47
MSA for each item = 
GTMI CGSI PSDI  CEI 
0.48 0.42 0.43 0.52 

Uji KMO pada masing masing variabel tersebut bernilai kurang dari 0.5 sehingga dapat disimpulkan bahwa sampel tidak representatif.

3.2.2 Uji Non-Multikolinearitas

> korelasi <- cor(data[,2:5], method = 'pearson')
> korelasi
          GTMI      CGSI      PSDI       CEI
GTMI 1.0000000 0.8049214 0.7230630 0.8807515
CGSI 0.8049214 1.0000000 0.3746086 0.5893296
PSDI 0.7230630 0.3746086 1.0000000 0.5768225
CEI  0.8807515 0.5893296 0.5768225 1.0000000

Menurut Gujarati (1995) Apabila nilai mutlak dari korelasi lebih dari 0.8 maka dapat dikatakan terjadi multikolinearitas. Berdasarkan output, dilihat bahwa nilai korelasi antar variabel ada yang lebih dari 0.8, sehingga dapat disimpulkan bahwa terjadi multikolinearitas antar variabel sehingga perlu dilakukan analisis PCA untuk menerapkan reduksi dimensi

3.3 PCA

Karena data mengalami multikolinieritas perlu dilakukan transformasi data menggunakan PCA terlebih dahulu sebagai berikut

> dafrem <- cbind(data$GTMI, data$CGSI, data$PSDI, data$CEI)
> dafrem
           [,1]      [,2]      [,3]      [,4]
 [1,] 0.8680938 0.7571647 0.9086952 0.8809417
 [2,] 0.9032018 0.7917059 0.9372667 0.9494083
 [3,] 0.9196680 0.8581647 0.9848857 0.9107167
 [4,] 0.8152677 0.7978800 0.8072762 0.7262000
 [5,] 0.9175791 0.9283906 0.9154095 0.9137000
 [6,] 0.8987143 0.8434212 0.9070095 0.9851250
 [7,] 0.8533310 0.8066306 0.8627333 0.8392750
 [8,] 0.8539828 0.8079200 0.8851524 0.9255833
 [9,] 0.7625993 0.6279506 0.7865429 0.8482250
[10,] 0.9295275 0.8704400 0.9439810 0.9077417
[11,] 0.9669713 0.8767906 0.9983143 1.0000000
[12,] 0.8914120 0.8642424 0.8963619 0.8422667
[13,] 0.9472838 0.9674282 0.9664000 0.9345333
[14,] 0.8834297 0.8389835 0.9243714 0.8750000
[15,] 0.8201246 0.8101176 0.7731143 0.9047583
[16,] 0.8170119 0.7468354 1.0000000 0.6666667
[17,] 0.8150860 0.7659882 0.8151143 0.8184417
[18,] 0.8093181 0.6848635 0.8325048 0.8452417
[19,] 0.8597871 0.7501082 0.8560190 0.9136833
[20,] 0.8387854 0.6062800 0.9731143 0.7886917
[21,] 0.9793289 0.9271812 1.0000000 1.0000000
[22,] 0.7777159 0.6817576 0.8151143 0.8511917
[23,] 0.7802700 0.6640376 0.7899143 0.8006000
[24,] 0.8552675 0.8538871 0.9579714 0.7976083
[25,] 0.8319771 0.8063435 0.7081333 0.8958250
[26,] 0.8620247 0.7828941 0.9019524 0.8511833
[27,] 0.8958440 0.8890071 0.8302571 0.8869083
[28,] 0.8875798 0.8179318 0.8845905 0.9345250
[29,] 0.9007788 0.7931812 0.9647143 0.8512000
[30,] 0.7755429 0.6055059 0.8817810 0.8154750
[31,] 0.8414165 0.8090447 0.9053238 0.8303500
[32,] 0.8900944 0.7569341 0.9899143 0.8898833
[33,] 0.7588912 0.8201388 0.7198762 0.5684417
[34,] 0.7717346 0.6882259 0.7848857 0.7708333
[35,] 0.8681994 0.8719835 0.8728190 0.8363000
[36,] 0.8859033 0.7738235 0.9238095 0.8511833
[37,] 0.7895314 0.5610494 0.9512571 0.7053667
[38,] 0.8216739 0.6847341 0.8459333 0.8601167
[39,] 0.7850611 0.6678588 0.9596571 0.6607250
[40,] 0.7983622 0.5953694 0.9238095 0.8809583
[41,] 0.9175850 0.8766706 0.8929905 0.9732167
[42,] 0.8821524 0.8059906 0.9848857 0.9583333
[43,] 0.8730321 0.8722871 0.8593905 0.9226083
[44,] 0.7477318 0.6055412 0.8593905 0.8571333
[45,] 0.5833296 0.3990776 0.7714286 0.7083333
[46,] 0.6041032 0.4578447 0.8207333 0.4226250
[47,] 0.5093042 0.4469576 0.6061524 0.3601167
[48,] 0.7151404 0.6968259 0.6509905 0.7678500
[49,] 0.5398483 0.5525718 0.8207333 0.3541667
[50,] 0.5380763 0.7437671 0.5759238 0.2410833
> pca_data = prcomp(dafrem, center = TRUE, scale = TRUE)
> pca_data
Standard deviations (1, .., p=4):
[1] 1.7330747 0.7926470 0.5846965 0.1621507

Rotation (n x k) = (4 x 4):
            PC1         PC2        PC3        PC4
[1,] -0.5713415 -0.05201660  0.0257799 -0.8186566
[2,] -0.4632658 -0.66237283 -0.4730694  0.3505031
[3,] -0.4408946  0.74723815 -0.4317673  0.2466256
[4,] -0.5143595  0.01384375  0.7675401  0.3822628
> summary(pca_data)
Importance of components:
                          PC1    PC2     PC3     PC4
Standard deviation     1.7331 0.7926 0.58470 0.16215
Proportion of Variance 0.7509 0.1571 0.08547 0.00657
Cumulative Proportion  0.7509 0.9080 0.99343 1.00000

3.3.1 Dekomposisi Eigen (Matriks Kovarians)

> sc <- scale(data[,2:5])
> sc
              GTMI          CGSI        PSDI         CEI
 [1,]  0.441683289  0.0543435484  0.40482185  0.41822413
 [2,]  0.769377341  0.3236490312  0.69309217  0.83121153
 [3,]  0.923071479  0.8418052548  1.17354270  0.59782539
 [4,] -0.051390511  0.3717864690 -0.61844169 -0.51516960
 [5,]  0.903574123  1.3893319196  0.47256538  0.61582070
 [6,]  0.727491981  0.7268551080  0.38781390  1.04665261
 [7,]  0.303888708  0.4400117477 -0.05890900  0.16689295
 [8,]  0.309971978  0.4500648406  0.16728711  0.68750036
 [9,] -0.542992761 -0.9530937740 -0.82762985  0.22087889
[10,]  1.015099461  0.9375114335  0.76083569  0.57988035
[11,]  1.364595905  0.9870247508  1.30902975  1.13637784
[12,]  0.659332631  0.8891905451  0.28038516  0.18493853
[13,]  1.180835002  1.6936948124  0.98703180  0.74148629
[14,]  0.584826891  0.6922563246  0.56298617  0.38238430
[15,] -0.006056866  0.4671991268 -0.96311690  0.56188503
[16,] -0.035110737 -0.0261901045  1.32603770 -0.87427159
[17,] -0.053086381  0.1231375239 -0.53935953  0.04122736
[18,] -0.106924183 -0.5093634595 -0.36389900  0.20288358
[19,]  0.364148747 -0.0006732869 -0.12665252  0.61572017
[20,]  0.168121302 -1.1220517779  1.05477533 -0.13822310
[21,]  1.479940551  1.3799025587  1.32603770  1.13637784
[22,] -0.401895724 -0.5335789388 -0.53935953  0.23877367
[23,] -0.378056462 -0.6717355867 -0.79361395 -0.06639265
[24,]  0.321963653  0.8084539355  0.90199206 -0.08443823
[25,]  0.104573124  0.4377736503 -1.61873969  0.50799963
[26,]  0.385034203  0.2549467810  0.33679006  0.23872340
[27,]  0.700700118  1.0822723031 -0.38657626  0.45421476
[28,]  0.623563710  0.5281230715  0.16161779  0.74143603
[29,]  0.746761346  0.3351513839  0.97002385  0.23882394
[30,] -0.422178129 -1.1280873027  0.13327121  0.02333258
[31,]  0.192679657  0.4588337794  0.37080595  0.11305781
[32,]  0.647034431  0.0525457325  1.22427827  0.47215980
[33,] -0.577603473  0.5453307379 -1.50026059 -1.46675972
[34,] -0.457724663 -0.4831483685 -0.84434953 -0.24594364
[35,]  0.442668664  0.9495457930  0.04285042  0.14894791
[36,]  0.607914804  0.1842265742  0.55731685  0.23872340
[37,] -0.291610799 -1.4746988689  0.83424853 -0.64083519
[38,]  0.008403987 -0.5103724378 -0.22841195  0.29260881
[39,] -0.333336696 -0.6419432091  0.91900001 -0.91011142
[40,] -0.209185282 -1.2071178218  0.55731685  0.41832466
[41,]  0.903629008  0.9860891528  0.24636927  0.97482216
[42,]  0.572904564  0.4350218913  1.17354270  0.88504666
[43,]  0.487776695  0.9519123057 -0.09263663  0.66955531
[44,] -0.681764226 -1.1278121268 -0.09263663  0.27461350
[45,] -2.216279042 -2.7375361186 -0.98012485 -0.62294041
[46,] -2.022379718 -2.2793498966 -0.48266637 -2.34631832
[47,] -2.907224466 -2.3642324899 -2.64767254 -2.72336535
[48,] -0.985969767 -0.4160971737 -2.19528032 -0.26393896
[49,] -2.622129213 -1.5407961206 -0.48266637 -2.75925544
[50,] -2.638668253 -0.0501132240 -2.95266254 -3.44136827
attr(,"scaled:center")
     GTMI      CGSI      PSDI       CEI 
0.8207735 0.7501946 0.8685720 0.8116068 
attr(,"scaled:scale")
      GTMI       CGSI       PSDI        CEI 
0.10713631 0.12826021 0.09911332 0.16578391 
> s <- cov(sc)
> s_eig <- eigen(s)
> s_eig
eigen() decomposition
$values
[1] 3.00354794 0.62828926 0.34186996 0.02629285

$vectors
           [,1]        [,2]       [,3]       [,4]
[1,] -0.5713415  0.05201660  0.0257799  0.8186566
[2,] -0.4632658  0.66237283 -0.4730694 -0.3505031
[3,] -0.4408946 -0.74723815 -0.4317673 -0.2466256
[4,] -0.5143595 -0.01384375  0.7675401 -0.3822628
> plot(s_eig$values, xlab="Eigenvalue Number", ylab = "Eigenvalue Size",
+      main = "Scree Plot")
> lines(s_eig$values)

Bisa dilihat secara visual, kita bisa menggunakan sekitar 2-3 PC.

> for (eg in s_eig$values){
+ print(eg / sum(s_eig$values))
+ }
[1] 0.750887
[1] 0.1570723
[1] 0.08546749
[1] 0.006573212

Berdasarkan kumulasi, jika menggunakan 2 PC sudah menangkap sekitar 75% keragaman. Sehingga dapat kita susun 2 buah PC

3.3.2 Persamaan PC

> s_eig$vectors[,1:2]
           [,1]        [,2]
[1,] -0.5713415  0.05201660
[2,] -0.4632658  0.66237283
[3,] -0.4408946 -0.74723815
[4,] -0.5143595 -0.01384375

Hasil di atas dapat dituliskan dalam bentuk persamaan

\[ PC1 = -0.571X1 - 0.463X2 - 0.441X3 - 0.514X4 \] \[ PC2 = 0.052X1 + 0.662X2 - 0.747X3 - 0.014X4 \]

3.3.3 Uji Asumsi

3.3.3.1 Uji Sampel Representatif

> kmo <- KMO(data_transform)
> kmo
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data_transform)
Overall MSA =  0.5
MSA for each item = 
PC1 PC2 
0.5 0.5 

H0 : Tidak ada perbedaan yang signifikan antara karakteristik populasi dan sampel (Sampel representatif)

H1 : Ada perbedaan yang signifikan antara karakteristik populasi dan sampel (Sampel tidak representatif)

Uji KMO pada masing masing variabel tersebut sudah bernilai lebih dari 0.5 sehingga dapat disimpulkan bahwa sampel representatif.

3.3.3.2 Uji Non-Multikolinearitas

> korelasi <- cor(data_transform, method = 'pearson')
> korelasi
              PC1           PC2
PC1  1.000000e+00 -6.311273e-16
PC2 -6.311273e-16  1.000000e+00

H0 : Tidak ada masalah multikolinearitas di antara variabel-variabel independen.

H1 : Ada masalah multikolinearitas di antara variabel-variabel independen.

Berdasarkan output, dilihat bahwa nilai korelasi antar variabel kurang dari 0.8, sehingga dapat disimpulkan bahwa tidak terjadi multikolinearitas antar variabel.

3.4 Clustering

Clustering adalah pengelompokan data berdasarkan karakteristiknya. Clustering bertujuan untuk menghasilkan cluster dimana:

  1. Observasi di satu cluster yang sama yang memiliki karakteristik yang mirip.

  2. Observasi dari cluster yang berbeda memiliki karakteristik yang berbeda.

Langkah dalam clustering, pertama adalah menentukan banyak cluster yang optimal. Metode clustering, yang harus dilakukan adalah meminimalkan jumlah kuadrat dalam cluster. Ini berarti jarak antar observasi dalam cluster yang sama minimal. Untuk mendapatkan banyak cluster yang optimal dapat digunakan 3 metode yaitu metode elbow, metode silhouette, dan statistik gap. kemudian menentukan banyak cluster berdasarkan voting mayoritas.

3.4.1 Metode Elbow

> data_transform = as.data.frame(-pca_data$x[,1:2])
> data_transform
           PC1         PC2
1   0.67112881 -0.24931757
2   1.32263484 -0.27501528
3   1.74227436 -0.27958805
4  -0.39477556  0.71284320
5   1.68498405  0.60561242
6   1.46171423  0.21501179
7   0.43733693  0.34896771
8   0.81297783  0.17971352
9  -1.00305633 -0.04416925
10  1.64800068  0.09723095
11  2.39855589 -0.26912869
12  1.00738081  0.41119717
13  2.27585834  0.43546768
14  1.09973507  0.06297411
15  0.07735476  1.02104404
16  0.10275967 -0.99793671
17 -0.18988005  0.48126085
18 -0.35314686 -0.07383981
19  0.46860251  0.10461153
20 -0.02980518 -1.52072636
21  2.65396262 -0.01560625
22 -0.59179372  0.02539105
23 -0.91124120  0.12933313
24  0.91273200 -0.12058856
25 -0.18984655  1.49796034
26  0.60937269 -0.06606922
27  0.96490907  1.03589230
28  1.05355025  0.25121880
29  1.13243950 -0.46730589
30 -0.69305222 -0.86908300
31  0.54428655  0.03529607
32  1.17665777 -0.85290250
33 -1.49327434  1.47252471
34 -0.98411575  0.29050133
35  0.78831232  0.61789799
36  0.80118043 -0.26610490
37 -0.81159091 -1.60647984
38 -0.18183599 -0.17099237
39 -0.55078179 -1.11665729
40 -0.21784535 -1.23268275
41  1.58313403  0.50257066
42  1.50149567 -0.57122101
43  1.02322462  0.71584580
44 -0.81158984 -0.71707523
45 -3.28700596 -1.18754234
46 -3.63107038 -1.22182819
47 -5.32441926  0.29891624
48 -1.85973566  1.31715286
49 -3.84398361 -0.75811056
50 -4.60270979  2.08353536
> fviz_nbclust(data_transform, kmeans, method = 'wss')

Berdasarkan grafik di atas, diketahui bahwa 2-3 cluster sudah cukup baik karena tidak ada penurunan yang signifikan dalam total within sum of squares pada jumlah cluster yang lebih banyak. Metode ini mungkin belum cukup baik dimana banyak cluster optimal kurang jelas.

3.4.2 Metode Silhouette

> fviz_nbclust(data_transform, kmeans, method = 'silhouette')

Berdasarkan metode silhouette, banyak cluster dengan skor tertinggi dianggap sebagai k-cluster yang optimal. Grafik di atas menunjukkan bahwa banyak cluster yang optimal adalah 2.

3.4.3 Statistik Gap

> fviz_nbclust(data_transform, kmeans, method = 'gap_stat')

Berdasarkan metode statistik gap, k yang optimal adalah 1.

Dua dari tiga metode menunjukkan bahwa k = 2 adalah banyak cluster yang optimal.

3.5 Visualisasi Data

3.5.1 Cluster Plot

> kmeans_data = kmeans(data_transform, centers = 2, nstart = 50)
> fviz_cluster(kmeans_data, data = data_transform)

3.5.2 Dendogram

> d <- dist(data_transform, method = "euclidean")
> H.fit <- hclust(d, method="ward.D")
> plot(H.fit)
> groups <- cutree(H.fit, k=2)
> rect.hclust(H.fit, k=2, border="red") 

> data <- data[complete.cases(data), ]
> k2 <- kmeans(data_transform,centers = 2, nstart = 25)
> k2
K-means clustering with 2 clusters of sizes 43, 7

Cluster means:
         PC1         PC2
1  0.5591209 -0.04661972
2 -3.4345999  0.28637830

Clustering vector:
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1
[39] 1 1 1 1 1 1 2 2 2 2 2 2

Within cluster sum of squares by cluster:
[1] 58.62437 22.65028
 (between_SS / total_SS =  54.3 %)

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
[6] "betweenss"    "size"         "iter"         "ifault"      
> str(k2)
List of 9
 $ cluster     : int [1:50] 1 1 1 1 1 1 1 1 1 1 ...
 $ centers     : num [1:2, 1:2] 0.5591 -3.4346 -0.0466 0.2864
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:2] "1" "2"
  .. ..$ : chr [1:2] "PC1" "PC2"
 $ totss       : num 178
 $ withinss    : num [1:2] 58.6 22.7
 $ tot.withinss: num 81.3
 $ betweenss   : num 96.7
 $ size        : int [1:2] 43 7
 $ iter        : int 1
 $ ifault      : int 0
 - attr(*, "class")= chr "kmeans"
> data %>%
+   as_tibble() %>%
+   mutate(cluster = k2$cluster,
+          Economy = row.names(data)) %>%
+   ggplot(aes(GTMI, CGSI, color = factor(cluster), label = Economy)) +
+   geom_text()

Dari berbagai visualisasi data di atas bisa dilihat bahwa output yang dihasilkan menunjukkan bahwa ada 2 cluster yang terbentuk dari 50 negara yang digunakan sebagai sampel. Di mana cluster 1 memuat 7 negara dan cluster 2 memuat 43 negara.

Berdasarkan hasil clustering penggunakan software R, diperoleh anggota tiap cluster sebagai berikut:

3.5.3 Hasil Cluster

> hasil_kmeans = data.frame(data$Economy, data_transform, kmeans_data$cluster)
> hasil_kmeans
               data.Economy         PC1         PC2 kmeans_data.cluster
1                 Argentina  0.67112881 -0.24931757                   2
2                 Australia  1.32263484 -0.27501528                   2
3                   Austria  1.74227436 -0.27958805                   2
4                   Belgium -0.39477556  0.71284320                   2
5                    Brazil  1.68498405  0.60561242                   2
6                    Canada  1.46171423  0.21501179                   2
7                     Chile  0.43733693  0.34896771                   2
8                  Colombia  0.81297783  0.17971352                   2
9                   Croatia -1.00305633 -0.04416925                   2
10                  Denmark  1.64800068  0.09723095                   2
11                  Estonia  2.39855589 -0.26912869                   2
12                  Finland  1.00738081  0.41119717                   2
13                   France  2.27585834  0.43546768                   2
14                  Germany  1.09973507  0.06297411                   2
15                   Greece  0.07735476  1.02104404                   2
16     Hong Kong SAR, China  0.10275967 -0.99793671                   2
17                    India -0.18988005  0.48126085                   2
18                   Israel -0.35314686 -0.07383981                   2
19                    Italy  0.46860251  0.10461153                   2
20                    Japan -0.02980518 -1.52072636                   2
21              Korea, Rep.  2.65396262 -0.01560625                   2
22                Lithuania -0.59179372  0.02539105                   2
23               Luxembourg -0.91124120  0.12933313                   2
24                 Malaysia  0.91273200 -0.12058856                   2
25                    Malta -0.18984655  1.49796034                   2
26                   Mexico  0.60937269 -0.06606922                   2
27              Netherlands  0.96490907  1.03589230                   2
28              New Zealand  1.05355025  0.25121880                   2
29                   Norway  1.13243950 -0.46730589                   2
30                     Peru -0.69305222 -0.86908300                   2
31                 Portugal  0.54428655  0.03529607                   2
32                Singapore  1.17665777 -0.85290250                   2
33                 Slovenia -1.49327434  1.47252471                   1
34             South Africa -0.98411575  0.29050133                   2
35                    Spain  0.78831232  0.61789799                   2
36                   Sweden  0.80118043 -0.26610490                   2
37              Switzerland -0.81159091 -1.60647984                   2
38                 Thailand -0.18183599 -0.17099237                   2
39                   Turkey -0.55078179 -1.11665729                   2
40     United Arab Emirates -0.21784535 -1.23268275                   2
41           United Kingdom  1.58313403  0.50257066                   2
42 United States of America  1.50149567 -0.57122101                   2
43                  Uruguay  1.02322462  0.71584580                   2
44                  Albania -0.81158984 -0.71707523                   2
45                  Armenia -3.28700596 -1.18754234                   1
46               Azerbaijan -3.63107038 -1.22182819                   1
47                  Bahrain -5.32441926  0.29891624                   1
48               Bangladesh -1.85973566  1.31715286                   1
49                  Belarus -3.84398361 -0.75811056                   1
50                   Bhutan -4.60270979  2.08353536                   1

Untuk memudahkan identifikasi cluster kita urutkan data sesuai cluster masing-masing sebagai berikut

> hasil_kmeans[order(hasil_kmeans$kmeans_data.cluster),]
               data.Economy         PC1         PC2 kmeans_data.cluster
33                 Slovenia -1.49327434  1.47252471                   1
45                  Armenia -3.28700596 -1.18754234                   1
46               Azerbaijan -3.63107038 -1.22182819                   1
47                  Bahrain -5.32441926  0.29891624                   1
48               Bangladesh -1.85973566  1.31715286                   1
49                  Belarus -3.84398361 -0.75811056                   1
50                   Bhutan -4.60270979  2.08353536                   1
1                 Argentina  0.67112881 -0.24931757                   2
2                 Australia  1.32263484 -0.27501528                   2
3                   Austria  1.74227436 -0.27958805                   2
4                   Belgium -0.39477556  0.71284320                   2
5                    Brazil  1.68498405  0.60561242                   2
6                    Canada  1.46171423  0.21501179                   2
7                     Chile  0.43733693  0.34896771                   2
8                  Colombia  0.81297783  0.17971352                   2
9                   Croatia -1.00305633 -0.04416925                   2
10                  Denmark  1.64800068  0.09723095                   2
11                  Estonia  2.39855589 -0.26912869                   2
12                  Finland  1.00738081  0.41119717                   2
13                   France  2.27585834  0.43546768                   2
14                  Germany  1.09973507  0.06297411                   2
15                   Greece  0.07735476  1.02104404                   2
16     Hong Kong SAR, China  0.10275967 -0.99793671                   2
17                    India -0.18988005  0.48126085                   2
18                   Israel -0.35314686 -0.07383981                   2
19                    Italy  0.46860251  0.10461153                   2
20                    Japan -0.02980518 -1.52072636                   2
21              Korea, Rep.  2.65396262 -0.01560625                   2
22                Lithuania -0.59179372  0.02539105                   2
23               Luxembourg -0.91124120  0.12933313                   2
24                 Malaysia  0.91273200 -0.12058856                   2
25                    Malta -0.18984655  1.49796034                   2
26                   Mexico  0.60937269 -0.06606922                   2
27              Netherlands  0.96490907  1.03589230                   2
28              New Zealand  1.05355025  0.25121880                   2
29                   Norway  1.13243950 -0.46730589                   2
30                     Peru -0.69305222 -0.86908300                   2
31                 Portugal  0.54428655  0.03529607                   2
32                Singapore  1.17665777 -0.85290250                   2
34             South Africa -0.98411575  0.29050133                   2
35                    Spain  0.78831232  0.61789799                   2
36                   Sweden  0.80118043 -0.26610490                   2
37              Switzerland -0.81159091 -1.60647984                   2
38                 Thailand -0.18183599 -0.17099237                   2
39                   Turkey -0.55078179 -1.11665729                   2
40     United Arab Emirates -0.21784535 -1.23268275                   2
41           United Kingdom  1.58313403  0.50257066                   2
42 United States of America  1.50149567 -0.57122101                   2
43                  Uruguay  1.02322462  0.71584580                   2
44                  Albania -0.81158984 -0.71707523                   2

3.6 Interpretasi Hasil

Untuk mempermudah hasil interpretasi berikut tabel yang memuat negara-negara yang sudah digolongkan berdasarkan clusternya masing-masing.

Hasil Cluster
Cluster Negara
1 Slovenia, Armenia, Azerbaijan, Bahrain, Bangladesh, Belarus, Bhutan.
2 Argentina, Australia, Austria, Belgium, Brazil, Canada, Chile, Colombia, Croatia, Denmark, Estonia, Finland, France, Germany, Greece, Hong Kong SAR, India, Israel, Italy, Japan, Korea, Lithuania, Luxembourg, Malaysia, Malta, Mexico, Netherlands, New Zealand, Norway, Peru, Portugal, Singapore, South Africa, Spain, Sweden, Switzerland, Thailand, Turkey, United Arab Emirates, United Kingdom, United States of America, Uruguay, Albania.
> mean.klaster <- data %>% mutate(Klaster = k2$cluster) %>% group_by(Klaster) %>% summarise(Mean_GTMI = mean(GTMI), Mean_CGSI = mean(CGSI)) %>% mutate(Total_Mean = Mean_GTMI + Mean_CGSI) %>% arrange(Klaster)
> mean.klaster
# A tibble: 2 × 4
  Klaster Mean_GTMI Mean_CGSI Total_Mean
    <int>     <dbl>     <dbl>      <dbl>
1       1     0.856     0.777       1.63
2       2     0.607     0.588       1.20

K-means clustering menghasilkan output yang mengelompokkan data menjadi 2 cluster. Dalam analisis klaster ini, setiap cluster memiliki rata-rata untuk tiga variabel: Mean_GTMI, Mean_CGSI

  • Cluster 1 memiliki rata-rata tingkat kesiapan pemerintah untuk mengadopsi dan menggunakan TIK untuk meningkatkan layanan publik (GTMI) sebesar 0.856. Yang dalam interpretasinya kita bisa menyimpulkan bahwa negara-negara yang tergolong dalam kluster 1 adalah negara-negara yang sudah memiliki tingkat kesiapan yang cukup matang dalam penggunaan TIK dalam pelaksanaan pelayanan publik. Sedangkan melalui indeks CGSI sebesar 0.777 kita bisa tahu bahwa layanan pemerintah yang disediakan melalui platform dan aplikasi sudah menghasilkan kepuasan masyarakat yang lumayan tinggi.

  • Cluster 2 memiliki rata-rata tingkat kesiapan pemerintah untuk mengadopsi dan menggunakan TIK untuk meningkatkan layanan publik (GTMI) sebesar 0.607. Yang dalam interpretasinya kita bisa menyimpulkan bahwa negara-negara yang tergolong dalam kluster 1 adalah negara-negara yang sudah memiliki tingkat kesiapan yang cukup tinggi dalam penggunaan TIK dalam pelaksanaan pelayanan publik, namun lebih rendah jika dibandingkan dengan indeks rata-rata GTMI di negara-negara cluster 1. Sedangkan melalui indeks CGSI sebesar 0.588 kita bisa tahu bahwa layanan pemerintah yang disediakan melalui platform dan aplikasi sudah menghasilkan kepuasan masyarakat yang cukup.

4 PENUTUP

4.1 Kesimpulan

Berdasarkan hasil analisis yang sudah dilakukan di atas indeks rata-rata total variabel GTMI dan CGSI pada cluster 1 lebih tinggi daripada Indeks rata-rata total variabel GTMI dan CGSI pada cluster 2. Jadi kita bisa menyimpulkan bahwa negara-negara yang tergolong dalam cluster 1 adalah negara-negara yang pemerintahnya sudah cukup baik dalam pelayanan publik dibandingkan dengan negara-negara yang tergolong dalam cluster 2. Dari hasil rata-rata total kita juga bisa simpulkan bahwa baik dari tingkat kesiapan pemerintah untuk mengadopsi dan menggunakan TIK untuk meningkatkan layanan publik (GTMI) maupun layanan pemerintah yang disediakan melalui platform dan aplikasi (CGSI) cluster 1 lebih unggul daripada cluster 2. Untuk itu diharapkan pemerintah negara-negara yang tergolong dalam cluster 2 bisa lebih meningkatkan pelayanan publik berdasarkan hasil analisis ini.

Dan bisa disimpulkan bahwa semua tujuan yang sudah dipaparkan sebelumnya sudah terjawab melalui hasil analisis dan kesimpulan. Yaitu untuk mengukur tata kelola data di tingkat negara pada dimensi hukum, kebijakan, infrastruktur, dan kelembagaan dalam skala global.

4.2 Saran

Diharapkan hasil analisis pada project ini dapat dijadikan referensi bagi peneliti lain yang ingin melakukan analisis serupa. Diharapkan pula hasil analisis ini nantinya bisa dijadikan sebagai saran dan masukan bagi sebuah negara untuk meningkatkan layanan publik, meningkatkan efisiensi, meningkatkan transparansi, dan menghubungkan pemerintah dengan masyarakat di era Goverment Tech sekarang.

5 DAFTAR PUSTAKA

Claudius, H., Wisnu, H. Praktikum Analisis Multivariat I. https://classroom.google.com/u/1/c/NjIxMzYyOTgyMDUy/m/NjI1NTk1MjA0OTk4/details. 5 November 2023 (20.00)

Data World Bank. 2023. Digital Government/GovTech Systems and Services (DGSS). https://datacatalog.worldbank.org/search/dataset/0050602/Data-Governance-Maturity-Indicators 5 November 2023 (17:00)

Riadi, R.A. 2020. Analisis Cluster Menggunakan K-Means Clustering Rstudio. https://medium.com/@17611063/analisis-cluster-menggunakan-k-means-clustering-rstudio-5834aee9b066. 6 November 2023 (10.15)

UC Business Analytics R Programming Guide. 2020. K-Means Cluster Analysis. https://uc-r.github.io/kmeans_clustering. 5 November 2023 (20.00)

Utami, D.Z. 2021. Implementation of Principal Component Analysis (PCA) on K-Means Clustering in R. https://medium.com/@zullinira23/implementation-of-principal-component-analysis-pca-on-k-means-clustering-in-r-794f03ec15f. 6 November 2023 (17.30)