Menampilkan Dataset

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>

Menampilkan kolom numerik saja

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

Melihat nilai kosong

sapply(data_num, function(x) sum(is.na(x)))
##     price      area  bedrooms bathrooms   stories   parking 
##         0         0         0         0         0         0

Mencari Nilai Eigen dan Vektor Eigen

Menurut Wikipedia, eilai eigen merupakan besar perubahan panjang vektor yang terjadi, biasannya dilambangkan dengan ({\displaystyle \lambda }). 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

Mencari Variance dan Covariance Variabel

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

Mencari Correlation Variabel

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