Latar Belakang

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.

Tujuan Analisis

Penelitian ini bertujuan untuk:

  1. Menganalisis pengaruh:

    • Biaya iklan

    • Jumlah pengunjung

    • Jumlah klik

    terhadap penjualan produk

  2. Mengatasi masalah multikolinearitas antar variabel independen

  3. Membangun model prediksi penjualan yang lebih stabil dan akurat menggunakan LASSO Regression

Load Package

library(glmnet)
## Loading required package: Matrix
## Loaded glmnet 4.1-10
library(car)
## Loading required package: carData
library(ggplot2)

Data

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

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

Cek Multikolinearitas

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.

Siapkan Data Untuk LASSO

X <- as.matrix(data[, c("iklan", "pengunjung", "klik")])
Y <- data$penjualan

Cari Best Lambda

set.seed(123)
cv <- cv.glmnet(X,Y,alpha=1)

best_lambda <- cv$lambda.min
best_lambda
## [1] 1.148962

Model LASSO

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

Persamaan Model

\[ \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

Prediksi

y_pred_LASSO <- predict(LASSO_model, s = best_lambda, newx = X)

Evaluasi Model

1. RMSE

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.

2. R Square

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

Visualisasi

plot(Y, y_pred_LASSO,col = "blue",
     xlab = "Aktual",ylab = "Prediksi")
abline(0, 1, col = "red", lwd = 2)