‘Raisin’ merupakan dataset yang berasal dari UCI Machine Learning Repository. Dataset ini berisikan ciri-ciri buah kismis yang didapatkan dari ekstraksi citra digital. Buah kismis yang digunakan merupakan buah kismis dengan jenis Kecimen dan Besni dari Turki. Tujuan dari dataset ini adalah untuk mengklasifikasikan jenis bush kismis berdasarkan karakteristik morfologi (bentuk dan ukuran).
Dataset ‘Raisin’ berjumlah 900 data total, dengan masing-masing 450 data observasi jenis Kecimen dan dan 450 data observasi Besni. Dataset ini memiliki 8 variabel yang terdiri dari 1 variabel kategorik dan 7 variabel numerik. Variabel kategorik pada dataset ini terdiri dari Kecimen dan Besni yang juga menjadi label. Sedangkan, variabel numerik terdiri dari: 1. Area: Luas permukaan kismis dalam piksel 2. Major Axis Length: Panjang sumbu utama, seperti panjang kismisnya. 3. Minor Axis Length: Panjang sumbu minor dari kismis. 4. Eccentricity: Tingkat kebulatan bentuk buah kismis. (0 = lebih bulat; 1 = lebih lonjong) 5. Convex Area = Luas area cembung buah kismis. 6. Extent = Rasio antara area kismis dengan kotak pembungkus. Perimeter = Panjang keliling buah kismis.
# load data
library(readxl)
Raisin_Dataset <- read_excel("Raisin_Dataset.xlsx")
Pada kode ini akan membaca dataset ‘Raisin’ yang akan digunakan dalam analisis. Keluaran dari kode ini adalah data sudah dapat dimuat dalam R dan dapat dianalisis.
# Menghapus Kolom Variabel Target
Raisin_Dataset <- Raisin_Dataset[, -8]
Pada tugas kali ini, kolom yang berisikan variabel kategorik tidak diperlukan dalam perhitungan, oleh karena itu dilakukan penghapusan kolom variabel kategorik untuk memudahkan perhitungan.
A. Correlation Matrix
# Correlation Matrix
cor_matrix <- cor(Raisin_Dataset)
cor_matrix
## Area MajorAxisLength MinorAxisLength Eccentricity
## Area 1.00000000 0.9327744 0.9066499 0.3361066
## MajorAxisLength 0.93277443 1.0000000 0.7280302 0.5836084
## MinorAxisLength 0.90664987 0.7280302 1.0000000 -0.0276835
## Eccentricity 0.33610660 0.5836084 -0.0276835 1.0000000
## ConvexArea 0.99591967 0.9450309 0.8956513 0.3482103
## Extent -0.01349934 -0.2038656 0.1453215 -0.3610615
## Perimeter 0.96135172 0.9779780 0.8274170 0.4478452
## ConvexArea Extent Perimeter
## Area 0.99591967 -0.01349934 0.9613517
## MajorAxisLength 0.94503093 -0.20386556 0.9779780
## MinorAxisLength 0.89565132 0.14532153 0.8274170
## Eccentricity 0.34821030 -0.36106149 0.4478452
## ConvexArea 1.00000000 -0.05480247 0.9766122
## Extent -0.05480247 1.00000000 -0.1734489
## Perimeter 0.97661223 -0.17344893 1.0000000
Pada kode ini akan dihitung matriks korelasi dari dataset yang ‘Raisin’. Untuk menghitung matriks korelasi digunakan fungsi cor(). Keluaran dari kode ini adalah matriks korelasi dari 7 kolom variabel numerik pada dataset yang menunjukan tingkat keeratan hubungan antar pasangan variabel. nilai korelasi yang dihasilkan adalah pada rentang -1 sampai 1, dimana jika mendekati -1 maka variabelnya memiliki hubungan linear negatif, jika mendekati 1 maka variabelnya memiliki hubungan linear positif yang kuat, namun jika nilai mendekati 0 maka menunjukkan hubungan antar variabel yang lemah.
B. Variance-covariance Matrix
# Variance-covariance Matrix
cov_matrix <- cov(Raisin_Dataset)
cov_matrix
## Area MajorAxisLength MinorAxisLength Eccentricity
## Area 1.521165e+09 4.221378e+06 1.767671e+06 1.183972e+03
## MajorAxisLength 4.221378e+06 1.346415e+04 4.222916e+03 6.116279e+00
## MinorAxisLength 1.767671e+06 4.222916e+03 2.498890e+03 -1.249887e-01
## Eccentricity 1.183972e+03 6.116279e+00 -1.249887e-01 8.157415e-03
## ConvexArea 1.583600e+09 4.470629e+06 1.825348e+06 1.282186e+03
## Extent -2.815116e+01 -1.264820e+00 3.884178e-01 -1.743625e-03
## Perimeter 1.026472e+07 3.106672e+04 1.132335e+04 1.107340e+01
## ConvexArea Extent Perimeter
## Area 1.583600e+09 -2.815116e+01 1.026472e+07
## MajorAxisLength 4.470629e+06 -1.264820e+00 3.106672e+04
## MinorAxisLength 1.825348e+06 3.884178e-01 1.132335e+04
## Eccentricity 1.282186e+03 -1.743625e-03 1.107340e+01
## ConvexArea 1.662135e+09 -1.194617e+02 1.090014e+07
## Extent -1.194617e+02 2.858848e-03 -2.538891e+00
## Perimeter 1.090014e+07 -2.538891e+00 7.494690e+04
Pada kode ini akan menghitung matriks varians-kovarians dari dataset ‘Raisin’. Untuk menghitung matriks varians-kovarians ini digunakan fungsi cov(). Fungsi tersebut akan menghasilkan matriks yang menggambarkan tingkat penyebaran data serta hubungan antar variabel numerik, nilai yang dihasilkan oleh fungsi terdiri dari 2 jenis yakni nilai di dalam diagonal dan nilai di luar diagonal. Nilai di dalam diagonal menunjukan varian masing-masing variabel yang menunjukan besaran sebaran data pada variabel tersebut. Sedangkan, nilai di luar diagonal menunjukan kovarians antar pasangan variabel yang menunjukan kecenderungan dua variabel.
C. Eigen Pada analisis untuk mencari Eigen ini saya menghitung eigen dari correlation matrix dan variance-covariance matrix
# eigen decomposition (correlation matrix)
eigen_cor <- eigen(cor_matrix)
# eigen values
eigen_cor$values
## [1] 4.832288611 1.453188439 0.628449468 0.056824512 0.021808269 0.006430191
## [7] 0.001010510
# eigen vectors
eigen_cor$vectors
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] -0.44828422 -0.11609991 -0.005483783 0.1111391 -0.61104765 -0.09983439
## [2,] -0.44323980 0.13658724 0.100547975 -0.4952046 0.08757032 -0.68557712
## [3,] -0.38938118 -0.37492246 -0.236043538 0.6558767 0.38457775 -0.23903320
## [4,] -0.20297098 0.61082321 0.628522057 0.4262986 0.07510412 0.05356014
## [5,] -0.45093833 -0.08761633 -0.036672403 -0.0558117 -0.39241075 0.47120104
## [6,] 0.05636836 -0.66734439 0.731980930 -0.1090526 0.05685884 0.02345199
## [7,] -0.45082374 0.03417227 -0.044300766 -0.3398651 0.55515080 0.48726906
## [,7]
## [1,] 0.62436686
## [2,] -0.22772863
## [3,] -0.12995283
## [4,] -0.02044403
## [5,] -0.63914127
## [6,] 0.00161639
## [7,] 0.36399975
# eigen decomposition (covariance matrix)
eigen_cov <- eigen(cov_matrix)
# eigen values
eigen_cov$values
## [1] 3.176903e+09 6.484070e+06 3.411647e+03 5.871721e+02 4.592383e+01
## [6] 1.781033e-03 1.565458e-03
# eigen vectors
eigen_cov$vectors
## [,1] [,2] [,3] [,4] [,5]
## [1,] -6.911978e-01 7.225900e-01 0.0099167946 2.336904e-03 -0.002339507
## [2,] -1.935429e-03 -6.101735e-03 0.5800095074 -5.162209e-01 0.630129625
## [3,] -7.998219e-04 2.427483e-03 -0.2137523625 6.499835e-01 0.729259089
## [4,] -5.492743e-07 -4.737215e-06 0.0010540138 -1.661067e-03 -0.001299584
## [5,] -7.226472e-01 -6.910123e-01 -0.0159270484 -5.209011e-03 0.001481976
## [6,] 3.330314e-08 9.602308e-06 -0.0003483057 7.835626e-05 0.001134514
## [7,] -4.712872e-03 -1.795989e-02 0.7858407300 5.576756e-01 -0.266659316
## [,6] [,7]
## [1,] 1.174284e-06 6.537297e-06
## [2,] 4.904183e-04 6.364268e-04
## [3,] 8.891598e-04 -2.278570e-03
## [4,] -2.806809e-02 -9.996032e-01
## [5,] -1.815070e-08 -6.392384e-06
## [6,] -9.996054e-01 2.806617e-02
## [7,] -5.255305e-04 2.634392e-04
Pada kode ini fungsi eigen() digunakan untuk melakukan dekomposisi eigen pada matriks yang akan digunakan. Hasil dari fungsi eigen() akan digunakan untuk menghitung eigen values dan eigen vectors. Eigen value menunjukkan seberapa besar variasi data yang dijelaskan oleh setiap komponen utama, di mana nilai yang lebih besar menunjukkan kontribusi yang lebih besar. Sedangkan, eigen vectors menunjukan bobot atau kontribusi masing-masing variabel dalam pembentukan komponen utama. Penggunaan correlation matrix dan variance-covariance matrix akan memberikan keluaran yang berbeda. Jika menggunakan correlation matrix maka dataset yang dimuat nilainya akan distandarisasi dan tidak dipengaruhi oleh satuan, sedangkan variance-covariance matrix tidak melakukan standarisasi pada data yang dimuat sehingga akan bias pada data dengan skala besar.