Dalam era digital saat ini, strategi pemasaran berbasis data menjadi faktor penting dalam meningkatkan penjualan produk. Perusahaan tidak hanya mengandalkan satu faktor, tetapi kombinasi berbagai indikator seperti biaya iklan, jumlah pengunjung, dan interaksi pengguna (klik).
Namun, dalam praktiknya, variabel-variabel tersebut seringkali saling berkorelasi. Misalnya, semakin banyak pengunjung yang datang ke suatu platform, maka jumlah klik yang dihasilkan juga cenderung meningkat. Hal ini dapat menimbulkan masalah multikolinearitas, yang berpotensi mengganggu kestabilan model regresi.
Penelitian ini bertujuan untuk:
Menganalisis pengaruh:
Biaya iklan
Jumlah pengunjung
Jumlah klik
terhadap penjualan produk
Mengatasi masalah multikolinearitas antar variabel independen
Membangun model prediksi penjualan yang lebih stabil dan akurat menggunakan LASSO Regression
library(glmnet)
## Loading required package: Matrix
## Loaded glmnet 4.1-10
library(car)
## Loading required package: carData
library(ggplot2)
data <- read.csv("D:/Youtube/Regresi/Ridge Regression/ridge.csv")
head(data)
## X iklan pengunjung klik penjualan
## 1 1 35.88198 683.1041 413.3919 876.3624
## 2 2 80.94746 387.8386 204.2789 756.0223
## 3 3 46.80792 376.9480 211.4521 719.6704
## 4 4 89.47157 297.7909 170.9918 686.7099
## 5 5 94.64206 432.5400 314.8398 937.7575
## 6 6 14.10008 985.7973 571.9199 1201.9530
X1 <- data$iklan
X2 <- data$pengunjung
X3 <- data$klik
Y <- data$penjualan
model_ols <- lm(Y~X1+X2+X3)
summary(model_ols)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -111.342 -32.421 0.594 36.690 105.660
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 90.58510 16.17207 5.601 1.45e-07 ***
## X1 3.84699 0.18131 21.217 < 2e-16 ***
## X2 0.69779 0.09757 7.152 8.24e-11 ***
## X3 0.53773 0.15797 3.404 0.000912 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 50.75 on 116 degrees of freedom
## Multiple R-squared: 0.9622, Adjusted R-squared: 0.9612
## F-statistic: 984.5 on 3 and 116 DF, p-value: < 2.2e-16
vif(model_ols)
## X1 X2 X3
## 1.009557 24.225466 24.180009
Diperoleh terdapat nilai VIF > 10 pada X2 dan X3 sehingga terjadi masalah multikolinearitas, maka kita dapat menggunakan LASSO regression.
X <- as.matrix(data[, c("iklan", "pengunjung", "klik")])
Y <- data$penjualan
set.seed(123)
cv <- cv.glmnet(X,Y,alpha=1)
best_lambda <- cv$lambda.min
best_lambda
## [1] 1.148962
LASSO_model <- glmnet(X, Y, alpha = 1, lambda = best_lambda)
coef(LASSO_model)
## 4 x 1 sparse Matrix of class "dgCMatrix"
## s0
## (Intercept) 95.9635640
## iklan 3.7993049
## pengunjung 0.7011051
## klik 0.5239131
\[ \hat Y = 95.9635+3.7993Iklan+0.7011Pengunjung+0.5239Klik \]
Iklan : Setiap kenaikan 1 unit iklan meningkatkan penjualan sekitar 3.79 unit
Pengunjung : tiap tambahan 1 pengunjung meningkatkan penjualan sekitar 0.7011 unit
Klik : Setiap tambahan 1 klik meningkatkan penjualan sekitar 0.5239unit
y_pred_LASSO <- predict(LASSO_model, s = best_lambda, newx = X)
RMSE <- sqrt(mean((Y - y_pred_LASSO)^2))
RMSE
## [1] 49.92604
Rata-rata kesalahan prediksi model LASSO terhadap nilai aktual penjualan adalah sekitar 49.92 unit.
# Mean Y
y_mean <- mean(Y)
# SSE (error)
SSE <- sum((Y - y_pred_LASSO)^2)
# SST (total)
SST <- sum((Y - y_mean)^2)
# R-square
R2_LASSO <- 1 - (SSE / SST)
R2_LASSO
## [1] 0.9621649
Model LASSO Regression mampu menjelaskan sekitar 96.22% variasi penjualan.
plot(Y, y_pred_LASSO,col = "blue",
xlab = "Aktual",ylab = "Prediksi")
abline(0, 1, col = "red", lwd = 2)