Analisis multivariat pada dataset Housing untuk menghitung eigenvalue, eigenvector, variance-covariance matrix, dan correlation matrix. Dibuat untuk memenuhi tugas Analisis Multivariat
## 'data.frame': 545 obs. of 13 variables:
## $ price : int 13300000 12250000 12250000 12215000 11410000 10850000 10150000 10150000 9870000 9800000 ...
## $ area : int 7420 8960 9960 7500 7420 7500 8580 16200 8100 5750 ...
## $ bedrooms : int 4 4 3 4 4 3 4 5 4 3 ...
## $ bathrooms : int 2 4 2 2 1 3 3 3 1 2 ...
## $ stories : int 3 4 2 2 2 1 4 2 2 4 ...
## $ mainroad : chr "yes" "yes" "yes" "yes" ...
## $ guestroom : chr "no" "no" "no" "no" ...
## $ basement : chr "no" "no" "yes" "yes" ...
## $ hotwaterheating : chr "no" "no" "no" "no" ...
## $ airconditioning : chr "yes" "yes" "no" "yes" ...
## $ parking : int 2 3 2 3 2 2 2 0 2 1 ...
## $ prefarea : chr "yes" "no" "yes" "yes" ...
## $ furnishingstatus: chr "furnished" "furnished" "semi-furnished" "furnished" ...
## price area bedrooms bathrooms
## Min. : 1750000 Min. : 1650 Min. :1.000 Min. :1.000
## 1st Qu.: 3430000 1st Qu.: 3600 1st Qu.:2.000 1st Qu.:1.000
## Median : 4340000 Median : 4600 Median :3.000 Median :1.000
## Mean : 4766729 Mean : 5151 Mean :2.965 Mean :1.286
## 3rd Qu.: 5740000 3rd Qu.: 6360 3rd Qu.:3.000 3rd Qu.:2.000
## Max. :13300000 Max. :16200 Max. :6.000 Max. :4.000
## stories mainroad guestroom basement
## Min. :1.000 Length:545 Length:545 Length:545
## 1st Qu.:1.000 Class :character Class :character Class :character
## Median :2.000 Mode :character Mode :character Mode :character
## Mean :1.806
## 3rd Qu.:2.000
## Max. :4.000
## hotwaterheating airconditioning parking prefarea
## Length:545 Length:545 Min. :0.0000 Length:545
## Class :character Class :character 1st Qu.:0.0000 Class :character
## Mode :character Mode :character Median :0.0000 Mode :character
## Mean :0.6936
## 3rd Qu.:1.0000
## Max. :3.0000
## furnishingstatus
## Length:545
## Class :character
## Mode :character
##
##
##
# Mengubah variabel kategorikal menjadi factor
housing$mainroad <- as.factor(housing$mainroad)
housing$guestroom <- as.factor(housing$guestroom)
housing$basement <- as.factor(housing$basement)
housing$hotwaterheating <- as.factor(housing$hotwaterheating)
housing$airconditioning <- as.factor(housing$airconditioning)
housing$prefarea <- as.factor(housing$prefarea)
housing$furnishingstatus <- as.factor(housing$furnishingstatus)
# Memilih variabel numerik untuk analisis multivariat
housing_numeric <- housing[, c("price", "area", "bedrooms", "bathrooms", "stories", "parking")]
head(housing_numeric)# Menghitung Variance-Covariance Matrix
var_cov_matrix <- cov(housing_numeric)
round(var_cov_matrix, 2)## price area bedrooms bathrooms stories parking
## price 3.498544e+12 2.175676e+09 505946.43 486409.33 682644.63 619467.32
## area 2.175676e+09 4.709512e+06 243.23 211.35 158.13 659.99
## bedrooms 5.059464e+05 2.432300e+02 0.54 0.14 0.26 0.09
## bathrooms 4.864093e+05 2.113500e+02 0.14 0.25 0.14 0.08
## stories 6.826446e+05 1.581300e+02 0.26 0.14 0.75 0.03
## parking 6.194673e+05 6.599900e+02 0.09 0.08 0.03 0.74
# Menghitung eigenvalue dan eigenvector dari matriks varians-kovarians
eigen_result <- eigen(var_cov_matrix)
# Eigenvalues
eigenvalues <- eigen_result$values
eigenvalues## [1] 3.498546e+12 3.356500e+06 7.345801e-01 5.958731e-01 3.626262e-01
## [6] 1.677009e-01
## [,1] [,2] [,3] [,4] [,5]
## [1,] 9.999998e-01 6.218809e-04 2.350022e-07 2.360030e-07 -1.896406e-08
## [2,] 6.218809e-04 -9.999998e-01 -1.068146e-04 4.693651e-05 1.227917e-05
## [3,] 1.446162e-07 2.127405e-05 -4.831235e-01 -3.524835e-01 -7.742078e-01
## [4,] 1.390319e-07 2.715391e-05 -1.156247e-01 -7.418855e-02 -1.559105e-01
## [5,] 1.951224e-07 7.936672e-05 -7.760615e-01 -2.230034e-01 5.897316e-01
## [6,] 1.770643e-07 -8.185750e-05 3.885243e-01 -9.058261e-01 1.688515e-01
## [,6]
## [1,] 1.167426e-07
## [2,] -2.065080e-05
## [3,] 2.072422e-01
## [4,] -9.781712e-01
## [5,] 1.465063e-02
## [6,] -4.137110e-03
# Membuat tabel untuk memperjelas eigenvector
eigenvector_df <- as.data.frame(eigenvectors)
colnames(eigenvector_df) <- paste0("EV", 1:ncol(eigenvector_df))
rownames(eigenvector_df) <- colnames(housing_numeric)
eigenvector_df## price area bedrooms bathrooms stories parking
## price 1.0000 0.5360 0.3665 0.5175 0.4207 0.3844
## area 0.5360 1.0000 0.1519 0.1938 0.0840 0.3530
## bedrooms 0.3665 0.1519 1.0000 0.3739 0.4086 0.1393
## bathrooms 0.5175 0.1938 0.3739 1.0000 0.3262 0.1775
## stories 0.4207 0.0840 0.4086 0.3262 1.0000 0.0455
## parking 0.3844 0.3530 0.1393 0.1775 0.0455 1.0000
# Visualisasi correlation matrix
library(corrplot)
corrplot(corr_matrix, method = "color", type = "upper",
order = "hclust", tl.col = "black", tl.srt = 45,
title = "Correlation Matrix of Housing Dataset")# Eigenvalue dan Eigenvector dari matriks korelasi
eigen_corr <- eigen(corr_matrix)
cat("Eigenvalues dari Matriks Korelasi:")## Eigenvalues dari Matriks Korelasi:
## [1] 2.5561051 1.2171486 0.6771415 0.6566698 0.5908395 0.3020955
Berdasarkan hasil analisis di atas, kita dapat menarik beberapa kesimpulan:
Analisis multivariat pada dataset Housing memberikan wawasan tentang struktur dan hubungan antara variabel numerik. Eigenvalue dan eigenvector membantu kita memahami arah utama variasi dalam data, sementara matriks varians-kovarians dan korelasi menunjukkan hubungan antara pasangan variabel.