Pada era informasi yang semakin berkembang pesat, data penjualan suatu produk merupakan salah satu sumber informasi yang penting dan berharga bagi suatu bisnis. Data ini mencakup berbagai variabel yang mencerminkan jumlah penjualan suatu produk, harga produk, iklan radio, biaya promosi produk di toko, diskon, pengeluaran iklan televisi, tingkat kehabisan stok produk, pengeluaran iklan secara online.
Principal Component Analysisis (PCA) adalah salah satu teknik statistik yang berguna untuk mereduksi dimensi data, mengidentifikasi pola tersembunyi, dan mengungkap hubungan antara variabel-variabel tersebut.
Dalam penelitian ini, PCA diterapkan untuk menguji faktor yang sangat memengaruhi data penjualan suatu produk. PCA akan mengidentifikasi pola dalam kumpulan data, menemukan persamaan dan perbedaannya diantara masing-masing faktor. Hal tersebut dikarenakan PCA berfungsi sebagai model yang kuat untuk menganalisis data.
PCA merupakan kombinasi linier dari variabel awal yang secara geometris kombinasi linier ini merupakan sistem koordinat baru yang diperoleh dari rotasi sistem semula. Metode PCA sangat berguna jika data yang ada memiliki jumlah variabel yang besar dan memiliki korelasi antar variabelnya. Perhitungan pada PCA didasarkan pada perhitungan nilai eigen dan vektor eigen yang menyatakan penyebaran data dari suatu dtaaset. Dengan menggunakan PCA, variabel yang tadinya sebanyak n variabel akan diseleksi menjadi k variabel baru yang disebut principal component, dengan jumlah k lebih sedikit dari n. Dengan hanya menggunakan k principal component akan menghasilkan nilai yang sama dengan menggunakan n variabel. Variabel hasil dari seleksi disebut principal component.
PCA digunakan untuk menjelaskan struktur matriks varians-kovarians dari suatu set variabel melalui kombinasi linier dari variabel-variabel tersebut. Secara umum, Principal Component (PC) dapat berguna untuk seleksi fitur dan interpretasi variabel-variabel.
Menurut (Jolliffe, 2002), Prosedur pengerjaan Principal Component Analysis bertujuan untuk menyederhanakan dan menghilangkan faktor atau indikator skrining yang kurang dominan dan kurang relevan tanpa mengurangi maksud dan tujuan dari data asli dari variabel acak x (matriks berukuran n x n, dimana baris-baris yang berisi observasi sebanyak n dari variabel acak x) adalah sebagai berikut:
Menghitung matriks varians kovarian dari data observasi. Varians dihitung untuk menemukan penyebaran data dalam dataset untuk menemukan penyimpangan dalam set data sampel. Matriks Kovarian adalah matriks yang nilai-nilai kovarian pada tiap kolom-nya diperoleh dari sampel. Misalkan x dan y adalah variabel acak. (Jolliffe, 2002) \[ Var(x)=\sigma^2=\frac{1}n\sum(Z_{ij}-\mu_{j})^2 \] \[ Cov(x,y)=\frac{1}{n-1}\sum(x_{ij}-\mu_{xj})(y_{ij}-\mu_{yj}) \]
Mencari eigenvalues dan eigenvector dari matriks kovarian yang telah diperoleh dengan menggunakan persamaan berikut : \[ Det(A-\lambda I)=0 \] dimana :
A = matriks n x n
λ= nilai eigenvalue
I = matriks identitas
Data yang digunakan yaitu data yang bersumber dari kaggle.com mengenai faktor-faktor yang memengaruhi penjualan suatu produk. Data mencakup beberapa variabel yaitu Sale (X1), InStrSpending (X2), Discount (X3), TVSpending (X4), StockRate (X5), Price (X6), Radio (X7), OnlineAdsSpending (X8)
> # Library
> library(knitr)
> library(rmarkdown)
> library(prettydoc)
> library(readxl)
> library(corrplot)
Error in library(corrplot): there is no package called 'corrplot'
> library(factoextra)
Error in library(factoextra): there is no package called 'factoextra'
> data_sales <- read_excel("D:/Prak Anmul 1/Market Data.xlsx")
Error: `path` does not exist: 'D:/Prak Anmul 1/Market Data.xlsx'
> View(data_sales)
Error in eval(expr, envir, enclos): object 'data_sales' not found
> head(data_sales)
Error in eval(expr, envir, enclos): object 'data_sales' not found
> summary(data_sales)
Error in eval(expr, envir, enclos): object 'data_sales' not found
> korelasi <- cor(data_sales)
Error in eval(expr, envir, enclos): object 'data_sales' not found
> corrplot(korelasi, method = "number")
Error in corrplot(korelasi, method = "number"): could not find function "corrplot"
> sc <- scale(data_sales)
Error in eval(expr, envir, enclos): object 'data_sales' not found
> sc
Error in eval(expr, envir, enclos): object 'sc' not found
>
> s <- cov(sc)
Error in eval(expr, envir, enclos): object 'sc' not found
> s_eigen <- eigen(s)
Error in eval(expr, envir, enclos): object 's' not found
> s_eigen
Error in eval(expr, envir, enclos): object 's_eigen' not found
> plot(s_eigen$values, xlab="Eigenvalue Number",
+ ylab="Eigenvalue Size", main="Scree Plot")
Error in eval(expr, envir, enclos): object 's_eigen' not found
> lines(s_eigen$values)
Error in eval(expr, envir, enclos): object 's_eigen' not found
> for (eg in s_eigen$values)
+ {
+ print(eg/sum(s_eigen$values))
+ }
Error in eval(expr, envir, enclos): object 's_eigen' not found
> s_eigen$vectors[,1:4]
Error in eval(expr, envir, enclos): object 's_eigen' not found
> kor_eigen = eigen(korelasi)
Error in eval(expr, envir, enclos): object 'korelasi' not found
> kor_eigen
Error in eval(expr, envir, enclos): object 'kor_eigen' not found
> plot(kor_eigen$values, xlab="Eigenvalue Number",
+ ylab="Eigenvalue Size", main="Scree Plot")
Error in eval(expr, envir, enclos): object 'kor_eigen' not found
> lines(kor_eigen$values)
Error in eval(expr, envir, enclos): object 'kor_eigen' not found
> for (cor in kor_eigen$values)
+ {
+ print(cor/sum(kor_eigen$values))
+ }
Error in eval(expr, envir, enclos): object 'kor_eigen' not found
> kor_eigen$vectors[,1:4]
Error in eval(expr, envir, enclos): object 'kor_eigen' not found
> PCA <- prcomp(x=data_sales, scale=T, center=T)
Error in eval(expr, envir, enclos): object 'data_sales' not found
> PCA
Error in eval(expr, envir, enclos): object 'PCA' not found
> print(PCA$rotation[,1:4],digits=4)
Error in eval(expr, envir, enclos): object 'PCA' not found
> summary(PCA)
Error in eval(expr, envir, enclos): object 'PCA' not found
> fviz_pca_var(PCA, col.var = "contrib", gradient.cols=c("#00AFBB","#E7B800","#FC4E07"),
+ axes = c(1,2), repel=T)
Error in fviz_pca_var(PCA, col.var = "contrib", gradient.cols = c("#00AFBB", : could not find function "fviz_pca_var"
> fviz_pca_ind(PCA, title="Provinces - PCA", axes = c(1,2))
Error in fviz_pca_ind(PCA, title = "Provinces - PCA", axes = c(1, 2)): could not find function "fviz_pca_ind"
> fviz_pca_biplot(PCA, axes = c(1,2), repel = TRUE)
Error in fviz_pca_biplot(PCA, axes = c(1, 2), repel = TRUE): could not find function "fviz_pca_biplot"
> summary(data_sales)
Error in eval(expr, envir, enclos): object 'data_sales' not found
Pada output di atas, didapatkan hasil dari mean, median, nilai minimum, dan juga nilai maksimum dari masing-masing variabel
> corrplot(korelasi, method = "number")
Error in corrplot(korelasi, method = "number"): could not find function "corrplot"
Dari hasil output yang telah disajikan, dapat diketahui nilai korelasi antar variabel dalam dataset yang digunakan. Hubungan antar variabel ada yang memiliki hubungan positif maupun negatif. Korelasi antar variabel dinilai tidak terlalu kuat atau lemah dikarenakan nilai korelasi yang didapatkan kurang dari 0,5
> sc
Error in eval(expr, envir, enclos): object 'sc' not found
> s_eigen
Error in eval(expr, envir, enclos): object 's_eigen' not found
> plot(s_eigen$values, xlab="Eigenvalue Number",
+ ylab="Eigenvalue Size", main="Scree Plot")
Error in eval(expr, envir, enclos): object 's_eigen' not found
> lines(s_eigen$values)
Error in eval(expr, envir, enclos): object 's_eigen' not found
Berdasarkan output di atas, dapat diketahui bahwa dalam dataset tersebut jumlah komponen utama yang dipilih sebanyak 4 komponen utama. Hal ini dapat dilihat dari garis kurva yang mulai melandai pada komponen ke 4.
> for (eg in s_eigen$values)
+ {
+ print(eg/sum(s_eigen$values))
+ }
Error in eval(expr, envir, enclos): object 's_eigen' not found
Berdasarkan nilai kumulatif eigen dapat diketahui bahwa sebanyak 4 komponen utama sudah mencapai lebih dari 75% keragaman dalam data.
> print(PCA$rotation[,1:4],digits=4)
Error in eval(expr, envir, enclos): object 'PCA' not found
> summary(PCA)
Error in eval(expr, envir, enclos): object 'PCA' not found
Berdasarkan output di atas dapat dituliskan dalam bentuk persamaan Principal Component sebagai berikut : \[ PC_{1}=0.21284X_{1}+0,62483X_2-0,05184X_3+0,17101X_4+0,59629X_5+0,37615X_6-0,0178X_7+0,18702X_8 \]
\[ PC_2=0.660678X_1+0,157823X_2+0,142637X_3+0,41795X_4-0,116951X_5-0,434644X_6-0,007059X_7-0,375402X_8 \]
\[ PC_3=0,07459X_1-0,20682X_2-0,59442X_3+0,29176X_4+0,07901X_5-0,14407X_6+0,64144X_7+0,27343X_8 \]
\[ PC_4=0,24594X_1+0,06572X_2+0,26556X_3-0,5055X_4+0,17157X_5-0,52104X_6+0,09747X_7+0,54656X_8 \]
Berdasarkan hasil analisis yang telah dilakukan, didapatkan 4 komponen utama yang terbentuk. Persamaan yang terbentuk adalah \[ PC_{1}=0.21284X_{1}+0,62483X_2-0,05184X_3+0,17101X_4+0,59629X_5+0,37615X_6-0,0178X_7+0,18702X_8 \]
\[ PC_2=0.660678X_1+0,157823X_2+0,142637X_3+0,41795X_4-0,116951X_5-0,434644X_6-0,007059X_7-0,375402X_8 \]
\[ PC_3=0,07459X_1-0,20682X_2-0,59442X_3+0,29176X_4+0,07901X_5-0,14407X_6+0,64144X_7+0,27343X_8 \]
\[ PC_4=0,24594X_1+0,06572X_2+0,26556X_3-0,5055X_4+0,17157X_5-0,52104X_6+0,09747X_7+0,54656X_8 \] Dari persamaan dan plot yang terbentuk, dapat di interpretasikan bahwa : - Komponen utama 1 dapat mencakup variabel InStrSpending, TVSpending, Sale - Komponen utama 2 dapat mencakup variabel Price, Stockrate, OnlineAdsSpending - Komponen utama 3 dapat mencakup Radio - Komponen utama 4 dapat mencakup Discount
Jolliffe, I.T. 2002. Principal Component Analysis. Springer-Verlag: New York.
Timm, N. H. (2002). Applied Multivariate Analysis. New York: Springer New York.
Johnson, R. A., & Wichern, D. W. 2002. Applied Multivariate Statistical Analysis.