##Import Data
data <- read.csv("Wholesale customers data.csv")
head(data)
## Channel Region Fresh Milk Grocery Frozen Detergents_Paper Delicassen
## 1 2 3 12669 9656 7561 214 2674 1338
## 2 2 3 7057 9810 9568 1762 3293 1776
## 3 2 3 6353 8808 7684 2405 3516 7844
## 4 1 3 13265 1196 4221 6404 507 1788
## 5 2 3 22615 5410 7198 3915 1777 5185
## 6 2 3 9413 8259 5126 666 1795 1451
str(data)
## 'data.frame': 440 obs. of 8 variables:
## $ Channel : int 2 2 2 1 2 2 2 2 1 2 ...
## $ Region : int 3 3 3 3 3 3 3 3 3 3 ...
## $ Fresh : int 12669 7057 6353 13265 22615 9413 12126 7579 5963 6006 ...
## $ Milk : int 9656 9810 8808 1196 5410 8259 3199 4956 3648 11093 ...
## $ Grocery : int 7561 9568 7684 4221 7198 5126 6975 9426 6192 18881 ...
## $ Frozen : int 214 1762 2405 6404 3915 666 480 1669 425 1159 ...
## $ Detergents_Paper: int 2674 3293 3516 507 1777 1795 3140 3321 1716 7425 ...
## $ Delicassen : int 1338 1776 7844 1788 5185 1451 545 2566 750 2098 ...
##Data Numerik
data_num <- data[, c(
"Fresh",
"Milk",
"Grocery",
"Frozen",
"Detergents_Paper",
"Delicassen"
)]
head(data_num)
## Fresh Milk Grocery Frozen Detergents_Paper Delicassen
## 1 12669 9656 7561 214 2674 1338
## 2 7057 9810 9568 1762 3293 1776
## 3 6353 8808 7684 2405 3516 7844
## 4 13265 1196 4221 6404 507 1788
## 5 22615 5410 7198 3915 1777 5185
## 6 9413 8259 5126 666 1795 1451
##(a) Correlation Matrix
cor_matrix <- cor(data_num)
cor_matrix
## Fresh Milk Grocery Frozen Detergents_Paper
## Fresh 1.00000000 0.1005098 -0.01185387 0.34588146 -0.1019529
## Milk 0.10050977 1.0000000 0.72833512 0.12399376 0.6618157
## Grocery -0.01185387 0.7283351 1.00000000 -0.04019274 0.9246407
## Frozen 0.34588146 0.1239938 -0.04019274 1.00000000 -0.1315249
## Detergents_Paper -0.10195294 0.6618157 0.92464069 -0.13152491 1.0000000
## Delicassen 0.24468997 0.4063683 0.20549651 0.39094747 0.0692913
## Delicassen
## Fresh 0.2446900
## Milk 0.4063683
## Grocery 0.2054965
## Frozen 0.3909475
## Detergents_Paper 0.0692913
## Delicassen 1.0000000
##(b) Variance-Covariance Matrix
cov_matrix <- cov(data_num)
cov_matrix
## Fresh Milk Grocery Frozen Detergents_Paper
## Fresh 159954927 9381789 -1424713 21236655 -6147825.7
## Milk 9381789 54469967 51083186 4442612 23288343.5
## Grocery -1424713 51083186 90310104 -1854282 41895189.7
## Frozen 21236655 4442612 -1854282 23567853 -3044324.9
## Detergents_Paper -6147826 23288343 41895190 -3044325 22732436.0
## Delicassen 8727310 8457925 5507291 5352342 931680.7
## Delicassen
## Fresh 8727310.0
## Milk 8457924.8
## Grocery 5507291.3
## Frozen 5352341.8
## Detergents_Paper 931680.7
## Delicassen 7952997.5
#(c) Eigen Value dan Eigen Vector
eigen_result <- eigen(cov_matrix)
eigen_result$values
## [1] 164995904 145452098 25139978 15803901 5392764 2203641
eigen_result$vectors
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.976536846 0.11061386 0.1785573 0.04187648 -0.0159860 -0.01576316
## [2,] 0.121184071 -0.51580216 -0.5098868 0.64564047 -0.2032357 0.03349187
## [3,] 0.061540393 -0.76460638 0.2757809 -0.37546049 0.1602915 0.41093894
## [4,] 0.152364619 0.01872345 -0.7142004 -0.64629232 -0.2201861 -0.01328898
## [5,] -0.007054173 -0.36535076 0.2044099 -0.14938013 -0.2079302 -0.87128428
## [6,] 0.068104710 -0.05707921 -0.2832175 0.02039579 0.9170766 -0.26541687
Dari matriks korelasi terlihat bahwa beberapa variabel, terutama Grocery, Milk, dan Detergents_Paper, punya hubungan yang cukup kuat. Artinya, kalau pembelian salah satu naik, biasanya yang lain juga ikut naik. Sementara itu, variabel seperti Fresh dan Frozen hubungannya tidak terlalu kuat dengan variabel lainnya.
Matriks varians–kovarians menunjukkan seberapa besar variasi data pada tiap variabel. Variabel dengan jumlah pembelian besar memiliki nilai varians yang lebih tinggi. Kovarians yang bernilai positif menunjukkan bahwa dua variabel cenderung meningkat bersama-sama.
Hasil eigen value dan eigen vector menunjukkan bahwa sebagian besar variasi data bisa dijelaskan oleh beberapa komponen utama saja. Komponen dengan eigen value terbesar adalah yang paling berpengaruh, sehingga data sebenarnya bisa diringkas tanpa kehilangan banyak informasi.