Laporan ini disusun untuk memenuhi tugas Ujian Akhir Semester (UAS) mata kuliah Data Mining and Business Intelligence. Analisis dilakukan menggunakan data 38 provinsi di Indonesia yang mencakup indikator ekonomi, industri, pendidikan, kesehatan, ketenagakerjaan, dan kemiskinan. Metode yang digunakan meliputi statistik deskriptif, preprocessing data, regresi linear berganda, Hierarchical Clustering (HC), K-Means , K-Medoids, serta Random Forest untuk mengidentifikasi pola dan karakteristik antarprovinsi.
FMIPA Universitas Tanjungpura Anggota:
Data yang digunakan merupakan data sekunder tahun 2024 yang bersumber dari publikasi dan tabel statistik Badan Pusat Statistik (BPS) Indonesia. Data tahun 2024 dipilih karena merupakan data terbaru yang tersedia secara lengkap pada saat analisis dilakukan. Dataset terdiri atas 38 provinsi di Indonesia dengan sembilan variabel penelitian, yaitu PDRB, persentase pengguna internet, rasio elektrifikasi, kontribusi sektor industri, jumlah industri, Tingkat Partisipasi Angkatan Kerja (TPAK), Rata-rata Lama Sekolah (RLS), Angka Harapan Hidup (AHH), dan tingkat kemiskinan.
Berikut untuk Data lengkap Dapat Diakses : https://docs.google.com/spreadsheets/d/12zCz5LuHASP2_bLIMxnvTsKiuJh308P00N4cNqXlJF8/edit?usp=drive_link
Tahap pertama dalam analisis adalah memanggil beberapa library yang diperlukan untuk membaca data dan melakukan proses clustering. • Library readxl digunakan untuk mengimpor data yang tersimpan dalam format Excel ke dalam R. • Library cluster digunakan untuk menjalankan berbagai metode pengelompokan data (clustering) • Library factoextra digunakan untuk membantu visualisasi hasil clustering agar lebih mudah dipahami. • Library NbClust digunakan untuk menentukan jumlah cluster yang paling optimal berdasarkan berbagai kriteria statistik. • Library psych digunakan untuk mendukung analisis statistik deskriptif yang lebih lengkap, seperti perhitungan rata-rata, simpangan baku, varians, dan ukuran statistik lainnya apabila diperlukan pada tahap selanjutnya.
#1. data
library(readxl)
library(cluster) # clustering algorithms
library(factoextra) # clustering algorithms & visualization
## Loading required package: ggplot2
## Welcome to factoextra!
## Want to learn more? See two factoextra-related books at https://www.datanovia.com/en/product/practical-guide-to-principal-component-methods-in-r/
library(PerformanceAnalytics)
## Loading required package: xts
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
##
## legend
library(ggpubr)
library(tibble)
library(MVN)
## Registered S3 method overwritten by 'lme4':
## method from
## na.action.merMod car
library(NbClust)
library(psych)
##
## Attaching package: 'psych'
## The following object is masked from 'package:MVN':
##
## mardia
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(randomForest)
## randomForest 4.7-1.2
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:psych':
##
## outlier
## The following object is masked from 'package:ggplot2':
##
## margin
data <- read_excel("C:/Users/acer/Downloads/Data Industri (Project UAS).xlsx")
colnames(data) <- c(
"Provinsi",
"PDRB",
"Internet",
"Elektrifikasi",
"Industri",
"Jumlah_Industri",
"TPAK",
"RLS",
"AHH",
"Kemiskinan")
head(data)
## # A tibble: 6 × 10
## Provinsi PDRB Internet Elektrifikasi Industri Jumlah_Industri TPAK RLS
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Aceh 153780 62.9 100.0 4.71 108507 65.1 9.95
## 2 Sumut 632535 74.2 100.0 18.4 123911 71.4 10.2
## 3 Sumbar 199407 74.5 100.0 8.37 88053 70.3 9.72
## 4 Riau 571234 77.7 100.0 28.1 54425 66.3 9.69
## 5 Jambi 176906 71.8 100.0 9.77 31268 68.9 9.26
## 6 Sumsel 379120 70.5 100.0 18.3 77678 70.8 8.98
## # ℹ 2 more variables: AHH <dbl>, Kemiskinan <dbl>
Statistik deskriptif digunakan untuk menampilkan ringkasan statistik dari setiap variabel dalam dataset. Output yang dihasilkan meliputi nilai minimum, kuartil pertama (Q1), median, rata-rata (mean), kuartil ketiga (Q3), dan nilai maksimum. Informasi ini berguna untuk memahami karakteristik data secara umum sebelum dilakukan analisis lebih lanjut. describe digunakan untuk menghasilkan statistik deskriptif yang lebih lengkap terhadap seluruh variabel numerik dalam dataset. Penulisan data[, -1] bertujuan untuk mengeluarkan kolom pertama (Provinsi) karena berupa data kategorik dan tidak dapat dihitung statistik numeriknya
#2. STATISTIK DESKRIPTIF
summary(data)
## Provinsi PDRB Internet Elektrifikasi
## Length :38 Min. : 13799 Min. : 6.76 Min. : 94.02
## N.unique :38 1st Qu.: 56565 1st Qu.:63.66 1st Qu.: 99.89
## N.blank : 0 Median : 139185 Median :70.63 Median : 99.99
## Min.nchar: 3 Mean : 343870 Mean :68.02 Mean : 99.47
## Max.nchar:20 3rd Qu.: 354729 3rd Qu.:75.22 3rd Qu.: 99.99
## Max. :2151041 Max. :89.26 Max. :100.00
## Industri Jumlah_Industri TPAK RLS
## Min. : 0.230 Min. : 587 Min. :63.98 Min. : 5.100
## 1st Qu.: 6.258 1st Qu.: 20747 1st Qu.:67.46 1st Qu.: 8.785
## Median :11.660 Median : 49199 Median :70.25 Median : 9.270
## Mean :16.022 Mean :116141 Mean :70.14 Mean : 9.269
## 3rd Qu.:20.183 3rd Qu.:106312 3rd Qu.:71.63 3rd Qu.: 9.930
## Max. :41.390 Max. :925985 Max. :77.50 Max. :11.490
## AHH Kemiskinan
## Min. :64.75 Min. : 3.800
## 1st Qu.:68.87 1st Qu.: 5.782
## Median :70.73 Median : 9.570
## Mean :70.58 Mean :10.665
## 3rd Qu.:72.32 3rd Qu.:12.610
## Max. :75.53 Max. :29.660
describe(data[, -1])
## vars n mean sd median trimmed mad
## PDRB 1 38 343870.21 529561.49 139185.00 224078.41 127005.45
## Internet 2 38 68.02 14.84 70.63 69.98 7.64
## Elektrifikasi 3 38 99.47 1.42 99.99 99.85 0.00
## Industri 4 38 16.02 12.43 11.66 15.09 9.87
## Jumlah_Industri 5 38 116140.92 215818.79 49199.00 61068.41 57616.80
## TPAK 6 38 70.14 3.42 70.25 69.98 3.78
## RLS 7 38 9.27 1.15 9.27 9.37 0.87
## AHH 8 38 70.58 2.66 70.73 70.58 2.60
## Kemiskinan 9 38 10.66 6.37 9.57 9.84 5.49
## min max range skew kurtosis se
## PDRB 13799.00 2151041.00 2137242.00 2.28 4.23 85906.22
## Internet 6.76 89.26 82.50 -2.20 6.32 2.41
## Elektrifikasi 94.02 100.00 5.98 -2.90 7.37 0.23
## Industri 0.23 41.39 41.16 0.76 -0.68 2.02
## Jumlah_Industri 587.00 925985.00 925398.00 2.92 7.45 35010.43
## TPAK 63.98 77.50 13.52 0.39 -0.51 0.55
## RLS 5.10 11.49 6.39 -1.43 3.68 0.19
## AHH 64.75 75.53 10.78 -0.11 -0.72 0.43
## Kemiskinan 3.80 29.66 25.86 1.27 1.07 1.03
Berdasarkan hasil statistik deskriptif, terlihat terdapat variasi yang cukup besar antarprovinsi terutama pada variabel PDRB dan jumlah industri. Sementara itu, variabel elektrifikasi cenderung memiliki nilai yang relatif tinggi dan merata di sebagian besar provinsi. Perbedaan karakteristik tersebut menunjukkan adanya keragaman kondisi sosial dan ekonomi antarwilayah di Indonesia.
Preprocessing dilakukan sebelum analisis clustering untuk memastikan seluruh variabel berada pada skala yang sebanding sehingga tidak ada variabel yang mendominasi proses pengelompokan.
#3. PREPROCESSING
boxplot(data[, -1],
main = "Boxplot Variabel Penelitian",
col = rainbow(9),
las = 2)
Boxplot digunakan untuk menampilkan sebaran data dari seluruh variabel numerik dalam bentuk diagram kotak (boxplot).Hasil boxplot menunjukkan bahwa setiap variabel memiliki rentang nilai yang berbeda-beda. Variabel seperti PDRB dan Jumlah Industri memiliki skala yang jauh lebih besar dibandingkan variabel lainnya, sedangkan variabel seperti RLS, AHH, dan Kemiskinan memiliki rentang yang relatif kecil. Kondisi ini menunjukkan bahwa data belum berada pada skala yang sama sehingga diperlukan proses standarisasi menggunakan metode z-score sebelum dilakukan clustering.
datacluster <- data[, -1]
datascaled <- scale(datacluster)
boxplot(datascaled,
main = "Boxplot Setelah Standarisasi",
col = rainbow(9),
las = 2)
Baris pertama digunakan untuk mengambil seluruh variabel numerik yang akan digunakan dalam proses clustering dengan mengeluarkan kolom Provinsi. fungsi scale() digunakan untuk melakukan standarisasi data. Setelah dilakukan standarisasi, seluruh variabel berada pada rentang yang lebih seimbang. Perbedaan skala yang sebelumnya sangat besar telah berkurang sehingga tidak ada variabel yang mendominasi perhitungan jarak dalam proses clustering. Dengan demikian, data telah memenuhi kondisi yang lebih baik untuk digunakan pada analisis clustering menggunakan metode Hierarchical Clustering, K-Means, maupun K-Medoids.
Sebelum melakukan clustering, dilakukan analisis regresi linear Berganda untuk mengetahui hubungan antara variabel-variabel independen dengan PDRB sebagai indikator utama kondisi ekonomi provinsi.
Fungsi lm() (linear model) digunakan untuk membentuk model regresi linear berganda dengan tujuan mengetahui seberapa besar pengaruh masing-masing variabel terhadap PDRB.
Pada model ini: Variabel dependen (Y) = PDRB Variabel independen (X) = Internet, Elektrifikasi, Industri, Jumlah Industri, TPAK, RLS, AHH, Kemiskinan.
Fungsi summary() digunakan untuk menampilkan hasil lengkap model regresi, meliputi Koefisien regresi, nilai t hitung, p-value, koefisien, determinasi (R²), adjusted R², uji F (simultan)
#4. REGRESI LINEAR
model <- lm(PDRB ~ Internet + Elektrifikasi + Industri + Jumlah_Industri +
TPAK + RLS + AHH + Kemiskinan, data = data)
summary(model)
##
## Call:
## lm(formula = PDRB ~ Internet + Elektrifikasi + Industri + Jumlah_Industri +
## TPAK + RLS + AHH + Kemiskinan, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -466165 -161236 -10329 89807 1313402
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.732e+07 8.656e+06 2.001 0.0548 .
## Internet 1.044e+04 1.252e+04 0.834 0.4109
## Elektrifikasi -1.696e+05 7.694e+04 -2.204 0.0356 *
## Industri 1.708e+03 5.303e+03 0.322 0.7497
## Jumlah_Industri 1.820e+00 3.429e-01 5.309 1.08e-05 ***
## TPAK -4.283e+04 2.136e+04 -2.005 0.0544 .
## RLS 7.062e+04 9.945e+04 0.710 0.4833
## AHH 1.889e+04 3.724e+04 0.507 0.6158
## Kemiskinan -3.896e+03 1.996e+04 -0.195 0.8466
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 331800 on 29 degrees of freedom
## Multiple R-squared: 0.6924, Adjusted R-squared: 0.6075
## F-statistic: 8.158 on 8 and 29 DF, p-value: 1.018e-05
Hasil regresi menunjukkan bahwa model mampu menjelaskan sebagian besar variasi PDRB yang ditunjukkan oleh nilai koefisien determinasi (R²) sebesar 69,24%. Selain itu, variabel jumlah industri menunjukkan pengaruh yang signifikan terhadap PDRB. Hal ini mengindikasikan bahwa aktivitas industri memiliki peran penting dalam mendorong pertumbuhan ekonomi suatu provinsi.
Sebelum proses clustering dilakukan, diperlukan penentuan jumlah cluster optimal. Pada penelitian ini digunakan metode Elbow dan Silhouette untuk membantu menentukan jumlah cluster yang paling sesuai.
Metode Elbow digunakan untuk menentukan jumlah cluster yang optimal dengan melihat nilai Within Cluster Sum of Squares (WSS).
Semakin kecil nilai WSS, semakin homogen anggota dalam cluster. Grafik kemudian digunakan untuk mencari titik “siku” (elbow point), yaitu titik ketika penurunan WSS mulai melambat. Titik siku tersebut menunjukkan jumlah cluster yang dianggap paling optimal.
#5. PENENTUAN JUMLAH CLUSTER (k)
#a. Elbow
set.seed(123)
wss <- numeric(10)
for (k in 1:10) {
km <- kmeans(datascaled, centers = k, nstart = 25)
wss[k] <- km$tot.withinss
}
plot(1:10, wss, type="b", pch=19,
xlab="k", ylab="WSS",
main="Elbow Method")
Berdasarkan grafik Elbow Method, jumlah cluster optimal ditentukan pada titik di mana penurunan nilai WSS mulai melambat dan membentuk pola siku. Jumlah cluster pada titik k= 3 menjadi kandidat yang digunakan pada tahap clustering selanjutnya.
Metode Silhouette digunakan untuk mengukur kualitas hasil clustering.
Nilai Silhouette menunjukkan: 1) Seberapa dekat suatu objek dengan anggota dalam cluster yang sama. 2) Seberapa jauh objek tersebut dari cluster lain
#b. Silhouette
sil <- numeric(10)
for (k in 2:10) {
km <- kmeans(datascaled, centers = k, nstart = 25)
ss <- silhouette(km$cluster, dist(datascaled))
sil[k] <- mean(ss[,3])
}
plot(1:10, sil, type="b", pch=19,
xlab="k", ylab="Silhouette Score",
main="Silhouette Method")
Berdasarkan grafik, jumlah cluster yang paling optimal menurut Silhouette Method adalah 2 cluster, karena menghasilkan nilai silhouette tertinggi. Namun, k = 3 juga masih memberikan nilai silhouette yang cukup tinggi (≈ 0,46) dan tidak jauh berbeda dari k = 2. Oleh karena itu, penggunaan 3 cluster masih dapat diterima, terutama jika didukung oleh metode lain seperti Elbow Method dan NbClust.
Fungsi dist() digunakan untuk menghitung jarak antarobjek (provinsi) berdasarkan seluruh variabel yang telah distandarisasi. Jarak yang digunakan adalah Euclidean Distance, yaitu ukuran kemiripan antarprovinsi berdasarkan seluruh indikator yang digunakan dalam penelitian. Semakin kecil jarak antarprovinsi, maka karakteristik kedua provinsi semakin mirip.
Fungsi NbClust() digunakan untuk membantu menentukan jumlah cluster yang paling optimal. Fungsi hclust() digunakan untuk membentuk struktur hierarki cluster menggunakan metode Ward. Metode Ward dipilih karena mampu menghasilkan cluster yang relatif homogen dengan meminimalkan variasi di dalam cluster.
Dendrogram menunjukkan proses penggabungan provinsi secara bertahap berdasarkan tingkat kemiripannya.
Sebelum membentuk cluster menggunakan metode K-Means, perlu ditentukan terlebih dahulu jumlah cluster yang paling optimal.
Berbeda dengan metode Elbow dan Silhouette yang hanya menggunakan satu kriteria, fungsi NbClust() mengevaluasi banyak indeks sekaligus sehingga hasilnya cenderung lebih kuat dan objektif.
#Hasil NBclust
distmatrix <- dist(datascaled)
NbClust(datascaled, diss=NULL, distance = "euclidean", min.nc=2, max.nc=10,
method = "ward.D2", index = "kl")
## $All.index
## 2 3 4 5 6 7 8 9 10
## 1.1170 2.2310 1.0680 1.2424 1.1705 1.2444 0.9984 1.0271 2.0557
##
## $Best.nc
## Number_clusters Value_Index
## 3.000 2.231
##
## $Best.partition
## [1] 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3
Artinya, menurut indeks KL, jumlah cluster terbaik adalah 3 cluster dengan nilai indeks sebesar 2,231.
fungsi cutree() digunakan untuk memotong dendrogram hasil Hierarchical Clustering menjadi sejumlah cluster tertentu (k=3).
hc <- hclust(distmatrix, method="ward.D2")
plot(hc)
rect.hclust(hc, k=3, border="red")
data$clusterhc <- cutree(hc, k=3)
Dendrogram menunjukkan proses penggabungan provinsi secara bertahap berdasarkan tingkat kemiripannya.
Pemotongan dendrogram pada k = 3 menghasilkan tiga kelompok provinsi yang berbeda karakteristik.
Hal ini memperkuat hasil sebelumnya bahwa jumlah cluster optimal adalah tiga cluster.
Sebelum membentuk cluster menggunakan metode K-Means, perlu ditentukan terlebih dahulu jumlah cluster yang paling optimal.
Berbeda dengan metode Elbow dan Silhouette yang hanya menggunakan satu kriteria, fungsi NbClust() mengevaluasi banyak indeks sekaligus sehingga hasilnya cenderung lebih kuat dan objektif.
#7. KMEANS CLUSTERING
set.seed(123)
nb <- NbClust(datascaled,
distance = "euclidean",
min.nc = 2,
max.nc = 10,
method = "kmeans")
## Warning in pf(beale, pp, df2): NaNs produced
## *** : The Hubert index is a graphical method of determining the number of clusters.
## In the plot of Hubert index, we seek a significant knee that corresponds to a
## significant increase of the value of the measure i.e the significant peak in Hubert
## index second differences plot.
##
## *** : The D index is a graphical method of determining the number of clusters.
## In the plot of D index, we seek a significant knee (the significant peak in Dindex
## second differences plot) that corresponds to a significant increase of the value of
## the measure.
##
## *******************************************************************
## * Among all indices:
## * 15 proposed 3 as the best number of clusters
## * 1 proposed 8 as the best number of clusters
## * 6 proposed 9 as the best number of clusters
## * 1 proposed 10 as the best number of clusters
##
## ***** Conclusion *****
##
## * According to the majority rule, the best number of clusters is 3
##
##
## *******************************************************************
Grafik tersebut merupakan Grafik Hubert Index dari fungsi NbClust untuk menentukan jumlah cluster optimal pada metode K-Means. Berdasarkan grafik Hubert Statistic dan Hubert Statistic Second Differences, jumlah cluster optimal adalah 3 cluster. Hal ini ditunjukkan oleh lonjakan terbesar pada nilai second differences yang terjadi pada k = 3. Selain itu, setelah k = 3 peningkatan kualitas cluster cenderung melambat, sehingga pembagian data menjadi tiga kelompok dianggap paling representatif untuk menggambarkan karakteristik provinsi di Indonesia.
Fungsi summary() digunakan untuk menampilkan ringkasan hasil analisis yang telah dilakukan oleh fungsi NbClust(). Ringkasan ini berisi informasi mengenai indeks-indeks yang digunakan dalam menentukan jumlah cluster optimal serta hasil pembagian cluster yang direkomendasikan.
summary(nb)
## Length Class Mode
## All.index 234 -none- numeric
## All.CriticalValues 27 -none- numeric
## Best.nc 52 -none- numeric
## Best.partition 38 -none- numeric
Hasil ringkasan menunjukkan bahwa proses evaluasi jumlah cluster telah berhasil dilakukan terhadap seluruh data provinsi. Informasi yang diperoleh dari NbClust digunakan sebagai dasar dalam menentukan jumlah cluster optimal sebelum analisis K-Means dilakukan. Berdasarkan hasil sebelumnya, mayoritas indeks merekomendasikan penggunaan 3 cluster sehingga jumlah tersebut digunakan pada tahap clustering selanjutnya
Fungsi kmeans() digunakan untuk melakukan pengelompokan data menggunakan metode K-Means.
Parameter yang digunakan: datascaled → data yang telah distandarisasi. centers = 3 → jumlah cluster yang dibentuk sebanyak 3 cluster. nstart = 25 → proses clustering diulang sebanyak 25 kali dengan titik awal yang berbeda untuk memperoleh hasil yang lebih stabil.
data$clusterkmeans digunakan untuk menyimpan hasil pengelompokan K-Means ke dalam dataset sehingga setiap provinsi memiliki label cluster.
kmeansresult <- kmeans(datascaled, centers = 3, nstart = 25)
RNGkind(sample.kind = "Rounding")
## Warning in RNGkind(sample.kind = "Rounding"): non-uniform 'Rounding' sampler
## used
data$clusterkmeans <- kmeansresult$cluster
kmeansresult
## K-means clustering with 3 clusters of sizes 31, 4, 3
##
## Cluster means:
## PDRB Internet Elektrifikasi Industri Jumlah_Industri TPAK
## 1 -0.2915481 0.1722849 0.2679657 -0.0202555 -0.2782549 -0.1348303
## 2 2.6533591 0.5875488 0.3106342 1.0758586 2.3866623 -0.0411672
## 3 -0.5251487 -2.5636762 -3.1831582 -1.2251714 -0.3069161 1.4481365
## RLS AHH Kemiskinan
## 1 0.2011754 -0.02240159 -0.1620659
## 2 0.1780034 1.29319531 -0.4829363
## 3 -2.3161508 -1.49277727 2.3185958
##
## Clustering vector:
## [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 1 2 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3
##
## Within cluster sum of squares by cluster:
## [1] 115.00844 26.16817 14.95730
## (between_SS / total_SS = 53.1 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Fungsi fviz_cluster() digunakan untuk memvisualisasikan hasil clustering K-Means.
#visualiasi
fviz_cluster(kmeansresult, data = datascaled)
Hasil visualisasi menunjukkan bahwa metode K-Means berhasil membentuk tiga cluster yang dapat dibedakan secara visual. Sebagian besar provinsi berada dalam satu cluster utama, sedangkan beberapa provinsi membentuk cluster yang lebih kecil. Pemisahan antarcluster terlihat cukup jelas dan tidak menunjukkan tumpang tindih yang besar, sehingga hasil clustering dapat dikatakan cukup baik dalam mengelompokkan provinsi berdasarkan kemiripan karakteristik data yang digunakan.
Selain K-Means, dilakukan pula pengelompokan menggunakan metode K-Medoids. Metode ini dipilih karena lebih robust terhadap keberadaan outlier dibandingkan K-Means.
Fungsi pam() (Partitioning Around Medoids) digunakan untuk melakukan pengelompokan data menggunakan metode K-Medoids.
#8.K-MEDOIDS
kmedoidsresult <- pam(datascaled, k = 3)
kmedoidsresult
## Medoids:
## ID PDRB Internet Elektrifikasi Industri Jumlah_Industri
## [1,] 6 0.06656411 0.16954576 0.3652338 0.1808609 -0.1782186
## [2,] 15 3.00614722 0.09002241 0.1397900 1.1931397 3.7524261
## [3,] 37 -0.45018231 -2.64948948 -3.5095821 -1.2707695 -0.5204038
## TPAK RLS AHH Kemiskinan
## [1,] 0.1986029 -0.2521236 0.1496186 -0.02430388
## [2,] 0.9676217 -0.5053963 0.6826933 -0.17351649
## [3,] 1.0962788 -2.7062491 -1.3388613 2.65995235
## Clustering vector:
## [1] 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3
## Objective function:
## build swap
## 1.952712 1.952712
##
## Available components:
## [1] "medoids" "id.med" "clustering" "objective" "isolation"
## [6] "clusinfo" "silinfo" "diss" "call" "data"
data$clusterkmedoids <- kmedoidsresult$clustering
Hasil K-Medoids menunjukkan pola pengelompokan yang relatif serupa dengan metode K-Means. Perbedaan utama terletak pada penggunaan objek aktual sebagai pusat cluster sehingga metode ini lebih stabil terhadap pengaruh data ekstrem.
Tahap berikutnya adalah membandingkan karakteristik cluster yang dihasilkan oleh masing-masing metode clustering.
Fungsi aggregate() digunakan untuk menghitung rata-rata setiap variabel pada masing-masing cluster.
Karena data yang digunakan adalah hasil standarisasi, maka Nilai positif → di atas rata-rata nasional. Nilai negatif → di bawah rata-rata nasional.
Tahap ini bertujuan untuk mengetahui karakteristik setiap cluster sehingga hasil pengelompokan dapat diinterpretasikan secara substantif.
#9. Perbandingan
profile_hc <- aggregate(datascaled,
by = list(cluster = data$clusterhc),
mean)
profile_kmeans <- aggregate(datascaled,
by = list(cluster = data$clusterkmeans),
mean)
profile_kmedoids <- aggregate(datascaled,
by = list(cluster = data$clusterkmedoids),
mean)
profile_kmeans$metode <- "KMeans"
profile_kmedoids$metode <- "KMedoids"
profile_hc$metode <- "Hierarchical"
all_profile <- rbind(profile_kmeans,
profile_kmedoids,
profile_hc)
all_profile
## cluster PDRB Internet Elektrifikasi Industri Jumlah_Industri
## 1 1 -0.2915481 0.1722849 0.2679657 -0.02025550 -0.2782549
## 2 2 2.6533591 0.5875488 0.3106342 1.07585860 2.3866623
## 3 3 -0.5251487 -2.5636762 -3.1831582 -1.22517135 -0.3069161
## 4 1 -0.1757941 0.2086335 0.2712255 -0.03101962 -0.2760885
## 5 2 2.4002856 0.3382521 0.2900859 1.55604731 3.2518596
## 6 3 -0.5251487 -2.5636762 -3.1831582 -1.22517135 -0.3069161
## 7 1 -0.1856783 0.1746513 0.1963645 -0.06573487 -0.2636289
## 8 2 2.4002856 0.3382521 0.2900859 1.55604731 3.2518596
## 9 3 -0.5367369 -3.3891240 -3.6751424 -1.24944566 -0.5279124
## TPAK RLS AHH Kemiskinan metode
## 1 -0.1348303 0.2011754 -0.022401594 -0.1620659 KMeans
## 2 -0.0411672 0.1780034 1.293195307 -0.4829363 KMeans
## 3 1.4481365 -2.3161508 -1.492777272 2.3185958 KMeans
## 4 -0.1766775 0.2555136 0.020573169 -0.1890267 KMedoids
## 5 0.4364237 -0.4093274 1.273330138 -0.3023105 KMedoids
## 6 1.4481365 -2.3161508 -1.492777272 2.3185958 KMedoids
## 7 -0.1061160 0.2295445 -0.008961516 -0.1435312 Hierarchical
## 8 0.4364237 -0.4093274 1.273330138 -0.3023105 Hierarchical
## 9 1.0962788 -3.1734936 -1.762130188 2.8217302 Hierarchical
Berdasarkan rata-rata variabel pada setiap cluster, terlihat adanya perbedaan karakteristik yang cukup jelas. Cluster dengan nilai PDRB dan jumlah industri yang tinggi cenderung merepresentasikan provinsi yang lebih maju secara ekonomi. Sebaliknya, cluster dengan tingkat kemiskinan yang relatif tinggi menunjukkan wilayah yang masih menghadapi berbagai tantangan pembangunan.
Random Forest digunakan untuk mengetahui variabel mana yang memiliki tingkat kepentingan terbesar dalam memengaruhi PDRB.
#10. Random forest
set.seed(123)
rf_model <- randomForest(
PDRB ~ Internet + Elektrifikasi + Industri +
Jumlah_Industri + TPAK + RLS + AHH + Kemiskinan,
data = data,
importance = TRUE,
ntree = 500)
print(rf_model)
##
## Call:
## randomForest(formula = PDRB ~ Internet + Elektrifikasi + Industri + Jumlah_Industri + TPAK + RLS + AHH + Kemiskinan, data = data, importance = TRUE, ntree = 500)
## Type of random forest: regression
## Number of trees: 500
## No. of variables tried at each split: 2
##
## Mean of squared residuals: 1.8207e+11
## % Var explained: 33.32
importance(rf_model)
## %IncMSE IncNodePurity
## Internet 3.865962 7.637752e+11
## Elektrifikasi 1.269467 5.850779e+11
## Industri 5.103552 1.342088e+12
## Jumlah_Industri 12.770792 2.349129e+12
## TPAK 1.408811 8.273964e+11
## RLS 1.045128 1.274650e+12
## AHH 7.679594 1.612155e+12
## Kemiskinan 4.379882 6.556202e+11
Hasil Random Forest menunjukkan bahwa variabel jumlah industri memiliki tingkat kepentingan paling tinggi dalam memprediksi PDRB. Selain itu, variabel Angka Harapan Hidup (AHH) dan kontribusi sektor industri juga memberikan pengaruh yang cukup besar. Terlihat hasil % var explained sebesar 33,32%. Nilai tersebut menunjukkan bahwa model Random Forest mampu menjelaskan variasi PDRB regional sebesar 33,32%. Temuan ini menunjukkan bahwa perkembangan sektor industri dan kualitas hidup masyarakat berperan penting dalam mendukung aktivitas ekonomi daerah.
Berdasarkan hasil analisis telah dilakukan menggunakan beberapa
metode, seperti metode regresi linear berganda, clustering, dan Random
Forest. Diperoleh beberapa kesimpulan. 1) Hasil regresi menunjukkan
variabel jumlah industri memiliki pengaruh positif secara signifikan
terhadap PDRB menunjukkan bahwa peningkatan jumlah industri berperan
penting dalam mendorong pertumbuhan ekonomi daerah di Indonesia. 2)
Hasil clustering menunjukkan provinsi di Indonesia dapat dikelompokkan
menjadi tiga (3) kelompok/cluster berisi wilayah maju, wilayah menengah,
dan wilayah tertinggal. Perbedaan kelompok ini mencerminkan ada
ketimpangan pembangunan ekonomi antar wilayah di Indonesia.
3) Metode random forest menunjukkan bahwa variabel jumlah industri,
angka harapan hidup (AHH), dan industri merupakan variabel paling
berpengaruh terhadap PDRB sehingga memperkuat hasil analisis regresi
linear berganda. 4) Hasil perbandingan metode clustering menunjukkan
bahwa sebagian besar provinsi memiliki hasil pengelompokan yang
konsisten, sehingga hasil clustering dapat dianggap stabil dan
representatif. Meskipun angka cluster ada terbalik dari 1 menjadi 3
maupun sebaliknya dengan arti kelompok yang sama.
Secara keseluruhan, diperoleh kesimpulan bahwa sektor industri menjadi faktor utama dalam meningkatkan PDRB, sedangkan faktor lain seperti pendidikan, kesehatan, dan digitalisasi berperan sebagai faktor pendukung.
Badan Pusat Statistik Indonesia. (9 Desember 2024). Keadaan Angkatan Kerja di Indonesia Agustus 2024. Diakses pada 22 Mei 2026, dari https://www.bps.go.id/id/publication/2024/12/09/6f1fd1036968c8a28e4cfe26/keadaan-angkatan-kerja-di-indonesia-agustus-2024.html
Badan Pusat Statistik Indonesia. (29 Agustus 2025). Statistik Telekomunikasi Indonesia 2024. Diakses pada 22 Mei 2026, dari https://www.bps.go.id/id/publication/2025/08/29/beaa2be400eda6ce6c636ef8/statistik-telekomunikasi-indonesia-2024.html
Badan Pusat Statistik. (2024). Jumlah perusahaan industri skala mikro dan kecil menurut provinsi. Diakses pada 22 Mei 2026, dari https://www.bps.go.id/id/statistics-table/2/NDQwIzI=/jumlah-perusahaan-industri-skala-mikro-dan-kecil-menurut-provinsi.html
Badan Pusat Statistik. (2024). Persentase angkatan kerja terhadap penduduk usia kerja (TPAK) menurut provinsi. Diakses pada 22 Mei 2026, dari https://www.bps.go.id/id/statistics-table/2/MjM5NiMy/persentase-angkatan-kerja-terhadap-penduduk-usia-kerja--tpak--menurut-provinsi--persen-.html
Badan Pusat Statistik. (2024). Angka harapan hidup menurut provinsi dan jenis kelamin. Diakses pada 22 Mei 2026, dari https://www.bps.go.id/id/statistics-table/2/NTAxIzI=/angka-harapan-hidup-ahh-menurut-provinsi-dan-jenis-kelamin.html
Badan Pusat Statistik. (2024). Jumlah dan persentase penduduk miskin menurut provinsi. Diakses pada 22 Mei 2026, dari https://www.bps.go.id/id/statistics-table/3/UkVkWGJVZFNWakl6VWxKVFQwWjVWeTlSZDNabVFUMDkjMw==/jumlah-dan-persentase-penduduk-miskin-menurut-provinsi--2024.html
Badan Pusat Statistik. (2025). Produk domestik regional bruto provinsi-provinsi di Indonesia menurut lapangan usaha 2020–2024. Diakses pada 22 Mei 2026, dari https://www.bps.go.id/id/publication/2025/04/11/95c729ee8c6fb5e2cb86b00f/produk-domestik-regional-bruto-provinsi-provinsi-di-indonesia-menurut-lapangan-usaha-2020-2024.html
Kementerian Energi dan Sumber Daya Mineral. (2024, September 24).KESDM tekankan pentingnya digitalisasi di pembangkit energi bersih. https://gatrik.esdm.go.id/berita/?slug=kesdm-tekankan-pentingnya-digitalisasi-di-pembangkit-energi-bersih&category=