Analisis Principal Component Analysis (PCA) Faktor-Faktor Perkotaan yang Mempengaruhi Skor Kebahagiaan Kota

Teresa Editia Tapo

2025-12-03

1 . PENDAHULUAN

1.1. Analisis PCA

Principal Component Analysis (PCA) merupakan metode reduksi dimensi yang bertujuan menyederhanakan sekumpulan variabel yang saling berkorelasi menjadi beberapa komponen utama yang saling bebas (orthogonal) tanpa menghilangkan informasi penting pada data.Dalam PCA, setiap komponen utama dibentuk sebagai kombinasi linear dari variabel-variabel yang telah distandardisasi. Misalkan terdapat p variabel terstandarisasi z1 , z2 , … , zp. Maka model komponen utama dapat dinyatakan sebagai: KU1 = a11 z1 + a12z2 +…+ a1pzp , KU2 = a21z1 + a22z2 +…+ a2pzp , . . . , KUk = ak1 z1 + ak2z2 +…+ akpzp. Dimana koefisien aij merupakan loading yang menunjukkan kontribusi masing-masing variabel terhadap komponen. Metode ini banyak digunakan dalam analisis multivariat, terutama untuk mengatasi multikolinearitas serta memudahkan interpretasi struktur data yang kompleks.

PCA memiliki sejumlah kelebihan, yaitu mampu mereduksi dimensi secara efisien, menghilangkan korelasi antar variabel, serta membantu mempercepat proses pemodelan. Namun, PCA juga memiliki keterbatasan seperti sensitivitas terhadap skala variabel, ketergantungan pada hubungan linier, serta komponen yang kadang sulit diinterpretasikan. Secara umum, langkah analisis PCA meliputi standardisasi data, pembentukan matriks korelasi atau kovarians, ekstraksi eigenvalue dan eigenvector, penentuan jumlah komponen utama dilakukan menggunakan kriteria nilai eigen lebih dari 1 (Kaiser Criterion) dan proporsi kumulatif variansi minimal 75%, sehingga hanya komponen yang menjelaskan variasi terbesar yang dipertahankan untuk analisis lanjutan, serta interpretasi loading dan pembentukan skor komponen untuk analisis lanjutan.

1.2. Studi Kasus

Kebahagiaan masyarakat kota semakin menjadi indikator penting dalam menilai kualitas pembangunan perkotaan, karena faktor-faktor seperti kepadatan penduduk, pendapatan, kualitas udara, akses internet, dan ruang hijau terbukti memengaruhi kesejahteraan subjektif masyarakat. Studi ini menggunakan data sekunder dari Kaggle (Lifestyle Segmentation Dataset) karena dataset tersebut menyediakan berbagai variabel urban yang relevan dan terukur untuk menganalisis faktor-faktor perkotaan secara komprehensif. Variabel respon yang digunakan adalah Skor Kebahagiaan (Y), sedangkan variabel prediktornya meliputi Kepadatan Penduduk (X1), Pendapatan Rata-rata (X2), Penetrasi Internet (X3), Sewa Rata-rata (X4), Indeks Kualitas Udara (X5), Skor Transportasi (X6), dan Rasio Ruang Hijau (X7). Berikut disajikan 20 data pertama pada tabel berikut:

Tabel 1.1 Preview Data Segmentasi Gaya Hidup
Y X1 X2 X3 X4 X5 X6 X7
8.5 2775 3850 86.4 1310 43 52.0 23.8
8.1 3861 3700 78.1 1330 42 62.8 33.1
8.5 2562 4310 80.1 1330 39 73.2 40.2
8.5 3192 3970 81.2 1480 60 49.2 43.6
8.5 3496 4320 100.0 1510 64 93.7 42.5
8.4 1444 4640 78.5 1620 35 51.6 20.3
8.5 1233 3450 84.2 1080 55 47.5 50.0
7.9 936 3610 72.4 1520 47 59.5 35.6
8.5 2938 5220 100.0 1950 53 60.0 34.8
7.7 3513 3330 88.7 1040 76 60.1 31.7
7.1 3842 3170 70.6 1060 65 56.9 41.6
8.5 4298 3230 78.9 1380 59 63.1 31.3
7.6 4819 3310 76.4 1340 68 55.1 35.7
5.8 3577 2660 70.1 980 79 43.1 32.2
8.5 2948 4040 69.8 1020 63 81.0 34.4
8.5 2402 3500 64.7 1580 45 95.0 23.7
8.3 4135 2900 74.5 950 68 83.2 23.2
7.3 2443 2710 72.6 950 62 52.6 41.0
7.4 4630 2220 74.8 870 59 63.0 43.8
7.3 813 2160 85.1 890 47 47.2 39.5

Pemilihan PCA dalam penelitian ini didasarkan pada banyaknya variabel yang saling berkorelasi sehingga analisis langsung akan sulit dilakukan. PCA memungkinkan pereduksian dimensi dengan tetap mempertahankan informasi utama, sehingga dapat mengidentifikasi komponen faktor perkotaan terpenting yang memengaruhi kebahagiaan masyarakat. Tujuan analisis ini adalah merangkum variabel-variabel komplek tersebut ke dalam beberapa komponen utama yang lebih sederhana, mudah ditafsirkan, dan dapat digunakan untuk memahami struktur faktor pembentuk kebahagiaan kota.

2. SOURCE CODE

# Library yang digunakan
library(readxl)    # Membaca file Excel
library(psych)     # PCA, KMO, Bartlett
library(corrplot)  # Visualisasi korelasi
library(ggplot2)   # Plot data
library(dplyr)     # Manipulasi data
library(GGally)    # Matriks korelasi ggpairs
library(knitr)     # Untuk buat tabel

2.1. Input Data

data <- read_excel("C:/Users/ACER/Downloads/city_lifestyle_dataset.xlsx")
print(data)

2.1.1. Struktur Data

str(data)

2.1.2. Standarisasi Data

data_std <- as.data.frame(scale(data))
print(data_std)

2.1.3. Statistika Deskriptif

summary(data_std)

2.1.4. Korelasi Variabel

2.1.4.1. Matriks Korelasi

x_cols <- paste0("X", 1:7)  
X <- data_std[, x_cols]         # Membuat data frame variabel X
X_std <- as.data.frame(X)  
cor_mat <- cor(X_std, use = "pairwise.complete.obs")
print(round(cor_mat, 3))   

2.1.4.2. Visualisasi Matriks Korelasi

corrplot(cor_mat, method = "color", type = "upper",
         tl.col = "black", tl.srt = 45,
         addCoef.col = "black", number.cex = 0.6,
         col = colorRampPalette(c("blue","white","red"))(200))

2.1.5. Uji Kelayakan Data

kmo_test <- KMO(cor_mat)
print(kmo_test)

2.2. Principal Component Analysis (PCA)

2.2.1 Nilai Eigen dan Proporsi Varians

# Mencari nilai eigen, proporsi varians dan proporsi kumulatif                    
pca_res <- prcomp(X_std, center = TRUE, scale. = TRUE)
# Mengambil nilai eigen
eig_vals <- (pca_res$sdev)^2 
# Mengambil nilai proporsi varians
prop_var <- eig_vals / sum(eig_vals)
# Mengambil nilai proporsi kumulatif
cum_var  <- cumsum(prop_var)   
# Membuat tabel nilai eigen, proporsi varians, dan proporsi kumulatif
eig_tab <- data.frame(
  PC = 1:length(eig_vals),
  Eigenvalue = round(eig_vals, 3),
  Proportion = round(prop_var, 3),
  Cumulative = round(cum_var, 3)
)
print(eig_tab)

2.2.2 Scree Plot

plot(eig_vals, xlab = "Eigenvalue Number", ylab = "Eigenvalue Size",
     main = "Scree Plot")
lines(eig_vals)

2.2.3 Loading Factor

# Memilih komponen utama dengan nilai eigen > 1
nfactors <- sum(eig_vals > 1)
# Mencari nilai loading (koefisien) komponen utama yang terpilih
loadings <- as.data.frame(round(pca_res$rotation[, 1:nfactors], 3))
print(loadings)

3. HASIL DAN PEMBAHASAN

3.1. Struktur Data

## tibble [300 × 8] (S3: tbl_df/tbl/data.frame)
##  $ Y : num [1:300] 8.5 8.1 8.5 8.5 8.5 8.4 8.5 7.9 8.5 7.7 ...
##  $ X1: num [1:300] 2775 3861 2562 3192 3496 ...
##  $ X2: num [1:300] 3850 3700 4310 3970 4320 4640 3450 3610 5220 3330 ...
##  $ X3: num [1:300] 86.4 78.1 80.1 81.2 100 78.5 84.2 72.4 100 88.7 ...
##  $ X4: num [1:300] 1310 1330 1330 1480 1510 1620 1080 1520 1950 1040 ...
##  $ X5: num [1:300] 43 42 39 60 64 35 55 47 53 76 ...
##  $ X6: num [1:300] 52 62.8 73.2 49.2 93.7 51.6 47.5 59.5 60 60.1 ...
##  $ X7: num [1:300] 23.8 33.1 40.2 43.6 42.5 20.3 50 35.6 34.8 31.7 ...

Hasil struktur data menunjukkan bahwa dataset terdiri dari 300 baris dan 8 variabel numerik, mencakup satu variabel respon (Y) dan tujuh variabel prediktor (X1–X7). Semua variabel sudah dalam bentuk numerik sehingga sesuai untuk analisis PCA setelah proses standardisasi.

3.2. Standarisasi Data

##           Y          X1        X2        X3        X4         X5         X6
## 1 1.1009191 -0.39222704 0.8515074 0.7108450 0.6733408 -1.1144885 -0.2526641
## 2 0.8636521 -0.02811113 0.7266285 0.2230256 0.7171733 -1.1539440  0.4814031
## 3 1.1009191 -0.46364204 1.2344693 0.3405724 0.7171733 -1.2723108  1.1882827
## 4 1.1009191 -0.25241458 0.9514105 0.4052232 1.0459174 -0.4437437 -0.4429779
## 5 1.1009191 -0.15048895 1.2427946 1.5101636 1.1116662 -0.2859214  2.5816510
## 6 1.0416023 -0.83848695 1.5092028 0.2465349 1.3527451 -1.4301331 -0.2798518
##            X7
## 1 -1.08048129
## 2 -0.09469228
## 3  0.65789933
## 4  1.01829532
## 5  0.90169662
## 6 -1.45147716

Standarisasi terhadap setiap variabel perlu dilakukan, jika skala tiap variabel masih berbeda. Hal ini dilakukan agar variabel yang berskala besar tidak mendominasi dalam model PCA.

3.3. Statistika Deskriptif

##        Y                 X1                X2                 X3          
##  Min.   :-2.4581   Min.   :-1.2891   Min.   :-1.95410   Min.   :-2.36888  
##  1st Qu.:-0.7972   1st Qu.:-0.7091   1st Qu.:-0.76567   1st Qu.:-0.58217  
##  Median : 0.1519   Median :-0.2888   Median :-0.01432   Median : 0.04083  
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.00000  
##  3rd Qu.: 1.1009   3rd Qu.: 0.2947   3rd Qu.: 0.77034   3rd Qu.: 0.75933  
##  Max.   : 1.1009   Max.   : 3.5145   Max.   : 2.40833   Max.   : 1.51016  
##        X4                 X5                X6                 X7          
##  Min.   :-1.82511   Min.   :-1.9431   Min.   :-2.76752   Min.   :-3.39126  
##  1st Qu.:-0.79505   1st Qu.:-0.6805   1st Qu.:-0.65538   1st Qu.:-0.61144  
##  Median :-0.02798   Median :-0.1478   Median :-0.06915   Median : 0.07491  
##  Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.00000  
##  3rd Qu.: 0.72265   3rd Qu.: 0.5821   3rd Qu.: 0.57656   3rd Qu.: 0.67910  
##  Max.   : 3.12796   Max.   : 2.9494   Max.   : 2.67001   Max.   : 2.54468

Hasil ringkasan data yang telah distandarisasi menunjukkan bahwa seluruh variabel memiliki rata-rata 0 dan standar deviasi 1, sesuai karakteristik Z-score. Rentang nilai setiap variabel berada antara sekitar -3 hingga +3, yang menandakan penyebaran data sudah berada pada skala seragam. Nilai minimum dan maksimum yang bervariasi antar variabel menunjukkan perbedaan sebaran relatif, namun keseluruhan variabel sudah siap digunakan untuk analisis PCA karena tidak ada variabel yang memiliki skala berbeda lagi.

3.4. Korelasi Variabel

3.4.1. Matriks Korelasi

##        X1     X2     X3     X4     X5     X6     X7
## X1  1.000 -0.187 -0.067 -0.201  0.659  0.282 -0.546
## X2 -0.187  1.000  0.825  0.942 -0.481  0.578  0.039
## X3 -0.067  0.825  1.000  0.781 -0.376  0.509  0.012
## X4 -0.201  0.942  0.781  1.000 -0.463  0.538  0.030
## X5  0.659 -0.481 -0.376 -0.463  1.000 -0.071 -0.376
## X6  0.282  0.578  0.509  0.538 -0.071  1.000 -0.203
## X7 -0.546  0.039  0.012  0.030 -0.376 -0.203  1.000

Hasil matriks korelasi menunjukkan bahwa terdapat hubungan antar variabel yang sangat kuat antara X2 dengan X4 yang memiliki korelasi tinggi (0.942). Sementara sebagian besar kombinasi variabel lainnya menunjukkan korelasi rendah hingga sedang (<0.90).

3.4.2. Visualisasi Matriks Korelasi

Matriks korelasi dapat divisualisasi dengan corrplot.Blok warna pada corrpot menunjukan tingkat korelasi antar variabel. Semakin pekat warna pada corrplot menunjukkan bahwa korelasi antar variabel tersebut makin tinggi.Berdasarkan hasil corrplot, dapat dilihat bahwa nilai yang paling pekat berada di blok antara X2 dan X4. Dengan demikian, variabel X2 dan X4 memiliki korelasi yang tinggi.

3.5. Uji Kelayakan Data

## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = cor_mat)
## Overall MSA =  0.76
## MSA for each item = 
##   X1   X2   X3   X4   X5   X6   X7 
## 0.59 0.71 0.89 0.76 0.78 0.83 0.76

Hasil uji KMO menunjukkan nilai MSA sebesar 0.76, dimana > 0.5 sehingga layak untuk dianalisis lebih lanjut. Dapat dilihat, nilai MSA per variabel juga berada pada nilai > 0.5. Dengan demikian, secara keseluruhan hasil ini menunjukkan bahwa data memiliki kecukupan sampel yang baik dan layak digunakan untuk analisis PCA.

3.6. Principal Component Analysis (PCA)

3.6.1. Nilai Eigen dan Proporsi Varians

##   PC Eigenvalue Proportion Cumulative
## 1  1      3.409      0.487      0.487
## 2  2      2.047      0.292      0.779
## 3  3      0.585      0.084      0.863
## 4  4      0.434      0.062      0.925
## 5  5      0.276      0.039      0.964
## 6  6      0.197      0.028      0.993
## 7  7      0.052      0.007      1.000

Hasil analisis PCA menunjukkan bahwa komponen pertama (PC1) menjelaskan proporsi varians terbesar, yaitu sekitar 48.71%, diikuti oleh PC2 yang menjelaskan 29.24% varians. Secara kumulatif, dua komponen pertama sudah mampu menjelaskan sekitar 77.95% variasi data, yang menandakan bahwa sebagian besar informasi dalam variabel awal dapat diringkas hanya dengan PC1 dan PC2. Penambahan PC3 hingga PC4 meningkatkan proporsi kumulatif menjadi sekitar 92.5%, dan seluruh komponen mencapai 100% pada PC7. Dapat dilihat pada nilai eigen, bahwa komponen utama yang memiliki nilai eigen > 1 adalah PC1 (3.409) dan PC2 (2.047), yang berarti bahwa komponen PC1 dan PC2 dipilih sebagai komponen utama. Dengan demikian, dapat disimpulkan bahwa hanya PC1 dan PC2 saja yang digunakan sebagai komponen utama.

3.6.2. Scree Plot

Scree plot menunjukkan penurunan nilai eigen yang tajam pada PC1 dan PC2, kemudian mulai landai setelah PC2. Hal ini menandakan bahwa sebagian besar informasi data sudah dijelaskan oleh dua komponen pertama. Titik “elbow” terlihat pada PC2, sehingga PC1 dan PC2 menjadi komponen utama yang layak dipertahankan karena memiliki kontribusi terbesar terhadap variasi total.

3.6.3. Loading Factor

##       PC1    PC2
## X1  0.171  0.598
## X2 -0.518  0.094
## X3 -0.468  0.141
## X4 -0.507  0.085
## X5  0.343  0.408
## X6 -0.320  0.400
## X7 -0.082 -0.529

Berdasarkan hasil nilai loading, dapat dibentuk 2 model komponen utama, yaitu:

  • PC1 = 0. 171X1 − 0. 518X2 − 0. 468X3 − 0. 507X4 + 0. 343X5 − 0. 320X6 − 0. 082X7

  • PC2 = 0. 598X1 + 0. 094X2 + 0. 141X3 + 0. 085X4 + 0. 408X5 + 0. 400X6 − 0. 529X7

Hasil loading faktor menunjukkan bahwa PC1 dipengaruhi oleh variabel pendapatan rata-rata, penetrasi internet, dan sewa rata-rata yang semuanya memiliki nilai loading negatif cukup besar. Hal ini menunjukkan bahwa PC1 mencerminkan dimensi yang berkaitan dengan kondisi ekonomi, tingkat modernitas, dan biaya hidup suatu kota. Variabel transportasi umum serta kepadatan penduduk juga berkontribusi, tetapi tidak sekuat tiga variabel ekonomi tersebut. Sementara itu, PC2 didominasi oleh kepadatan penduduk, kualitas udara, dan skor transportasi umum yang memiliki loading positif cukup tinggi, serta rasio ruang hijau yang memiliki loading negatif besar. Pola ini menggambarkan bahwa PC2 lebih merepresentasikan karakteristik fisik kota, seperti tingkat kepadatan, kualitas lingkungan, dan ketersediaan ruang hijau. Dengan demikian, dua komponen utama tersebut dapat diinterpretasikan sebagai dimensi “kondisi ekonomi kota” untuk PC1 dan “kepadatan serta kualitas lingkungan” untuk PC2.

4. PENUTUP

4.1. Kesimpulan

Berdasarkan hasil analisis PCA yang telah dilakukan, dapat disimpulkan bahwa terdapat hubungan yang cukup kuat antar variabel, khususnya antara X2 dan X4 dengan korelasi sebesar 0.942. Hasil uji KMO menunjukkan nilai MSA sebesar 0.76 dan seluruh variabel memiliki MSA > 0.5, sehingga data dinilai layak untuk dilakukan analisis lanjutan.

Analisis PCA menghasilkan dua komponen utama yang relevan, yaitu PC1 dan PC2, karena memiliki nilai eigen > 1. Kedua komponen tersebut mampu menjelaskan 77.95% variasi total data, dan secara keseluruhan 92.5% variasi dapat dijelaskan hingga PC4. PC1 menggambarkan dimensi yang berkaitan dengan kondisi ekonomi dan modernitas kota, sedangkan PC2 merepresentasikan karakteristik fisik kota seperti kepadatan penduduk, kualitas lingkungan, dan ruang hijau. Dengan demikian, dua komponen utama ini berhasil merangkum informasi terpenting dari seluruh variabel dan dapat digunakan untuk analisis lebih lanjut maupun pengelompokan kota berdasarkan karakteristiknya.

4.2. Saran

  1. Untuk penelitian selanjutnya, disarankan menambah variabel yang lebih beragam seperti indikator sosial, tingkat kriminalitas, atau kualitas layanan publik agar gambaran karakteristik kota menjadi lebih komprehensif.

  2. Sebelum melakukan PCA, perlu memastikan jumlah sampel cukup besar agar struktur korelasi antar variabel lebih stabil dan hasil komponen utama lebih akurat.

  3. Pemanfaatan PC1 dan PC2 dapat dijadikan dasar dalam pengelompokan kota, penilaian tingkat perkembangan ekonomi, serta evaluasi kualitas lingkungan pada daerah perkotaan.

5. DAFTAR PUSTAKA

Soemartini. (2008). Principal Component Analysis (PCA) Sebagai Salah Satu Metode Untuk Mengatasi Masalah Multikolinearitas. Universitas Padjadjaran.

Shlens, J. (2014). A Tutorial on Principal Component Analysis. Google Research.