library(mvtnorm)
library(ggplot2)
library(matlib)
library(readxl)
data <- read_excel("D:/Materi Semester 4/Analisis Multilaverat/dataset 3.xlsx")
data
## # A tibble: 545 × 13
## price area bedrooms bathrooms stories mainroad guestroom basement
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
## 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
## 7 10150000 8580 4 3 4 yes no no
## 8 10150000 16200 5 3 2 yes no no
## 9 9870000 8100 4 1 2 yes yes yes
## 10 9800000 5750 3 2 4 yes yes no
## # ℹ 535 more rows
## # ℹ 5 more variables: hotwaterheating <chr>, airconditioning <chr>,
## # parking <dbl>, prefarea <chr>, furnishingstatus <chr>
data_2 <- unlist(lapply(data, is.numeric))
data_num <- data[ , data_2]
data_num
## # A tibble: 545 × 6
## price area bedrooms bathrooms stories parking
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 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
## 7 10150000 8580 4 3 4 2
## 8 10150000 16200 5 3 2 0
## 9 9870000 8100 4 1 2 2
## 10 9800000 5750 3 2 4 1
## # ℹ 535 more rows
sapply(data_num, function(x) sum(is.na(x)))
## price area bedrooms bathrooms stories parking
## 0 0 0 0 0 0
Menurut Wikipedia, eilai eigen merupakan besar perubahan panjang
vektor yang terjadi, biasannya dilambangkan dengan (). Sedangkan vektor eigen adalah vektor
tak nol yang hanya mengalami perubahan panjang ketika dikalikan dengan
matriks tersebut, dilambangkan dengan(v).
Nilai eigen didapatkan dari persamaan |A - λI| = 0, yang mana A merupakan matriks n x n, dengan λ nilai eigen dan x vektor eigen yang berkorespondensi dengan λ.
Sedangkan vektor eigen diperoleh dari pemetaan linear T yang merupakan suatu vektor tak nol yang tidak berubah arah, ketika diterapkan oleh T. Menerapkan T ke vektor eigen hanya mengubah ukuran eigen vektor sebesar λ, yang disebut dengan nilai eigen. Kondisi ini dapat ditulis dalam bentuk persamaan sebagai (A - λI) v = 0.
Adapun kode mendapatkan nilai eigen dan vektor eigen sebagai berikut :
data_4 <- as.matrix(data_num)
# Membuat matriks persegi dengan X'X (transpose X dikali X)
XTX <- t(data_4) %*% data_4
# mengitung nilai eigen
eigen_result <- eigen(XTX)
# menampilkan nilai eigen
print(eigen_result$values)
## [1] 1.428655e+16 2.172941e+09 7.858484e+02 3.331367e+02 2.327042e+02
## [6] 9.179394e+01
#menampilkan vektor eigen
print(eigen_result$vectors)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 9.999995e-01 1.019420e-03 5.535982e-07 1.590317e-07 9.552647e-08
## [2,] 1.019420e-03 -9.999995e-01 1.134895e-04 9.351645e-05 -6.338868e-05
## [3,] 5.584464e-07 -1.483611e-04 -8.012595e-01 -2.455364e-01 4.824261e-01
## [4,] 2.524112e-07 -2.272744e-05 -2.184454e-01 -5.375773e-02 1.206361e-01
## [5,] 3.543068e-07 2.747150e-06 -5.354015e-01 1.135328e-01 -8.368697e-01
## [6,] 1.497083e-07 -5.779621e-05 1.536555e-01 -9.612140e-01 -2.288257e-01
## [,6]
## [1,] -1.150992e-07
## [2,] 1.524276e-05
## [3,] -2.548727e-01
## [4,] 9.668705e-01
## [5,] -1.023509e-02
## [6,] 9.822723e-03
Varians adalah ukuran variabilitas atau penyebaran dalam sekumpulan data. Secara matematis, varians adalah deviasi kuadrat rata-rata dari skor rata-rata. Adapun cara mendapatkan Varians yaitu dengan rumus : Var(X) = Σ (Xi-X)^2
Sedangkan Kovariansi adalah ukuran sejauh mana elemen-elemen yang bersesuaian dari dua set data yang diurutkan bergerak ke arah yang sama. Kovariansi didapatkan dari perhitungan rumus berikut : Cov( X , Y ) = Σ( Xi - X ) ( Yi - Y )
Adapun kode mendapatkan varians dan kovariansi
#mendapatkan nilai variance
variance <- apply(data_num, 2, var)
print(variance)
## price area bedrooms bathrooms stories parking
## 3.498544e+12 4.709512e+06 5.447383e-01 2.524757e-01 7.525432e-01 7.423300e-01
#mendapatkan nilaicovariance
covariance <- cov(data_num)
print(covariance)
## 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
Korelasi Variabel merupakan nilai yang menunjukkan hubungan antar variabel. Yang mana hasil dari korelasi variabel lebih baik daripada hasil dari varians atau kovariansi. Rentang nilai korelasi yaitu antara nol hingga satu, yang mana satu merupakan hasil terbaik. Korelasi variabel didapatkan dari rumus :
Adapun kode mendapatkan korelasi variabel sebagai berikut.
#mendapatkan korelasi
correlation <- cor(data_num)
print(correlation)
## 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