Pengantar

Tugas ini bertujuan untuk memahami konsep dasar Analisis Multivariat. Analisis Multivariat adalah metode statostik yang digunakan untuk menganalisis lebih dari dua variabel untuk mengidentifikasi hubungan, pola, dan struktur data secara menyeluruh.

Tujuan dari Analisis Multivariat untuk Data Reduction, Grouping objek berdasarkan kemiripan, Keterkaitan antar variabel, Prediksi, Membangun dan menguji hipotesis statistik.

Sumber dataset

Dataset yang digunakan dalam analisis ini adalah Dataset Raisin (Kismis) yang diperoleh dari UCI Machine Learning Repository. Dataset ini berasal dari penelitian mengenai klasifikasi varietas kismis Kecimen dan Besni yang dibudidayakan di Turki. Data diperoleh melalui proses pengambilan citra menggunakanm Computer Vision System (CVS). Sebanyak 900 butir raisin digunakan, yang terdiri dari 450 raisin Kecimen dan 450 raisin Besni. Dataset ini memiliki 900 observasi, 7 variabel numerik dan tidak memiliki missing values.

Dataset ini juga digunakan dalam penelitian: Cinar, İ., Koklu, M., & Tasdemir, S. (2020), “Kuru Üzüm Tanelerinin Makine Görüşü ve Yapay Zeka Yöntemleri Kullanılarak Sınıflandırılması”, yang dipublikasikan pada Gazi Journal of Engineering Sciences.

Pada tugas ini dataset digunakan untuk memahami konsep dasar analisis multivariat, khususnya melalui matriks korelasi, kovarians, dan eigen.

a) Correlation Matrix

Konsep Dasar

Correlation Matrix (Matriks korelasi) digunakan untuk mengukur kekuatan dan arah hubungan linear antar variabel. Nilai korelasi berada pada rentang −1 hingga 1. Korelasi merupakan kovarians yang dinormalisasi oleh simpangan baku, sehingga tidak dipengaruhi oleh skala pengukuran variabel.

# load
library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# import dataset
dataset <- read_excel('Raisin_Dataset.xlsx')

# lihat dataset
dataset
## # A tibble: 900 × 8
##     Area MajorAxisLength MinorAxisLength Eccentricity ConvexArea Extent
##    <dbl>           <dbl>           <dbl>        <dbl>      <dbl>  <dbl>
##  1 87524            442.            253.        0.820      90546  0.759
##  2 75166            407.            243.        0.802      78789  0.684
##  3 90856            442.            266.        0.798      93717  0.638
##  4 45928            287.            209.        0.685      47336  0.700
##  5 79408            352.            291.        0.564      81463  0.793
##  6 49242            318.            200.        0.777      51368  0.658
##  7 42492            310.            176.        0.823      43904  0.666
##  8 60952            332.            235.        0.706      62329  0.744
##  9 42256            323.            173.        0.845      44743  0.698
## 10 64380            367.            228.        0.784      66125  0.664
## # ℹ 890 more rows
## # ℹ 2 more variables: Perimeter <dbl>, Class <chr>
str(dataset)
## tibble [900 × 8] (S3: tbl_df/tbl/data.frame)
##  $ Area           : num [1:900] 87524 75166 90856 45928 79408 ...
##  $ MajorAxisLength: num [1:900] 442 407 442 287 352 ...
##  $ MinorAxisLength: num [1:900] 253 243 266 209 291 ...
##  $ Eccentricity   : num [1:900] 0.82 0.802 0.798 0.685 0.564 ...
##  $ ConvexArea     : num [1:900] 90546 78789 93717 47336 81463 ...
##  $ Extent         : num [1:900] 0.759 0.684 0.638 0.7 0.793 ...
##  $ Perimeter      : num [1:900] 1184 1122 1209 844 1073 ...
##  $ Class          : chr [1:900] "Kecimen" "Kecimen" "Kecimen" "Kecimen" ...
# ambil kolom fitur
dataset2 <- dataset[, 1:7]

# a) Correlation Matrix
corr_matrix <- cor(dataset2)
corr_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

Interpretasi

  • Area – ConvexArea memiliki korelasi sangat kuat dan positif dengan nilai r = 0,9959, menunjukkan bahwa kedua variabel hampir merepresentasikan informasi yang sama.
  • Area – Perimeter juga menunjukkan korelasi kuat, yaitu r = 0,9614.
  • MajorAxisLength – Perimeter memiliki korelasi tertinggi antar variabel sumbu, yaitu r = 0,9780, menandakan bahwa panjang sumbu utama sangat berkaitan dengan keliling biji kismis.
  • MinorAxisLength – Area memiliki korelasi kuat dengan nilai r = 0,9066.
  • Variabel ukuran (Area, ConvexArea, Perimeter, MajorAxisLength) saling berkorelasi kuat, mengindikasikan adanya multikolinearitas dalam data.

b) Variance–Covariance Matrix

Konsep Dasar

Kovarians merupakan ukuran ketergantungan antara dua variabel acak dan didefinisikan sebagai: Cov(X,Y)=E(XY)-E(X)E(Y). Varians adalah kovarians suatu variabel dengan dirinya sendiri. Matriks kovarians menyajikan seluruh kovarians antar variabel dalam bentuk matriks, sehingga memberikan gambaran mengenai sebaran dan hubungan data multivariat.

# b) Variance-Covariance Matrix
varcov_matrix <- cov(dataset2)
varcov_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

Interpretasi

  • Varians terbesar terdapat pada:
    • ConvexArea = 1.662135e+09
    • Area = 1.521165e+09
  • Kovarians besar dan positif ditemukan pada:
    • Area – ConvexArea: 1.583600e+09
    • Area – Perimeter: 1.026472e+07

c) Nilai Eigen dan Vektor Eigen

Konsep Dasar

Jika A adalah matriks berukuran n×n, maka vektor tidak nol x disebut vektor eigen dari A jika memenuhi persamaan: Ax=λx. Skalar λ disebut nilai eigen, sedangkan x disebut vektor eigen yang bersesuaian. Nilai eigen menyatakan besarnya variasi yang dijelaskan oleh suatu arah tertentu, sedangkan vektor eigen menunjukkan arah utama variasi data. Secara geometris, operasi ini menyebabkan vektor memanjang atau menyusut dengan faktor λ.

# c) Eigen value dan Eigen vector
eigens <- eigen(varcov_matrix)
eigens$values
## [1] 3.176903e+09 6.484070e+06 3.411647e+03 5.871721e+02 4.592383e+01
## [6] 1.781033e-03 1.565458e-03
eigens$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

Interpretasi

  • Eigen value pertama jauh lebih besar dibandingkan eigen value lainnya (3.176903e+09), sehingga komponen utama pertama menjelaskan sebagian besar variasi data.
  • Pada komponen utama pertama (PC1), bobot terbesar terdapat pada:
    • ConvexArea = -7.226472e-01
    • Area = -6.911978e-01
    • Perimeter = -4.712872e-03
    • Hal ini menunjukkan bahwa PC1 terutama dipengaruhi oleh ukuran biji kismis.
  • Pada komponen utama berikutnya:
    • PC2 dipengaruhi oleh Area (7.225900e-01) dan ConvexArea (-6.910123e-01).
    • PC3 memiliki kontribusi besar dari:
      • Perimeter = 0.7858407300
      • MajorAxisLength = 0.5800095074

Referensi Dataset

CINAR I., KOKLU M. and TASDEMIR S., (2020). Classification of Raisin Grains Using Machine Vision and Artificial Intelligence Methods, Gazi Journal of Engineering Sciences, vol. 6, no. 3, pp. 200-209, December, 2020, DOI: https://doi.org/10.30855/gmbd.2020.03.03