Read Dataset
datasetcsv <- read.csv("C:/Users/Sania/Downloads/Housing.csv", header = TRUE, sep = ",")
head(datasetcsv)
## price area bedrooms bathrooms stories mainroad guestroom basement
## 1 13300000 7420 4 2 3 yes no no
## 2 12250000 8960 4 4 4 yes no no
## 3 12250000 9960 3 2 2 yes no yes
## 4 12215000 7500 4 2 2 yes no yes
## 5 11410000 7420 4 1 2 yes yes yes
## 6 10850000 7500 3 3 1 yes no yes
## hotwaterheating airconditioning parking prefarea furnishingstatus
## 1 no yes 2 yes furnished
## 2 no yes 3 no furnished
## 3 no no 2 yes semi-furnished
## 4 no yes 3 yes furnished
## 5 no yes 2 no furnished
## 6 no yes 2 yes semi-furnished
Mengambil Data yang Numerik
datasetcsv_numeric <- datasetcsv[sapply(datasetcsv, is.numeric)]
head(datasetcsv_numeric)
## price area bedrooms bathrooms stories parking
## 1 13300000 7420 4 2 3 2
## 2 12250000 8960 4 4 4 3
## 3 12250000 9960 3 2 2 2
## 4 12215000 7500 4 2 2 3
## 5 11410000 7420 4 1 2 2
## 6 10850000 7500 3 3 1 2
X <- as.matrix(datasetcsv_numeric)
dim(X)
## [1] 545 6
Menghitung Variance dan Covariance
S <- cov(X, use = "complete.obs")
variances <- apply(X, 2, var)
print(S)
## price area bedrooms bathrooms stories
## price 3.498544e+12 2.175676e+09 5.059464e+05 4.864093e+05 6.826446e+05
## area 2.175676e+09 4.709512e+06 2.432321e+02 2.113466e+02 1.581294e+02
## bedrooms 5.059464e+05 2.432321e+02 5.447383e-01 1.386738e-01 2.615893e-01
## bathrooms 4.864093e+05 2.113466e+02 1.386738e-01 2.524757e-01 1.421715e-01
## stories 6.826446e+05 1.581294e+02 2.615893e-01 1.421715e-01 7.525432e-01
## parking 6.194673e+05 6.599897e+02 8.856247e-02 7.684161e-02 3.404277e-02
## parking
## price 6.194673e+05
## area 6.599897e+02
## bedrooms 8.856247e-02
## bathrooms 7.684161e-02
## stories 3.404277e-02
## parking 7.423300e-01
print(variances)
## price area bedrooms bathrooms stories parking
## 3.498544e+12 4.709512e+06 5.447383e-01 2.524757e-01 7.525432e-01 7.423300e-01
print(S[1:3, 1:3])
## price area bedrooms
## price 3.498544e+12 2.175676e+09 5.059464e+05
## area 2.175676e+09 4.709512e+06 2.432321e+02
## bedrooms 5.059464e+05 2.432321e+02 5.447383e-01
Menghitung Korelasi Matriks Antar Fitur
correlation_matrix <- cor(X, use = "complete.obs")
print(correlation_matrix)
## price area bedrooms bathrooms stories parking
## price 1.0000000 0.53599735 0.3664940 0.5175453 0.42071237 0.38439365
## area 0.5359973 1.00000000 0.1518585 0.1938195 0.08399605 0.35298048
## bedrooms 0.3664940 0.15185849 1.0000000 0.3739302 0.40856424 0.13926990
## bathrooms 0.5175453 0.19381953 0.3739302 1.0000000 0.32616471 0.17749582
## stories 0.4207124 0.08399605 0.4085642 0.3261647 1.00000000 0.04554709
## parking 0.3843936 0.35298048 0.1392699 0.1774958 0.04554709 1.00000000
Menghitung Nilai Eigen Value dan Eigen Vektor Berdasarkan Korelasi
Matriks
eigen_result <- eigen(correlation_matrix)
eigen_values <- eigen_result$values
print(eigen_values)
## [1] 2.5561051 1.2171486 0.6771415 0.6566698 0.5908395 0.3020955
eigen_vectors <- eigen_result$vectors
print(eigen_vectors)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] -0.5395439 0.1203486 0.24279104 0.04162299 -0.14135501 0.78342034
## [2,] -0.3685384 0.5178529 0.51575760 -0.22455991 0.31542421 -0.42436114
## [3,] -0.3915181 -0.3822393 -0.38949056 -0.24634216 0.69703170 0.04864311
## [4,] -0.4322131 -0.2116685 0.01788812 0.81460710 -0.03855905 -0.32093105
## [5,] -0.3682862 -0.4917297 0.12475034 -0.46684594 -0.55146176 -0.29146070
## [6,] -0.3119977 0.5335130 -0.71236303 -0.07500705 -0.29845646 -0.12592842