Pertumbuhan ekonomi merupakan kegiatan dalam mengembangkan perekonomian dengan memperluas barang dan jasa yang diproduksi sehingga hal tersebut dapat meningkatkan kemakmuran masyarakat menurut Sukirno (2011:331). Pertumbuhan ekonomi merupakan indikator penting dalam melihat kemajuan suatu negara.
Beberapa faktor yang mempengaruhi pertumbuhan ekonomi diantaranya investasi, Tingkat Partisipasi Angkatan Kerja (TPAK), Upah Minimum Provinsi (UMP), Indeks Pembangunan Manusia (IPM), dan Produk Domestik Regional Bruto (PDRB). Persebaran pertumbuhan ekonomi di setiap wilayah Indonesia memiliki karakteristik yang berbeda-beda, sehingga perlu adanya pengelompokkan wilayah agar strategi yang dilaksanakan tepat sesuai dengan karakteristik wilayah yang ada.
Berdasarkan pernyataan tersebut kami ingin mengetahui persebaran pertumbuhan ekonomi di Indonesia dengan menggunakan analisis klaster non-hierarchical k-means, yang mempartisipasi objek dan variabel kedalam satu klaster yang mempunyai karakteristik yang sama.
library (psych)
## Warning: package 'psych' was built under R version 4.3.2
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.2
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.2
##
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
##
## %+%, alpha
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.3.2
library(sp)
## Warning: package 'sp' was built under R version 4.3.2
library(ggplot2)
library(raster)
## Warning: package 'raster' was built under R version 4.3.2
library(prettymapr)
## Warning: package 'prettymapr' was built under R version 4.3.2
dat <- read.table("D:/lomba/IC unisba/ekonomi.txt", header = TRUE)
str(dat)
## 'data.frame': 34 obs. of 5 variables:
## $ Investasi: num 8241 18190 3106 34118 3512 ...
## $ TPAK : num 65.1 68.7 69 65.2 67.8 ...
## $ UMP : int 3165031 2499423 2484041 2888564 2630162 3043111 2213604 2432002 3230024 3005460 ...
## $ IPM : num 72 71.8 72.4 72.7 71.3 ...
## $ PDRB : int 166377 811283 242119 729167 206846 458430 73337 354632 75534 254253 ...
summary(dat)
## Investasi TPAK UMP IPM
## Min. : 252.9 Min. :63.40 Min. :1704608 Min. :60.44
## 1st Qu.: 2758.1 1st Qu.:65.31 1st Qu.:2407775 1st Qu.:69.50
## Median : 5330.2 Median :68.66 Median :2654512 Median :71.42
## Mean :12114.6 Mean :68.04 Mean :2672371 Mean :71.08
## 3rd Qu.:15430.6 3rd Qu.:70.08 3rd Qu.:3004296 3rd Qu.:72.31
## Max. :55660.6 Max. :74.32 Max. :4276350 Max. :80.77
## PDRB
## Min. : 41726
## 1st Qu.: 112426
## Median : 198185
## Mean : 464285
## 3rd Qu.: 492967
## Max. :2772381
describe(dat)
## vars n mean sd median trimmed mad
## Investasi 1 34 12114.64 15220.90 5330.25 9309.98 5395.33
## TPAK 2 34 68.04 2.91 68.66 67.97 3.22
## UMP 3 34 2672370.82 551025.32 2654512.50 2662194.11 516755.04
## IPM 4 34 71.08 3.90 71.43 71.04 2.16
## PDRB 5 34 464284.68 672108.69 198185.00 303429.18 175888.25
## min max range skew kurtosis se
## Investasi 252.90 55660.60 55407.70 1.52 1.15 2610.36
## TPAK 63.40 74.32 10.92 0.08 -0.98 0.50
## UMP 1704608.00 4276350.00 2571742.00 0.33 0.46 94500.06
## IPM 60.44 80.77 20.33 0.05 1.16 0.67
## PDRB 41726.00 2772381.00 2730655.00 2.19 3.87 115265.69
fit.pca <- PCA(dat, scale.unit = TRUE, ncp = 5, graph = TRUE)
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
eig.val <- get_eigenvalue(fit.pca)
eig.val
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 2.35802102 47.160420 47.16042
## Dim.2 1.40780100 28.156020 75.31644
## Dim.3 0.69729362 13.945872 89.26231
## Dim.4 0.47166456 9.433291 98.69560
## Dim.5 0.06521979 1.304396 100.00000
Berdasarkan kolom eigen value pada Dim.3 nilai eigen yang diperoleh kurang dari 1, sehingga kluster yang dapat dibentuk adalah sebesar 3. Namun pada penelitian ini klaster yang akan dibentuk adalah sebesar 4 klaster.
set.seed(2021)
clust.4means<-kmeans(x = dat, centers = 4, nstart=50)
clust.4means
## K-means clustering with 4 clusters of sizes 3, 1, 16, 14
##
## Cluster means:
## Investasi TPAK UMP IPM PDRB
## 1 45889.067 68.09667 1773714 71.89000 1912034.7
## 2 42954.700 63.81000 4276350 80.77000 2772381.0
## 3 6549.113 69.28000 2394594 70.66500 224576.7
## 4 9034.993 66.92071 3067830 70.69071 263140.5
##
## Clustering vector:
## ACEH SUMATERAUTARA SUMATERABARAT RIAU
## 4 3 3 4
## JAMBI SUMATERASELATAN BENGKULU LAMPUNG
## 3 4 3 3
## KEP.BANGKABELITUNG KEP.RIAU DKIJAKARTA JAWABARAT
## 4 4 2 1
## JAWATENGAH DIYOGYAKARTA JAWATIMUR BANTEN
## 1 3 1 3
## BALI NUSATENGGARABARAT NUSATENGGARATIMUR KALIMANTANBARAT
## 3 3 3 3
## KALIMANTANTENGAH KALIMANTANSELATAN KALIMANTANTIMUR KALIMANTANUTARA
## 4 4 4 4
## SULAWESIUTARA SULAWESITENGAH SULAWESISELATAN SULAWESITENGGARA
## 4 3 4 3
## GORONTALO SULAWESIBARAT MALUKU MALUKUUTARA
## 4 3 3 3
## PAPUABARAT PAPUA
## 4 4
##
## Within cluster sum of squares by cluster:
## [1] 5.012693e+11 0.000000e+00 1.789563e+12 1.118135e+12
## (between_SS / total_SS = 86.3 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Berdasarkan output yang diperoleh yaitu sebagai berikut:
Cluster means merupakan rata-rata variabel pada tiap klaster dan dapat dilihat klaster tertinggi hingga terendah berturut-turut klaster 2, klaster 1, klaster 4, klaster 3.
Clustering vector menunjukkan tiap provinsi masuk kedalam klaster mana (klaster 1/2/3/4)
Within cluster sum of squares by cluster biasa digunakan untuk mengevaluasi kualitas prediksi, pada model ini kualitas prediksi cukup tinggi sebesar 86,3%
aggregate(dat, by=list(cluster=clust.4means$cluster), mean)
## cluster Investasi TPAK UMP IPM PDRB
## 1 1 45889.067 68.09667 1773714 71.89000 1912034.7
## 2 2 42954.700 63.81000 4276350 80.77000 2772381.0
## 3 3 6549.113 69.28000 2394594 70.66500 224576.7
## 4 4 9034.993 66.92071 3067830 70.69071 263140.5
IND <- readRDS("D:/peta/gadm/gadm36_IDN_1_sp.rds")
provinsi <- IND$NAME_1
provinsi
## [1] "Aceh" "Bali" "Bangka Belitung"
## [4] "Banten" "Bengkulu" "Gorontalo"
## [7] "Jakarta Raya" "Jambi" "Jawa Barat"
## [10] "Jawa Tengah" "Jawa Timur" "Kalimantan Barat"
## [13] "Kalimantan Selatan" "Kalimantan Tengah" "Kalimantan Timur"
## [16] "Kepulauan Riau" "Lampung" "Maluku"
## [19] "Maluku Utara" "Nusa Tenggara Barat" "Nusa Tenggara Timur"
## [22] "Papua" "Papua Barat" "Riau"
## [25] "Sulawesi Barat" "Sulawesi Selatan" "Sulawesi Tengah"
## [28] "Sulawesi Tenggara" "Sulawesi Utara" "Sumatera Barat"
## [31] "Sumatera Selatan" "Sumatera Utara" "Yogyakarta"
# Ekspor data
write.csv(provinsi, file="D:/lomba/IC unisba/provinsieko.csv",row.names = FALSE)
# Memanggil data
datprov <- read.csv(file="D:/lomba/IC unisba/provinsi.eko.csv")
plot(IND, col = c("#FFAB76","#D9534F","#EEEEEE","#FFFDA2")[datprov$cluster], axes = TRUE,
cex = 0.25,border = "black")
text(IND, datprov$prov.eng, cex = 0.6)
legend("bottomright", legend = c("Cluster 1", "Cluster 2", "Cluster 3", "Cluster 4"),
col = c("#FFAB76","#D9534F","#EEEEEE","#FFFDA2"),
inset=.02, fill= c("#FFAB76","#D9534F","#EEEEEE","#FFFDA2"), cex = 0.9, bty = "n")
addnortharrow(pos = "topright",scale = 0.5,padin=c(0.55,0.15))
addscalebar()
## Autodetect projection: assuming lat/lon (epsg 4326)
Dari hasil analisis tersebut, diperoleh bahwa hanya DKI Jakarta yang berada pada kluster tertinggi yaitu berada pada klaster pertama selanjutnya diikuti dengan klaster kedua (tinggi), klaster ketiga (rendah), dan klaster keempat (terendah). Hal tersebut menunjukkan bahwa wilayah DKI Jakarta memiliki pertumbuhan ekonomi yang paling pesat dibandingkan dengan wilayah provinsi yang lainnya. Pertumbuhan ekonomi yang hanya cenderung berkembang pada beberapa daerah saja menunjukkan bahwa di Indonesia memiliki pembangunan ekonomi yang kurang merata.
# Ekspor rata-rata tiap klaster
write.csv(aggregate(dat, by=list(cluster=clust.4means$cluster), mean), file = "D:/lomba/IC unisba/mean.cl.csv")
mean.cluster <- read.csv(file="D:/lomba/IC unisba/meancl.csv")
str(mean.cluster)
## 'data.frame': 20 obs. of 3 variables:
## $ eko : chr "Investasi" "Investasi" "Investasi" "Investasi" ...
## $ cluster: int 1 2 3 4 1 2 3 4 1 2 ...
## $ y : num 45.9 43 65.5 90.3 68.1 ...
ggplot(data=mean.cluster, aes(x=cluster, y=y, fill=eko)) +
geom_bar(stat="identity",
position=position_dodge())
x <- c("Klaster 1","Klaster 2","Klaster 3","Klaster 4")
y <- c(3731778,7091830,2625859,3340142)
PE <- data.frame(x,y)
PE
## x y
## 1 Klaster 1 3731778
## 2 Klaster 2 7091830
## 3 Klaster 3 2625859
## 4 Klaster 4 3340142
ggplot(data=PE, aes(x="", y=y, fill = x)) + coord_polar("x", start=0) + geom_bar(width = 1, stat = "identity") + coord_polar("y", start=0)
## Coordinate system already present. Adding new coordinate system, which will
## replace the existing one.
link infographic: https://tinyurl.com/mv4tmf47