Disetiap negara tentunya memiliki biaya hidup yang berbeda beda. Terdapat beberapa negara yang memiliki biaya hidup yang relatif tinggi namun ada pula negara dengan biaya hidup relatif rendah. Negara yang digolongkan sebagai negara maju biasanya memiliki biaya hidup yang tinggi dibandingkan dengan negara berkembang. Hal ini berbanding lurus dengan pendapatan dari negara negara maju yang juga relatif tinggi dibandingkan negara berkembang. Biaya hidup yang tinggi tidak hanya dipengaruhi oleh faktor negara maupun pendapatan saja. Terdapat faktor-faktor lain yang juga mempengaruhi tingginya biaya hidup seperti harga sewa, harga barang, harga makanan di restoran dan lain sebagainya. Dilakukan analisis komponen utama guna menentukan komponen utama yang dipilih dari faktor faktor yang mempengaruhi cost of living pada tahun 2017.
Analisis komponen utama (AKU) yang biasa disebut Principal Component Analysis (PCA) merupakan suatu teknik yang digunakan untuk menyederhanakan data dengan dilakukan transformasi linear agar terbentuk sistem koordinat baru dengan variansi maksimum. Metode ini dapat digunakan untuk mengatasi adanya mutikolinearitas antar variabel dan didapatkan variabel baru yang saling bebas. Berdasarkan kaiser index, jumlah komponen utama yang penting sama dengan jumlah relatif nilai eigen yang nilainya lebih dari 1.
Terdapat 3 metode yang dapat digunakann untuk menentukan banyak komponen utama antara lain : - Berdasarkan proporsi kumulatif ragam total. - Berdasarkan nilai eigennya. Komponen yang memiliki nilai eigen lebih dari 1 adalah komponen yang akan dipilih - Dipilih dari scree plot. Untuk menentukan jumlah komponen dengan scree plot, dapat dilihat pada siku scree plot.
Persamaan komponen utama dapat ditulis sebagai berikut :
\[ Y_i = \phi{x_1} + \phi{x_2} +...+ \phi{x_p} \]
Data yang digunakan adalah data mengenai cost of living pada tahun 2017. Data diperoleh dari kaggle dengan tautan sebagai berikut: https://www.kaggle.com/code/nareshbhat/outlier-the-silent-killer/input?select=cost-of-living-2017.csv. Pada data terdapat beberapa variabel. Variabel yang akan dianalisis adalah variabel Rent index, Groceries Index, Restourant price index, dan Local purchasing power index. Dari keempat variabel tersebut akan didapatkan komponen yang dapat menjelaskan semua variabel yang disebut dengan komponen utama. Data yang digunakan adalah sebagai berikut :
# Library
library(readxl)
library(FactoMineR)
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(corrr)
library(ggcorrplot)
library(corrplot)
## corrplot 0.92 loaded
data.pca <- read.csv("C:/Users/user/Downloads/cost-of-living-2017.csv")
names(data.pca)
## [1] "City" "State"
## [3] "Country" "Cost.of.Living.Plus.Rent.Index"
## [5] "CLI" "Rent.Index"
## [7] "Groceries.Index" "Restaurant.Price.Index"
## [9] "Local.Purchasing.Power.Index" "Leverage.Model.1"
## [11] "Leverage.Model.2"
outlier1 = boxplot.stats(data.pca$Cost.of.Living.Plus.Rent.Index)$out
outlier1
## [1] 108.77 133.20 105.54 106.73 97.47 110.65 100.00
outlier2 = boxplot.stats(data.pca$Rent.Index)$out
outlier2
## [1] 66.76 117.80 67.39 70.25 119.63 77.52 100.00 74.32 76.36 67.79
## [11] 67.97 78.69 78.41 73.37 66.99 83.63 67.55 70.52 68.03 82.67
## [21] 71.92 71.85 68.70 69.75
outlier3 = boxplot.stats(data.pca$Groceries.Index)$out
outlier3
## [1] 163.71 145.20 148.36 147.13 149.54 145.72
outlier4 = boxplot.stats(data.pca$Restaurant.Price.Index)$out
outlier4
## [1] 152.54
outlier5 = boxplot.stats(data.pca$Local.Purchasing.Power.Index)$out
outlier5
## numeric(0)
Outlier di hapus secara manual dan data yang sudah bersih dari outlier dapat diimport ulang
data.pca_bersih<- read_xlsx("C:/Users/user/Downloads/cost-of-living-2017.xlsx")
outlier1 = boxplot.stats(data.pca_bersih$`Cost of Living Plus Rent Index`)$out
outlier1
## numeric(0)
outlier2 = boxplot.stats(data.pca_bersih$`Rent Index`)$out
outlier2
## numeric(0)
outlier3 = boxplot.stats(data.pca_bersih$`Groceries Index`)$out
outlier3
## numeric(0)
outlier4 = boxplot.stats(data.pca_bersih$`Restaurant Price Index`)$out
outlier4
## numeric(0)
outlier5 = boxplot.stats(data.pca_bersih$`Local Purchasing Power Index`)$out
outlier5
## numeric(0)
Outlier pada data sudah tidak ditemukan. Sehingga data sudah siap digunakan.
data.pca1 <- data.pca_bersih[,c(6,7,8,9)]
names(data.pca1)
## [1] "Rent Index" "Groceries Index"
## [3] "Restaurant Price Index" "Local Purchasing Power Index"
datatable(data.pca1)
summary(data.pca1)
## Rent Index Groceries Index Restaurant Price Index
## Min. : 3.13 Min. : 22.03 Min. : 12.12
## 1st Qu.:12.33 1st Qu.: 41.37 1st Qu.: 32.60
## Median :22.77 Median : 61.12 Median : 62.55
## Mean :23.34 Mean : 60.45 Mean : 56.11
## 3rd Qu.:31.68 3rd Qu.: 77.84 3rd Qu.: 75.72
## Max. :56.81 Max. :120.83 Max. :128.03
## Local Purchasing Power Index
## Min. : 2.96
## 1st Qu.: 48.77
## Median : 80.28
## Mean : 77.69
## 3rd Qu.:102.28
## Max. :171.26
cor(data.pca1)
## Rent Index Groceries Index Restaurant Price Index
## Rent Index 1.0000000 0.8139631 0.8182958
## Groceries Index 0.8139631 1.0000000 0.8225458
## Restaurant Price Index 0.8182958 0.8225458 1.0000000
## Local Purchasing Power Index 0.6725303 0.6779412 0.6618702
## Local Purchasing Power Index
## Rent Index 0.6725303
## Groceries Index 0.6779412
## Restaurant Price Index 0.6618702
## Local Purchasing Power Index 1.0000000
mean (cor(data.pca1))
## [1] 0.8083933
Jika nilai mean dari korelasi lebih dari 0,3 maka terdapat korelasi yang tinggi antar variabel. Korelasi antar variabel juga dapat dilihat menggunakan matriks korelasi.
datamatrix <- cor(data.pca1)
corrplot(datamatrix, method="number")
pca <- prcomp(data.pca1, center = TRUE,scale. = TRUE)
summary(pca)
## Importance of components:
## PC1 PC2 PC3 PC4
## Standard deviation 1.7998 0.63071 0.43207 0.41975
## Proportion of Variance 0.8098 0.09945 0.04667 0.04405
## Cumulative Proportion 0.8098 0.90928 0.95595 1.00000
pca$rotation
## PC1 PC2 PC3 PC4
## Rent Index -0.5120240 0.2533529 0.7886066755 -0.22747138
## Groceries Index -0.5135526 0.2368538 -0.5789505105 -0.58735023
## Restaurant Price Index -0.5118599 0.3064887 -0.2071592531 0.77533806
## Local Purchasing Power Index -0.4605372 -0.8864408 -0.0009282131 0.04612349
eigen(cov(data.pca1))
## eigen() decomposition
## $values
## [1] 1878.61227 322.70981 91.52842 36.21892
##
## $vectors
## [,1] [,2] [,3] [,4]
## [1,] -0.2412659 -0.1923099 -0.05662537 0.94952683
## [2,] -0.4321261 -0.4057680 -0.76944073 -0.23786625
## [3,] -0.4945865 -0.5588119 0.63459536 -0.20100302
## [4,] -0.7144522 0.6972076 0.04520236 -0.03763288
plot(pca)
fviz_eig(pca, addlabels = TRUE)
fviz_pca_var(pca, col.var = "black")
fviz_pca_var(pca, col.var = "cos2",
gradient.cols = c("black", "orange", "green"),
repel = TRUE)
Jelaskan statistika deskriptif dari data yang digunakan
## Rent Index Groceries Index Restaurant Price Index
## Rent Index 154.2359 216.8486 248.6473
## Groceries Index 216.8486 460.1699 431.7177
## Restaurant Price Index 248.6473 431.7177 598.6339
## Local Purchasing Power Index 279.0246 485.8352 540.9926
## Local Purchasing Power Index
## Rent Index 279.0246
## Groceries Index 485.8352
## Restaurant Price Index 540.9926
## Local Purchasing Power Index 1116.0297
Korelasi antar variabel dapat menjadi indikator bahwa data bisa dianalisis menggunakan PCA atau tidak. Data dengan korelasi tinggi antar variabel nya dapat dianalisis menggunakan PCA sebelum dilanjutkan ke tahap analisis lain seperti regresi. Data yang eligible untuk di analisis menggunakan PCA adalah data dengan rata rata korelasi antar variabelnya di atas 0,3. Pada data cost of living didapatkan rata rata korelasi sebesar 0,8 sehingga data eligible untuk dianalisis menggunakan PCA. Selain menggunakan rata rata dari korelasi, dapat juga dilihat dari korelasi antar varibel didapatkan hasil sebagai berikut : - korelasi rent index dengan groceries index sebesar 0,81 - korelasi rent index dengan Restaurant price sebesar 0,82 - korelasi rent index dengan local purchasing power index sebesar 0,67 - korelasi groceries index dengan restaurant price index sebesar 0,82 - korelasi groceries index dengan local purchasing power index sebesar 0,68 - korelasi restaurant price index dengan local purchasing power index sebesar 0,66 Dari hasil di atas didapati bahwa korelasi antar variabel tinggi. Sehingga data dapat dilakukan analisis dengan PCA.
Hasil pada summary PCA menggunakan fungsi “prcomp” didapatkan hasil bahwa komponen yang memiliki nilai eigen lebih dari satu adalah komponen pertama. Komponen pertama memiliki cumulative proportion sebesar 0,8098 atau sekitar 81%. Artinya komponen pertama dapat menangkap 81% keragaman data. Sehingga komponen pertama dapat dipilih sebagai komponen utama. Untuk menuliskan persamaan komponen utama perlu mengetahui vektor eigennya menggunakan sintax pca$rotation. Didapatkan persamaan komponen utama yaitu
\[ KU_1 = -0.512Rent Index - 0.514 Groceries Index - 0.512 RestaurantPrice Index - 0.46 LocalPurchasingIndex \]
Pada scree plot didapatkan bahwa komponen utama adalah komponen pertama (PC1) yang dapat menjelaskan 81% keragaman data.
Pada plot terlihat bahwa variabel Local Purchasing power index memiliki nilai cos2 yang sangat tinggi. Artinya variabel ini menunjukkan representasi yang baik terhadap komponen utama. Berbeda denga 3 variabel lain yang memiliki nilai cos2 rendah yang artinya menunjukkan representasi yang kurang baik terhadap komponen utama.
Berdasarkan hasil analisis menggunakan PCA didapatkan hasil komponen utama yang dipilih adalah komponen pertama. Karena komponen pertama memiliki nilai eigen lebih dari 1 dan dapat menjelaskan keragaman data sebesar 81%.