library(readr)
## Warning: package 'readr' was built under R version 4.4.3
raisin <- read_delim(
"raisin.csv",
delim = ";"
)
## Rows: 900 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (3): Eccentricity, Extent, Class
## dbl (2): Area, ConvexArea
## num (3): MajorAxisLength, MinorAxisLength, Perimeter
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Cek struktur data
str(raisin)
## spc_tbl_ [900 × 8] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ Area : num [1:900] 87524 75166 90856 45928 79408 ...
## $ MajorAxisLength: num [1:900] 4.42e+09 4.07e+08 4.42e+09 2.87e+09 3.52e+09 ...
## $ MinorAxisLength: num [1:900] 2.53e+08 2.43e+09 2.66e+09 2.09e+09 2.91e+09 ...
## $ Eccentricity : chr [1:900] "0,819738392" "0,801805234" "0,798353619" "0,684989217" ...
## $ ConvexArea : num [1:900] 90546 78789 93717 47336 81463 ...
## $ Extent : chr [1:900] "0,758650579" "0,68412957" "0,637612812" "0,699599385" ...
## $ Perimeter : num [1:900] 118404 1121786 1208575 844162 1073251 ...
## $ Class : chr [1:900] "Kecimen" "Kecimen" "Kecimen" "Kecimen" ...
## - attr(*, "spec")=
## .. cols(
## .. Area = col_double(),
## .. MajorAxisLength = col_number(),
## .. MinorAxisLength = col_number(),
## .. Eccentricity = col_character(),
## .. ConvexArea = col_double(),
## .. Extent = col_character(),
## .. Perimeter = col_number(),
## .. Class = col_character()
## .. )
## - attr(*, "problems")=<externalptr>
Penjelasan: Dari output str(), dataset Raisin terdiri dari 900 observasi dan 8 variabel. Variabel bertipe numerik, kecuali satu variabel yaitu Class merupakan variabel kategorik.
# Mengambil hanya variabel numerik
data_numerik <- raisin[, sapply(raisin, is.numeric)]
Penjelasan: Pada tahap ini melakukan pemilihan variabel numerik saja karena analisis korelasi, kovarians, dan eigen hanya dapat diterapkan pada data numerik.
# Correlation Matrix
correlation_matrix <- cor(data_numerik)
correlation_matrix
## Area MajorAxisLength MinorAxisLength ConvexArea Perimeter
## Area 1.0000000 0.6129967 0.4599893 0.9959197 0.5585666
## MajorAxisLength 0.6129967 1.0000000 0.2224467 0.6195309 0.3832257
## MinorAxisLength 0.4599893 0.2224467 1.0000000 0.4535930 0.2244359
## ConvexArea 0.9959197 0.6195309 0.4535930 1.0000000 0.5643685
## Perimeter 0.5585666 0.3832257 0.2244359 0.5643685 1.0000000
Penjelasan: Dari output matriks korelasi dapat dilihat bahwa beberapa variabel numerik memiliki hubungan yang cukup kuat, terutama antara Area, ConvexArea, dan Perimeter.
# Variance-Covariance Matrix
covariance_matrix <- cov(data_numerik)
covariance_matrix
## Area MajorAxisLength MinorAxisLength ConvexArea
## Area 1.521165e+09 3.881818e+13 1.545500e+13 1.583600e+09
## MajorAxisLength 3.881818e+13 2.636196e+18 3.111345e+17 4.100955e+13
## MinorAxisLength 1.545500e+13 3.111345e+17 7.421071e+17 1.593062e+13
## ConvexArea 1.583600e+09 4.100955e+13 1.593062e+13 1.662135e+09
## Perimeter 8.928608e+09 2.550141e+14 7.924035e+13 9.430105e+09
## Perimeter
## Area 8.928608e+09
## MajorAxisLength 2.550141e+14
## MinorAxisLength 7.924035e+13
## ConvexArea 9.430105e+09
## Perimeter 1.679737e+11
Penjelasan: Matriks varians-kovarians menunjukkan besarnya penyebaran data dan hubungan antar variabel numerik. Nilai yang besar menunjukkan variasi data yang cukup besar.
# Eigen value dan Eigen vector
eigen_result <- eigen(covariance_matrix)
# Eigen value
eigen_result$values
## [1] 2.685996e+18 6.923076e+17 1.401806e+11 1.325868e+09 6.363562e+06
# Eigen vector
eigen_result$vectors
## [,1] [,2] [,3] [,4] [,5]
## [1,] -1.517981e-05 -1.318157e-05 -3.184073e-02 6.928805e-01 7.203491e-01
## [2,] -9.874317e-01 1.580461e-01 8.929182e-05 -1.468984e-05 1.606032e-07
## [3,] -1.580461e-01 -9.874317e-01 7.061491e-05 -1.875858e-05 -2.347821e-07
## [4,] -1.601339e-05 -1.335967e-05 -3.381205e-02 7.195553e-01 -6.936115e-01
## [5,] -9.841141e-05 -5.480289e-05 -9.989209e-01 -4.644158e-02 5.165489e-04
Penjelasan: Eigen value menunjukkan besarnya variasi data yang dijelaskan oleh masing-masing komponen utama, sedangkan eigen vector menunjukkan arah pembentukan komponen tersebut dari variabel-variabel yang ada.