Import Data

data <- read.csv("Wholesale customers data.csv")
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 ...
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

##Correlation matrix

data_num <- data[, 3:8]
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

##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

##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

#Penjelasan output: correlation matrix(Menurut saya, hal yang paling mencolok dari hubungan antar produk ini adalah adanya “aliansi” yang sangat kuat antara kategori Grocery dan Detergents_Paper. Dengan nilai korelasi yang mencapai 0,92, saya melihat bahwa kedua produk ini hampir tidak bisa dipisahkan; jika seorang pelanggan membeli banyak stok kebutuhan sehari-hari, mereka secara otomatis akan membeli produk kertas dan deterjen dalam jumlah yang hampir setara. Selain itu, keterkaitan produk susu (Milk) dengan kedua kategori tadi juga cukup kuat. Dari sini, saya berpendapat bahwa kita sedang melihat profil pelanggan yang kemungkinan besar adalah pengelola supermarket atau toko ritel, di mana pola belanja mereka sangat terstruktur untuk memenuhi kebutuhan rumah tangga konsumen akhir.) Matriks Varian-Kovarian(Jika melihat dari sisi variabilitas datanya, menurut saya kategori produk segar (Fresh) adalah variabel yang paling “liar” atau sulit ditebak. Nilai variannya yang sangat tinggi menunjukkan bahwa rentang belanja antar pelanggan di kategori ini sangat ekstrim—ada yang belanja sangat sedikit, namun ada juga yang jumlahnya luar biasa besar. Hal ini berbeda jauh dengan kategori Delicassen yang menurut saya jauh lebih stabil dan seragam polanya. Selain itu, adanya nilai kovarian negatif antara produk Fresh dengan Grocery memberikan kesan bahwa pelanggan kita cenderung memiliki spesialisasi. Menurut pengamatan saya, pelanggan yang fokus pada bahan makanan segar biasanya adalah bisnis kuliner seperti restoran, yang memang tidak terlalu membutuhkan stok barang kemasan atau deterjen dalam jumlah besar seperti halnya toko ritel) eigen value eigen vector(Menurut saya, bagian ini adalah kunci untuk memahami seberapa banyak informasi yang bisa kita ringkas. Dari hasil analisis, Eigen Value pada komponen pertama (PC1) adalah yang paling besar, yang mampu menjelaskan sekitar 44% variasi data. Jika kita gabungkan dengan komponen kedua (PC2), total informasi yang tertangkap menjadi sekitar 72,5%.Menurut pendapat saya, ini adalah angka yang sangat bagus. Artinya, meskipun kita memiliki 6 kategori produk yang berbeda, kita sebenarnya hanya butuh 2 “cerita utama” (PC1 dan PC2) untuk memahami hampir tiga perempat dari seluruh perilaku belanja pelanggan kita. Sisanya hanyalah detail kecil atau keunikan individu yang tidak terlalu mempengaruhi pola besar.) (Jika kita melihat arah gerak datanya melalui Eigen Vector, menurut saya PC1 sangat didominasi oleh kelompok Milk, Grocery, dan Detergents_Paper. Ini memperkuat temuan kita sebelumnya bahwa ketiga produk ini adalah satu paket. Sementara itu, PC2 menurut saya lebih banyak dipengaruhi oleh produk Fresh dan Frozen.Saya melihat ada kontras yang menarik di sini: PC1 mewakili “Dimensi Ritel” (kebutuhan rumah tangga), sedangkan PC2 mewakili “Dimensi Makanan Segar/Restoran”. Menurut saya, Eigen Vector ini dengan jelas memetakan bahwa jika seorang pelanggan menonjol di PC1, mereka hampir pasti adalah toko ritel, sedangkan jika mereka menonjol di PC2, mereka adalah bisnis kuliner)