Disusun untuk memenuhi tugas mata kuliah Analisis Multivariat dengan menggunakan Raisin Dataset yang diperoleh dari UCI Machine Learning Repository. Dataset terdiri dari 8, yang masing-masing dijelaskan sebagai berikut:
Adapun tahapan analisis yang dilakukan antara lain meliputi:
Memuat data dari file Excel
library(readxl)
data <- read_excel("D:/SEMESTER 4/Materi Sofia/AnMul/Tugas Week 1/Raisin_Dataset/Raisin_Dataset/Raisin_Dataset.xlsx")
cat("dimensi dataset:", nrow(data), "baris x", ncol(data), "kolom\n")
## dimensi dataset: 900 baris x 8 kolom
cat("variabel:\n")
## variabel:
print(names(data))
## [1] "Area" "MajorAxisLength" "MinorAxisLength" "Eccentricity"
## [5] "ConvexArea" "Extent" "Perimeter" "Class"
head(data)
## # A tibble: 6 × 8
## Area MajorAxisLength MinorAxisLength Eccentricity ConvexArea Extent Perimeter
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 87524 442. 253. 0.820 90546 0.759 1184.
## 2 75166 407. 243. 0.802 78789 0.684 1122.
## 3 90856 442. 266. 0.798 93717 0.638 1209.
## 4 45928 287. 209. 0.685 47336 0.700 844.
## 5 79408 352. 291. 0.564 81463 0.793 1073.
## 6 49242 318. 200. 0.777 51368 0.658 882.
## # ℹ 1 more variable: Class <chr>
Memastikan hanya kolom numeric saja yang digunakan
data1 <- data[, sapply(data, is.numeric)]
head(data1)
## # A tibble: 6 × 7
## Area MajorAxisLength MinorAxisLength Eccentricity ConvexArea Extent Perimeter
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 87524 442. 253. 0.820 90546 0.759 1184.
## 2 75166 407. 243. 0.802 78789 0.684 1122.
## 3 90856 442. 266. 0.798 93717 0.638 1209.
## 4 45928 287. 209. 0.685 47336 0.700 844.
## 5 79408 352. 291. 0.564 81463 0.793 1073.
## 6 49242 318. 200. 0.777 51368 0.658 882.
Melihat hubungan linear setiap variabel menggunakan correlation matrix
corr_matrix <- cor(data1)
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
10 Korelasi tertinggi antar variabel:
library(tidyr)
library(dplyr)
library(tibble)
corr_1 <- pivot_longer(
rownames_to_column(as.data.frame(corr_matrix), "Var1"),
-Var1,
names_to = "Var2",
values_to = "value"
)
top_corr <- corr_1 %>%
arrange(desc(value)) %>%
head(10)
top_corr
## # A tibble: 10 × 3
## Var1 Var2 value
## <chr> <chr> <dbl>
## 1 Area Area 1
## 2 MajorAxisLength MajorAxisLength 1
## 3 MinorAxisLength MinorAxisLength 1
## 4 Eccentricity Eccentricity 1
## 5 ConvexArea ConvexArea 1
## 6 Extent Extent 1
## 7 Perimeter Perimeter 1
## 8 Area ConvexArea 0.996
## 9 ConvexArea Area 0.996
## 10 MajorAxisLength Perimeter 0.978
10 Korelasi terendah antar variabel:
low_corr <- corr_1 %>%
arrange(value) %>%
head(10)
low_corr
## # A tibble: 10 × 3
## Var1 Var2 value
## <chr> <chr> <dbl>
## 1 Eccentricity Extent -0.361
## 2 Extent Eccentricity -0.361
## 3 MajorAxisLength Extent -0.204
## 4 Extent MajorAxisLength -0.204
## 5 Extent Perimeter -0.173
## 6 Perimeter Extent -0.173
## 7 ConvexArea Extent -0.0548
## 8 Extent ConvexArea -0.0548
## 9 MinorAxisLength Eccentricity -0.0277
## 10 Eccentricity MinorAxisLength -0.0277
library(corrplot)
corrplot(
corr_matrix,
method = "color",
type = "full",
order = "hclust",
addCoef.col = "black",
tl.col = "black",
tl.srt = 45,
number.cex = 0.7
)
varcov_matrix <- cov(data1)
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
Nilai pada diagonal matriks menunjukkan varians masing-masing variabel, sedangkan nilai di luar diagonal menunjukkan kovarians.
eigen_result <- eigen(varcov_matrix)
# eigen values
eigen_result$values
## [1] 3.176903e+09 6.484070e+06 3.411647e+03 5.871721e+02 4.592383e+01
## [6] 1.781033e-03 1.565458e-03
Nilai eigen menunjukkan besarnya variasi data yang dijelaskan oleh masing-masing komponen utama. Eigen value pertama (3.176903e+09) memiliki nilai yang sangat besar dibandingkan yang lain, sehingga sebagian besar keragaman data dijelaskan oleh komponen utama pertama (PC1).
# eigen vectors
eigen_result$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
Vektor eigen menentukan variabel mana yang paling berpengaruh di Komponen utama (pada eigen value menunjukkan komponen utama pada PC1). Pada PC1, nilai koefisien terbesar (secara absolut) terdapat pada Area dan ConvexArea, yang menandakan bahwa komponen ini terutama merepresentasikan ukuran kismis.
Sumber Dataset: CINAR I., KOKLU M. dan TASDEMIR S., (2020), Klasifikasi Biji-bijian Kismis Menggunakan Metode Penglihatan Mesin dan Kecerdasan Buatan. Jurnal Ilmu Teknik Gazi, vol. 6, no. 3, hlm. 200-209, Desember, 2020.