Analisis ini dilakukan untuk mengeksplorasi Global Country Information Dataset 2023, memahami pola dan hubungan antar indikator, serta menerapkan PCA dan FA untuk mereduksi dimensi data dan mengidentifikasi faktor-faktor utama yang menjelaskan variasi data.
library(psych)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.2
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%() masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data <- read.csv("world-data-2023.csv")
vars <- c(
"Density..P.Km2.",
"Agricultural.Land....",
"Land.Area.Km2.",
"Birth.Rate",
"Co2.Emissions",
"CPI",
"Fertility.Rate",
"Forested.Area....",
"GDP",
"Life.expectancy",
"Infant.mortality",
"Physicians.per.thousand",
"Population",
"Unemployment.rate"
)
pca_data <- data[, vars]
clean_numeric <- function(x) {
as.numeric(gsub("[%,\\$,]", "", x))
}
pca_data[] <- lapply(pca_data, clean_numeric)
pca_data <- na.omit(pca_data)
pca_scaled <- scale(pca_data)
KMO(pca_scaled)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = pca_scaled)
## Overall MSA = 0.7
## MSA for each item =
## Density..P.Km2. Agricultural.Land.... Land.Area.Km2.
## 0.59 0.44 0.89
## Birth.Rate Co2.Emissions CPI
## 0.73 0.57 0.78
## Fertility.Rate Forested.Area.... GDP
## 0.73 0.40 0.58
## Life.expectancy Infant.mortality Physicians.per.thousand
## 0.78 0.80 0.82
## Population Unemployment.rate
## 0.59 0.33
cortest.bartlett(cor(pca_scaled), n = nrow(pca_scaled))
## $chisq
## [1] 2006.472
##
## $p.value
## [1] 0
##
## $df
## [1] 91
Hasil uji Kaiser–Meyer–Olkin (KMO) menunjukkan nilai sebesar 0,70 yang berarti data layak untuk dilakukan analisis Principal Component Analysis (PCA). Selain itu, Bartlett’s Test of Sphericity menghasilkan nilai signifikansi kurang dari 0,05, yang menunjukkan adanya korelasi antar variabel. Namun, terdapat beberapa variabel dengan nilai MSA < 0,5, sehingga kontribusinya terhadap struktur komponen masih kurang optimal.
pca_opt <- pca_data[, !colnames(pca_data) %in% c(
"Agricultural.Land....",
"Forested.Area....",
"Unemployment.rate"
)]
pca_opt_scaled <- scale(pca_opt)
KMO(pca_opt_scaled)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = pca_opt_scaled)
## Overall MSA = 0.73
## MSA for each item =
## Density..P.Km2. Land.Area.Km2. Birth.Rate
## 0.68 0.92 0.73
## Co2.Emissions CPI Fertility.Rate
## 0.57 0.86 0.74
## GDP Life.expectancy Infant.mortality
## 0.61 0.80 0.81
## Physicians.per.thousand Population
## 0.84 0.60
cortest.bartlett(cor(pca_opt_scaled), n = nrow(pca_opt_scaled))
## $chisq
## [1] 1923.884
##
## $p.value
## [1] 0
##
## $df
## [1] 55
Setelah dilakukan optimasi dengan mengeluarkan variabel yang memiliki nilai MSA di bawah 0,5, hasil uji meningkat menjadi 0,73. Seluruh variabel yang digunakan memiliki nilai MSA di atas 0,5 dan Bartlett’s Test of Sphericity menunjukkan nilai signifikansi kurang dari 0,05. Dengan demikian, data dinyatakan layak dan optimal untuk dilakukan Principal Component Analysis (PCA).
pca_result <- prcomp(pca_opt_scaled, center = FALSE, scale. = FALSE)
eigenvalue <- pca_result$sdev^2
eigenvalue
## [1] 4.48694146 2.86928526 1.02873696 0.96487195 0.59197880 0.36342896
## [7] 0.34494982 0.22992750 0.07020131 0.03690639 0.01277160
Hasil PCA menunjukkan bahwa hanya PC1 (4.49), PC2 (2.87), dan PC3 (1.03) yang memiliki eigenvalue lebih dari 1, sedangkan komponen lainnya berada di bawah 1. Oleh karena itu, berdasarkan Kaiser Criterion, komponen yang dipertahankan adalah tiga komponen utama pertama.
proporsi_var <- eigenvalue / sum(eigenvalue)
proporsi_var
## [1] 0.407903769 0.260844114 0.093521541 0.087715632 0.053816254 0.033038996
## [7] 0.031359074 0.020902500 0.006381937 0.003355127 0.001161055
kumulatif_var <- cumsum(proporsi_var)
kumulatif_var
## [1] 0.4079038 0.6687479 0.7622694 0.8499851 0.9038013 0.9368403 0.9681994
## [8] 0.9891019 0.9954838 0.9988389 1.0000000
PC1 mampu menjelaskan 40.79% variasi data, PC2 sebesar 26.08%, dan PC3 sebesar 9.35%. Hal ini menunjukkan bahwa sebagian besar informasi data terkonsentrasi pada komponen awal.
Secara kumulatif, PC1 hingga PC3 menjelaskan 76.23% total variasi data. Nilai ini telah melampaui batas minimal 70%, sehingga reduksi dimensi yang dilakukan masih mampu merepresentasikan data dengan baik.
eigenvalue <- pca_result$sdev^2
plot(
eigenvalue,
type = "b",
xlab = "Komponen Utama",
ylab = "Eigenvalue",
main = "Scree Plot PCA"
)
abline(h = 1, col = "red", lty = 2)
Scree plot menunjukkan penurunan eigenvalue yang tajam hingga PC3, kemudian cenderung landai. Oleh karena itu, tiga komponen pertama dipilih sebagai komponen utama PCA.
loadings <- pca_result$rotation
round(loadings, 3)
## PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
## Density..P.Km2. 0.075 -0.065 -0.726 0.632 -0.229 -0.051 -0.082 0.000
## Land.Area.Km2. 0.116 0.401 0.162 -0.052 -0.838 0.284 0.101 -0.009
## Birth.Rate -0.448 0.111 -0.030 -0.024 -0.081 -0.157 -0.061 -0.425
## Co2.Emissions 0.168 0.533 -0.054 0.010 0.165 -0.182 0.009 0.021
## CPI -0.055 0.033 0.638 0.762 0.067 -0.052 0.000 -0.023
## Fertility.Rate -0.436 0.115 -0.028 -0.042 -0.098 -0.252 -0.162 -0.523
## GDP 0.182 0.487 -0.047 -0.014 0.089 -0.612 0.181 0.156
## Life.expectancy 0.434 -0.133 -0.001 0.014 0.034 -0.048 0.215 -0.476
## Infant.mortality -0.432 0.133 -0.046 0.015 -0.019 0.003 -0.264 0.494
## Physicians.per.thousand 0.376 -0.134 0.143 -0.091 -0.176 -0.280 -0.833 -0.025
## Population 0.098 0.484 -0.103 0.070 0.395 0.581 -0.332 -0.222
## PC9 PC10 PC11
## Density..P.Km2. 0.038 0.010 0.000
## Land.Area.Km2. -0.044 0.028 -0.009
## Birth.Rate 0.065 0.005 0.752
## Co2.Emissions 0.333 -0.716 -0.012
## CPI -0.004 0.000 -0.004
## Fertility.Rate -0.050 -0.003 -0.647
## GDP -0.202 0.496 0.034
## Life.expectancy -0.652 -0.293 0.079
## Infant.mortality -0.630 -0.286 0.035
## Physicians.per.thousand 0.035 0.012 0.085
## Population -0.122 0.268 0.005
PC1 didominasi oleh Birth Rate (−0.448), Fertility Rate (−0.436), Infant Mortality (−0.432), dan Life Expectancy (0.434). PC2 memiliki loading tertinggi pada CO₂ Emissions (0.533), GDP (0.487), dan Population (0.484). PC3 terutama dipengaruhi oleh Density (−0.726) dan CPI (0.638).
pca_score <- pca_result$x
head(pca_score)
## PC1 PC2 PC3 PC4 PC5 PC6
## 1 -2.64126520 0.48236046 -0.149938507 -0.19433226 -0.10217755 -0.06633216
## 2 1.12738362 -0.84825033 -0.007533056 -0.17205238 0.42145759 0.34730046
## 3 0.01939759 0.20674542 0.272307483 -0.28386714 -0.65370635 0.20162288
## 5 -3.67107695 0.91312723 0.185586670 0.07847522 -0.46844775 -0.35447188
## 7 1.41465716 -0.02163275 0.793337591 -0.11780666 -0.89205270 0.02477840
## 8 1.46617570 -0.99586373 0.297133304 -0.33786694 0.01781808 -0.26395158
## PC7 PC8 PC9 PC10 PC11
## 1 -0.1113557 -0.06236303 -0.22361790 -0.06853991 -0.09562902
## 2 0.8683739 0.12402773 -0.10487927 -0.08813721 -0.10060410
## 3 0.1748290 -0.62050588 -0.35283268 -0.17662869 0.16187219
## 5 -0.3603113 -0.51256730 -0.01936189 0.01430138 -0.04098788
## 7 -0.6900580 -0.30247465 0.04489226 0.03911733 0.09373793
## 8 -1.0099211 0.22883832 0.18507421 0.02926097 0.13641491
summary(pca_result)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 2.1182 1.6939 1.01427 0.98228 0.76940 0.60285 0.58732
## Proportion of Variance 0.4079 0.2608 0.09352 0.08772 0.05382 0.03304 0.03136
## Cumulative Proportion 0.4079 0.6687 0.76227 0.84999 0.90380 0.93684 0.96820
## PC8 PC9 PC10 PC11
## Standard deviation 0.4795 0.26496 0.19211 0.11301
## Proportion of Variance 0.0209 0.00638 0.00336 0.00116
## Cumulative Proportion 0.9891 0.99548 0.99884 1.00000
Skor PCA menunjukkan posisi relatif negara pada tiap komponen utama, di mana nilai skor besar (positif atau negatif) menandakan karakteristik yang kuat sesuai variabel dominan pada PC tersebut. Skor ini dapat digunakan untuk membandingkan dan mengelompokkan negara berdasarkan PC1–PC3.
PC1 menjelaskan 40.79%, PC2 26.08%, dan PC3 9.35% variasi data, dengan total kumulatif 76.23%. Tiga komponen utama ini sudah cukup merepresentasikan sebagian besar informasi data.
biplot(pca_result, scale = 0, cex = 0.6,
main = "Biplot PCA (PC1 vs PC2)")
Biplot menunjukkan sebagian besar data terkonsentrasi di sekitar pusat, dengan PC1 dan PC2 sudah merepresentasikan pola utama data. Arah vektor variabel menunjukkan hubungan dan kontribusi terhadap kedua komponen tersebut.
scores <- as.data.frame(pca_result$x)
plot(scores$PC1, scores$PC2,
xlab = "PC1",
ylab = "PC2",
main = "Plot Skor PCA (PC1 vs PC2)",
pch = 19)
abline(h = 0, v = 0, lty = 2, col = "gray")
Plot skor PCA menunjukkan sebagian besar negara mengelompok di area tengah negatif PC1, dengan beberapa outlier di sisi positif dan nilai PC2 yang tinggi. Pola ini menandakan bahwa PC1 dan PC2 sudah menangkap perbedaan utama antar negara, di mana titik yang berdekatan memiliki karakteristik yang mirip.
barplot(proporsi_var * 100,
names.arg = paste0("PC", 1:length(proporsi_var)),
ylab = "Persentase Varians (%)",
main = "Proporsi Varians PCA")
Grafik proporsi varians menunjukkan bahwa PC1 dan PC2 mendominasi dalam menjelaskan keragaman data. Terlihat penurunan varians yang tajam setelah PC2, yang menandakan bahwa komponen selanjutnya hanya memberikan tambahan informasi yang kecil. Oleh karena itu, penggunaan dua komponen utama sudah cukup efisien untuk merepresentasikan data dalam analisis lanjutan.
dim(pca_opt_scaled)
## [1] 168 11
KMO(pca_opt_scaled)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = pca_opt_scaled)
## Overall MSA = 0.73
## MSA for each item =
## Density..P.Km2. Land.Area.Km2. Birth.Rate
## 0.68 0.92 0.73
## Co2.Emissions CPI Fertility.Rate
## 0.57 0.86 0.74
## GDP Life.expectancy Infant.mortality
## 0.61 0.80 0.81
## Physicians.per.thousand Population
## 0.84 0.60
cortest.bartlett(cor(pca_opt_scaled), n = nrow(pca_opt_scaled))
## $chisq
## [1] 1923.884
##
## $p.value
## [1] 0
##
## $df
## [1] 55
Uji KMO menunjukkan nilai Overall MSA = 0,73, artinya data layak digunakan untuk Factor Analysis karena sudah melewati batas minimum 0,5. Hampir semua variabel juga memiliki nilai MSA di atas 0,6.
Uji Bartlett menghasilkan chi-square sebesar 1923,884 dengan p-value = 0 (< 0,05), yang berarti terdapat korelasi signifikan antar variabel. Dengan demikian, Factor Analysis dapat dilanjutkan.
fa_unrotated_2 <- fa(
pca_opt_scaled,
nfactors = 2,
rotate = "none",
fm = "pa"
)
## Warning in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate = rotate, : An
## ultra-Heywood case was detected. Examine the results carefully
print(fa_unrotated_2$loadings, cutoff = 0.3)
##
## Loadings:
## PA1 PA2
## Density..P.Km2.
## Land.Area.Km2. 0.549
## Birth.Rate -0.956
## Co2.Emissions 0.367 0.977
## CPI
## Fertility.Rate -0.916
## GDP 0.370 0.797
## Life.expectancy 0.913
## Infant.mortality -0.904
## Physicians.per.thousand 0.736
## Population 0.735
##
## PA1 PA2
## SS loadings 4.326 2.643
## Proportion Var 0.393 0.240
## Cumulative Var 0.393 0.634
PA1 merepresentasikan dimensi Pembangunan Manusia & Kesehatan. Faktor ini memiliki loading negatif sangat kuat pada Birth Rate (-0,956), Fertility Rate (-0,916), dan Infant Mortality (-0,904), serta loading positif tinggi pada Life Expectancy (0,913) dan Physicians per Thousand (0,736). Artinya, semakin tinggi skor PA1, semakin baik kualitas kesehatan dan pembangunan manusia suatu negara.
PA2 menggambarkan dimensi Skala Ekonomi & Wilayah. Faktor ini didominasi oleh CO₂ Emissions (0,977), GDP (0,797), Population (0,735), dan Land Area (0,549), yang mencerminkan besarnya aktivitas ekonomi dan luas wilayah suatu negara. PA1 dan PA2 sama-sama signifikan (SS Loadings > 1) dan secara kumulatif mampu menjelaskan 63,4% varians data, sehingga struktur faktor yang terbentuk sudah cukup baik untuk analisis lanjutan.
fa_varimax_2 <- fa(
pca_opt_scaled,
nfactors = 2,
rotate = "varimax",
fm = "pa",
scores = TRUE
)
## Warning in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate = rotate, : An
## ultra-Heywood case was detected. Examine the results carefully
print(fa_varimax_2$loadings, cutoff = 0.4)
##
## Loadings:
## PA1 PA2
## Density..P.Km2.
## Land.Area.Km2. 0.587
## Birth.Rate 0.967
## Co2.Emissions 1.042
## CPI
## Fertility.Rate 0.930
## GDP 0.873
## Life.expectancy -0.936
## Infant.mortality 0.927
## Physicians.per.thousand -0.762
## Population 0.757
##
## PA1 PA2
## SS loadings 4.165 2.804
## Proportion Var 0.379 0.255
## Cumulative Var 0.379 0.634
Rotasi Varimax menghasilkan dua faktor utama yang jelas. PA1 menggambarkan kondisi kesejahteraan dan demografi, di mana angka kelahiran dan kematian bayi berlawanan dengan harapan hidup dan ketersediaan tenaga medis, sehingga membedakan negara berkembang dan negara maju. PA2 menggambarkan skala ekonomi dan dampak lingkungan, yang didominasi oleh PDB, emisi CO₂, populasi, dan luas wilayah.
Kedua faktor ini menjelaskan 63,4% varians total. Variabel Density dan CPI tidak berpengaruh signifikan karena loading rendah, sehingga tidak menjadi pembeda utama profil negara-negara dunia tahun 2023.
fa_varimax_2$communality
## Density..P.Km2. Land.Area.Km2. Birth.Rate
## 0.021935636 0.345919240 0.949658591
## Co2.Emissions CPI Fertility.Rate
## 1.088777187 0.009919013 0.875449062
## GDP Life.expectancy Infant.mortality
## 0.772730416 0.881465405 0.865407583
## Physicians.per.thousand Population
## 0.582186024 0.575566470
Communalities menunjukkan seberapa besar varians tiap variabel yang dijelaskan oleh model faktor. Variabel kesehatan dan demografi seperti Birth.Rate, Life.expectancy, Fertility.Rate, dan Infant.mortality memiliki communalities tinggi (>0.8), artinya terwakili sangat baik. GDP, Physicians, dan Population moderat (0.57–0.77), masih menyumbang tapi sebagian varians unik tersisa. Sementara, CPI dan Density hampir tidak dijelaskan (<0.03) dan bisa dianggap noise. Nilai Co2.Emissions >1 menandai Heywood Case, akibat korelasi ekstrem dengan variabel ekonomi seperti GDP.
fa_varimax_2$Vaccounted
## PA1 PA2
## SS loadings 4.1653441 2.8036705
## Proportion Var 0.3786676 0.2548791
## Cumulative Var 0.3786676 0.6335468
## Proportion Explained 0.5976948 0.4023052
## Cumulative Proportion 0.5976948 1.0000000
Berdasarkan tabel varians, model Factor Analysis dengan dua faktor ini terbukti efektif dalam meringkas informasi. Faktor pertama (PA1) menjelaskan 37,9% varians, sedangkan faktor kedua (PA2) menjelaskan 25,5%. Secara kumulatif, kedua faktor ini mencakup 63,3% dari total variabilitas data global. Hal ini menunjukkan bahwa dimensi Kesejahteraan Sosial dan Skala Ekonomi adalah dua pilar utama yang mendefinisikan karakteristik negara-negara di dunia pada tahun 2023.
fa.diagram(fa_varimax_2, main = "Diagram Struktur Faktor (2 Faktor - Varimax)")
Secara keseluruhan, dataset Global Country Information 2023 dapat disederhanakan menjadi dua pilar utama: Kesejahteraan Sosial (PA1) dan Skala Ekonomi (PA2). Analisis ini membuktikan bahwa indikator seperti emisi CO2 dan GDP bergerak selaras, sementara indikator kesehatan masyarakat membentuk dimensi tersendiri yang sangat kontras dengan angka kelahiran. Hasil skor faktor ini sangat layak digunakan untuk analisis lanjutan seperti pengelompokan negara (Country Clustering) berdasarkan profil pembangunan yang lebih komprehensif.
scores <- as.data.frame(fa_varimax_2$scores)
plot(scores$PA1, scores$PA2,
xlab = "Skor PA1 (Kesejahteraan & Kesehatan)",
ylab = "Skor PA2 (Skala Ekonomi & Populasi)",
main = "Biplot Posisi Negara Berdasarkan Skor Faktor",
pch = 19,
col = "blue")
abline(h = 0, v = 0, lty = 2, col = "gray")
Visualisasi Biplot ini menegaskan adanya ketimpangan skala yang ekstrem di panggung global. Sementara sebagian besar negara berkumpul pada tingkat ekonomi yang serupa, terdapat segelintir negara yang menjadi outlier dominan dalam hal kapasitas ekonomi dan emisi karbon (PA2). Di sisi lain, sebaran titik sepanjang sumbu PA1 menunjukkan variasi tingkat kesejahteraan sosial yang lebih lebar, menggambarkan disparitas kualitas hidup yang masih terjadi antar bangsa secara global.
Berdasarkan analisis multivariat pada Global Country Information Dataset 2023:
1. Validitas & Reduksi Data
Dataset 11 indikator berhasil disederhanakan. KMO = 0.73 dan Bartlett’s Test (p < 0.05) menunjukkan korelasi antar-variabel kuat, layak untuk reduksi dimensi.
2. Dua Pilar Utama Pembangunan Global
3. Tipologi & Outlier Negara
Mayoritas negara terkumpul di titik tengah biplot, tapi beberapa muncul sebagai outlier karena skala ekonomi dan populasi yang ekstrem (PA2 tinggi).