1 Pendahuluan

Perkembangan teknologi informasi dan internet mendorong pertumbuhan pesat e-commerce sebagai bagian penting ekonomi digital, yang memungkinkan transaksi lebih mudah dan efisien tanpa batas geografis. Berdasarkan Worldpay Global Payments Report, nilai transaksi pembayaran digital global meningkat signifikan dari USD 1,7 triliun pada tahun 2014 menjadi USD 18,7 triliun pada tahun 2024.

Namun, tidak semua kunjungan pada situs e-commerce menghasilkan pembelian. Berdasarkan Online Shoppers Purchasing Intention Dataset:

15,5% sesi kunjungan menghasilkan transaksi pembelian.

84,5% sesi kunjungan tidak menghasilkan transaksi pembelian.

Kondisi ini menunjukkan adanya kesenjangan antara jumlah pengunjung dan konversi pembelian, sehingga analisis purchasing intention menjadi penting untuk memahami perilaku konsumen.

Berbagai penelitian telah menggunakan metode statistik dan machine learning untuk memprediksi keputusan pembelian konsumen. Namun, sebagian besar penelitian berfokus pada performa model dan akurasi prediksi, sedangkan interpretasi pengaruh variabel terhadap keputusan pembelian masih relatif terbatas.

Salah satu metode yang dapat digunakan untuk memenuhi kebutuhan interpretasi tersebut adalah regresi logistik biner. Metode ini sesuai untuk memodelkan keputusan pembelian dan memungkinkan interpretasi pengaruh variabel melalui nilai odds ratio.

Penelitian ini bertujuan mengidentifikasi faktor-faktor yang memengaruhi purchasing intention, membangun model regresi logistik biner, mengevaluasi kinerja model menggunakan confusion matrix, accuracy, dan AUC, serta menginterpretasikan pengaruh variabel menggunakan odds ratio.

2 Metode Penelitian

2.1 Data & Variabel

DATASET
Online Shoppers Purchasing Intention Dataset
UCI Machine Learning Repository
1.000
Observasi
4
Prediktor
Binary
Response

Variabel yang digunakan dalam penelitian ini ditampilkan pada tabel berikut:

Variabel Tipe Deskripsi
Revenue Respon (Biner) Keputusan pembelian (TRUE = membeli, FALSE = tidak)
PageValues Prediktor (Numerik) Nilai halaman berdasarkan kontribusinya terhadap transaksi
ExitRates Prediktor (Numerik) Persentase sesi yang keluar dari halaman tertentu
ProductRelated_Duration Prediktor (Numerik) Durasi kunjungan pada halaman produk (detik)
VisitorType Prediktor (Kategorik) Tipe pengunjung (Returning, New)

2.2 Tahapan Analisis

📌 Metode Utama

Penelitian ini menggunakan regresi logistik biner untuk memodelkan hubungan antara variabel prediktor dan keputusan pembelian (Revenue). Metode ini dipilih karena variabel respon bersifat biner, yaitu membeli (TRUE) dan tidak membeli (FALSE).

1
Pengumpulan Data
2
Preprocessing
3
Analisis Deskriptif
4
Uji Multikolinearitas
5
Regresi Logistik Biner
6
Uji Signifikansi
7
Evaluasi Model
8
Kesimpulan

3 Hasil Analisis

## LOAD PACKAGES

library(car)
library(ResourceSelection)
library(rcompanion)
library(pROC)
library(readxl)
library(ggplot2)
library(dplyr)
library(tidyr)
library(knitr)
library(kableExtra)
library(scales)
data2 <- read_excel("C:/Users/ASUS/Downloads/data adk projek.xlsx")
data2 <- data2[1:1000, ]
# PREPROCESSING 

data2$Revenue                  <- as.factor(data2$Revenue)
data2$VisitorType              <- as.factor(data2$VisitorType)
data2$ProductRelated           <- 
data2$ExitRates                <- as.numeric(data2$ExitRates)
data2$PageValues               <- as.numeric(data2$PageValues)
data2$ProductRelated_Duration  <- as.numeric(data2$ProductRelated_Duration)

str(data2)
## tibble [1,000 × 8] (S3: tbl_df/tbl/data.frame)
##  $ ProductRelated         : num [1:1000] 0.2 0.1 0.2 0.14 0.05 ...
##  $ BounceRates            : num [1:1000] 0.2 0 0.2 0.05 0.02 ...
##  $ ExitRates              : num [1:1000] 0.2 0.1 0.2 0.14 0.05 ...
##  $ PageValues             : num [1:1000] 0 0 0 0 0 0 0 0 0 0 ...
##  $ VisitorType            : Factor w/ 2 levels "New_Visitor",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Weekend                : logi [1:1000] FALSE FALSE FALSE FALSE TRUE FALSE ...
##  $ Revenue                : Factor w/ 2 levels "FALSE","TRUE": 1 1 1 1 1 1 1 1 1 1 ...
##  $ ProductRelated_Duration: num [1:1000] 0 64 0 2.67 627.5 ...

3.1 Analisis Deskriptif

Analisis deskriptif dilakukan untuk memberikan gambaran awal mengenai karakteristik data serta hubungan antara variabel penjelas dengan variabel respon.

df_rev <- as.data.frame(table(data2$Revenue)) %>%
  rename(Revenue = Var1, Frekuensi = Freq) %>%
  mutate(Proporsi = Frekuensi / sum(Frekuensi),
         Label    = paste0(Frekuensi, "\n(", round(Proporsi * 100, 1), "%)"))

ggplot(df_rev, aes(x = Revenue, y = Frekuensi, fill = Revenue)) +
  geom_col(width = 0.55, show.legend = FALSE) +
  geom_text(aes(label = Label), vjust = -0.4, size = 4,
            color = pal_primary, fontface = "bold") +
  scale_fill_manual(values = c("FALSE" = pal_muted, "TRUE" = pal_accent2)) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15))) +
  labs(title    = "Distribusi Variabel Revenue",
       subtitle = "Proporsi sesi kunjungan yang berujung pembelian vs tidak",
       x = "Revenue", y = "Frekuensi") +
  theme_laporan()
Gambar 1. Distribusi Frekuensi Variabel Revenue

Gambar 1. Distribusi Frekuensi Variabel Revenue

⚠️ Class Imbalance: Dari 1.000 observasi, sebanyak 924 (92,4%) tidak melakukan pembelian dan hanya 76 (7,6%) yang melakukan pembelian. Ketidakseimbangan kelas ini perlu diperhatikan dalam proses pemodelan.

data_long <- pivot_longer(
  data2,
  cols = c(PageValues, ExitRates, ProductRelated_Duration),
  names_to = "Variabel",
  values_to = "Nilai"
)

ggplot(data_long, aes(x = Revenue, y = Nilai, fill = Revenue)) +
  geom_boxplot(alpha = 0.85) +
  facet_wrap(~Variabel, scales = "free") +
  scale_fill_manual(values = c(
    "FALSE" = pal_muted,
    "TRUE"  = pal_accent
  )) +
  labs(
    title = "Boxplot Variabel Penjelas berdasarkan Revenue",
    x = "Revenue",
    y = "Nilai"
  ) +
  theme_laporan()
Gambar 2. Boxplot Variabel Prediktor berdasarkan Revenue

Gambar 2. Boxplot Variabel Prediktor berdasarkan Revenue

📊 Interpretasi: Variabel PageValues dan ProductRelated_Duration cenderung memiliki nilai yang lebih tinggi pada kelompok yang melakukan pembelian (TRUE), sedangkan ExitRates cenderung lebih rendah. Pola ini menunjukkan bahwa pengunjung yang menghabiskan waktu lebih lama untuk mengeksplorasi produk dan menghasilkan nilai halaman yang lebih tinggi memiliki kecenderungan lebih besar untuk melakukan transaksi.

plot_vt <- data2 %>%
  group_by(VisitorType) %>%
  summarise(n = n()) %>%
  mutate(prop = n / sum(n),
         label = paste0(n, "\n(", scales::percent(prop), ")"))

ggplot(plot_vt, aes(x = VisitorType, y = n, fill = VisitorType)) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = label),
            vjust = -0.3,
            size = 4,
            color = pal_primary,
            fontface = "bold") +
  scale_fill_manual(values = c(
    "New_Visitor" = pal_muted,
    "Returning_Visitor" = pal_primary
  )) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15))) +
  labs(
    title = "Distribusi Visitor Type",
    x = "Visitor Type",
    y = "Frekuensi"
  ) +
  theme_laporan()
Gambar 3. Distribusi Variabel Visitor Type

Gambar 3. Distribusi Variabel Visitor Type

🔄 Interpretasi: Sebagian besar pengunjung merupakan Returning Visitor, yang menunjukkan bahwa situs memiliki tingkat kunjungan ulang yang tinggi. Sementara itu, proporsi New Visitor relatif lebih kecil dibandingkan pengunjung yang kembali mengakses situs.

plot_data <- data2 %>%
  group_by(VisitorType, Revenue) %>%
  summarise(n = n(), .groups = "drop") %>%
  group_by(VisitorType) %>%
  mutate(prop = n / sum(n),
         Label = paste0(round(prop * 100, 1), "%"))

ggplot(plot_data, aes(x = VisitorType, y = prop, fill = Revenue)) +
  geom_col(width = 0.6) +
  geom_text(aes(label = Label),
            position = position_stack(vjust = 0.5),
            size = 3.5,
            color = "white") +
  scale_fill_manual(values = c(
    "FALSE" = pal_muted,
    "TRUE"  = pal_accent
  )) +
  scale_y_continuous(labels = scales::percent) +
  labs(
    title = "Proporsi Transaksi berdasarkan Visitor Type",
    x = "Visitor Type",
    y = "Proporsi",
    fill = "Revenue"
  ) +
  theme_laporan()
Gambar 4. Proporsi Transaksi Berdasarkan Tipe Pengunjung

Gambar 4. Proporsi Transaksi Berdasarkan Tipe Pengunjung

👥 Interpretasi: Sebagian besar sesi pada kedua tipe pengunjung tidak menghasilkan pembelian (FALSE). Meskipun demikian, New Visitor menunjukkan proporsi pembelian yang lebih tinggi dibandingkan Returning Visitor, sehingga VisitorType berpotensi berkaitan dengan peluang terjadinya transaksi.


3.2 Uji Multikolinearitas

Uji multikolinearitas dilakukan untuk mengetahui ada tidaknya hubungan linear yang kuat antarvariabel prediktor dalam model. Salah satu indikator yang digunakan adalah Variance Inflation Factor (VIF). Suatu variabel dikatakan tidak mengalami masalah multikolinearitas apabila memiliki nilai VIF kurang dari 10.

## Uji Multikolinearitas (VIF)

model_vif <- glm(
  Revenue ~ PageValues + ExitRates + ProductRelated_Duration + VisitorType,
  data = data2,
  family = binomial
)

vif_result <- vif(model_vif)
vif_result
##              PageValues               ExitRates ProductRelated_Duration 
##                1.019759                1.094616                1.045574 
##             VisitorType 
##                1.043867
Tabel 2. Hasil Uji Multikolinearitas (VIF)
Variabel Nilai VIF Status
PageValues 1.0198 ✔ Tidak ada multikolinearitas
ExitRates 1.0946 ✔ Tidak ada multikolinearitas
ProductRelated_Duration 1.0456 ✔ Tidak ada multikolinearitas
VisitorType 1.0439 ✔ Tidak ada multikolinearitas

✅ Seluruh variabel memiliki VIF < 10 (bahkan mendekati 1), sehingga tidak terdapat masalah multikolinearitas antarvariabel prediktor. Semua variabel dapat dilanjutkan ke tahap analisis berikutnya.


3.3 Pembentukan Model Regresi Logistik Biner

model <- glm(
  Revenue ~ PageValues + ExitRates + ProductRelated_Duration + VisitorType,
  data   = data2,
  family = binomial(link = "logit")
)

summary(model)
## 
## Call:
## glm(formula = Revenue ~ PageValues + ExitRates + ProductRelated_Duration + 
##     VisitorType, family = binomial(link = "logit"), data = data2)
## 
## Coefficients:
##                                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  -2.839e+00  5.207e-01  -5.453 4.96e-08 ***
## PageValues                    1.379e-01  1.484e-02   9.288  < 2e-16 ***
## ExitRates                    -4.715e+01  1.452e+01  -3.248  0.00116 ** 
## ProductRelated_Duration       2.946e-04  1.011e-04   2.914  0.00357 ** 
## VisitorTypeReturning_Visitor  1.567e-01  4.995e-01   0.314  0.75372    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 537.78  on 999  degrees of freedom
## Residual deviance: 276.70  on 995  degrees of freedom
## AIC: 286.7
## 
## Number of Fisher Scoring iterations: 8

Model yang terbentuk dinyatakan sebagai:

\[\log\frac{\hat{\pi}(x)}{1 - \hat{\pi}(x)} = -2{,}84 + 1{,}38\,\text{PageValues} - 47{,}15\,\text{ExitRates} + 0{,}000295\,\text{ProductRelated_Duration} + 1{,}57\,\text{VisitorType}\]


3.4 Pengujian Model

3.4.1 Uji Simultan (Likelihood Ratio Test)

Uji signifikansi simultan dilakukan menggunakan Likelihood Ratio Test (LRT) untuk mengetahui apakah variabel prediktor secara bersama-sama berpengaruh terhadap variabel respon.

Hipotesis:

  • \(H_0\) : PageValues, ExitRates, ProductRelated_Duration, dan VisitorType secara simultan tidak berpengaruh terhadap purchasing intention pelanggan e-commerce.
  • \(H_1\) : Minimal terdapat satu variabel yang berpengaruh terhadap purchasing intention pelanggan e-commerce.
anova(model, test = "Chisq")
Tabel 3. Hasil Likelihood Ratio Test (Uji Simultan)
Statistik G df p-value
261.08 4 2.668e-55

Keputusan: Nilai statistik G = 261,08 dengan p-value < 0,001 < α (0,05). Hipotesis nol ditolak — variabel PageValues, ExitRates, ProductRelated_Duration, dan VisitorType secara simultan berpengaruh signifikan terhadap purchasing intention pelanggan e-commerce.

3.4.2 Uji Parsial (Wald Test)

Uji signifikansi parsial dilakukan menggunakan uji Wald untuk mengetahui pengaruh masing-masing variabel prediktor terhadap variabel respon.

Hipotesis (untuk setiap variabel prediktor):

  • \(H_0 : \beta_i = 0\), artinya variabel ke-\(i\) tidak berpengaruh terhadap purchasing intention.
  • \(H_1 : \beta_i \neq 0\), artinya variabel ke-\(i\) berpengaruh terhadap purchasing intention.

dengan \(i = 1, 2, 3, 4\) yang merepresentasikan variabel PageValues, ExitRates, ProductRelated_Duration, dan VisitorType.

Tabel 4. Hasil Uji Wald (Uji Parsial)
Variabel Koefisien Std. Error z-value p-value Signifikan
(Intercept) -2.839295 0.520719 -5.4526 4.963e-08 ✔ Ya
PageValues 0.137854 0.014842 9.2880 1.572e-20 ✔ Ya
ExitRates -47.152201 14.516446 -3.2482 1.161e-03 ✔ Ya
ProductRelated_Duration 0.000295 0.000101 2.9142 3.566e-03 ✔ Ya
VisitorTypeReturning_Visitor 0.156706 0.499483 0.3137 7.537e-01 ✘ Tidak

📌 Kesimpulan Uji Parsial:

  • PageValues (p < 0,001): berpengaruh signifikan positif — semakin tinggi nilai halaman, semakin besar peluang pembelian.
  • ExitRates (p = 0,001): berpengaruh signifikan negatif — tingginya exit rate menurunkan peluang pembelian.
  • ProductRelated_Duration (p = 0,004): berpengaruh signifikan positif — durasi eksplorasi produk lebih lama meningkatkan peluang pembelian.
  • VisitorType (p = 0,754): tidak signifikan — tipe pengunjung tidak cukup kuat menjelaskan keputusan pembelian.

3.5 Interpretasi Odds Ratio

Interpretasi odds ratio difokuskan pada variabel-variabel yang terbukti signifikan dalam model

exp(coef(model))
##                  (Intercept)                   PageValues 
##                 5.846686e-02                 1.147808e+00 
##                    ExitRates      ProductRelated_Duration 
##                 3.327049e-21                 1.000295e+00 
## VisitorTypeReturning_Visitor 
##                 1.169651e+00
exp(confint(model))
##                                     2.5 %       97.5 %
## (Intercept)                  1.919453e-02 1.500855e-01
## PageValues                   1.116864e+00 1.183892e+00
## ExitRates                    1.486763e-34 5.230754e-10
## ProductRelated_Duration      1.000096e+00 1.000500e+00
## VisitorTypeReturning_Visitor 4.603508e-01 3.321790e+00
Tabel 5. Odds Ratio dan Interval Kepercayaan 95%
Variabel Odds Ratio CI Bawah (95%) CI Atas (95%) p-value Sig.
(Intercept) 0.058467 0.019195 0.150085 4.963e-08
PageValues 1.147808 1.116864 1.183892 1.572e-20
ExitRates 0.000000 0.000000 0.000000 1.161e-03
ProductRelated_Duration 1.000295 1.000096 1.000500 3.566e-03
VisitorTypeReturning_Visitor 1.169651 0.460351 3.321790 7.537e-01

Interpretasi Odds Ratio (variabel signifikan):

  • PageValues (OR = 1,148): Setiap kenaikan 1 satuan page value meningkatkan odds pembelian sebesar 1,148 kali (ceteris paribus).
  • ExitRates (OR = 3,33×10⁻²¹): Peningkatan exit rate menurunkan odds pembelian secara drastis — semakin banyak pengunjung meninggalkan halaman, semakin kecil peluang transaksi.
  • ProductRelated_Duration (OR = 1,000295): Setiap tambahan 1 detik durasi eksplorasi produk meningkatkan odds pembelian sebesar 1,000295 kali — efek kecil per detik, namun signifikan secara kumulatif.

3.6 Kelayakan dan Evaluasi Model

3.6.1 Uji Hosmer–Lemeshow

Uji kelayakan model dilakukan menggunakan Hosmer–Lemeshow Goodness of Fit Test untuk mengetahui apakah model regresi logistik yang dibentuk telah sesuai dengan data observasi.

hoslem_result <- hoslem.test(
  as.numeric(data2$Revenue) - 1,
  fitted(model)
)
hoslem_result
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  as.numeric(data2$Revenue) - 1, fitted(model)
## X-squared = 12.034, df = 8, p-value = 0.1497
Tabel 6. Hosmer–Lemeshow Goodness of Fit Test
χ² df p-value Keputusan
12.0337 8 0.1497 H₀ Diterima — Model Fit

✅ Nilai p-value = 0,1497 > 0,05, sehingga H₀ diterima. Model regresi logistik sudah sesuai (fit) dengan data observasi dan layak digunakan untuk analisis selanjutnya.

3.6.2 Pseudo R-Square

Ukuran Pseudo R-Square digunakan untuk mengevaluasi kemampuan model regresi logistik dalam menjelaskan variabilitas variabel respon.

nagelkerke(model)
## $Models
##                                                                                                                          
## Model: "glm, Revenue ~ PageValues + ExitRates + ProductRelated_Duration + VisitorType, binomial(link = \"logit\"), data2"
## Null:  "glm, Revenue ~ 1, binomial(link = \"logit\"), data2"                                                             
## 
## $Pseudo.R.squared.for.model.vs.null
##                              Pseudo.R.squared
## McFadden                             0.485479
## Cox and Snell (ML)                   0.229781
## Nagelkerke (Cragg and Uhler)         0.552417
## 
## $Likelihood.ratio.test
##  Df.diff LogLik.diff  Chisq    p.value
##       -4     -130.54 261.08 2.6674e-55
## 
## $Number.of.observations
##            
## Model: 1000
## Null:  1000
## 
## $Messages
## [1] "Note: For models fit with REML, these statistics are based on refitting with ML"
## 
## $Warnings
## [1] "None"
Tabel 7. Pseudo R-Square
Ukuran Nilai Catatan
McFadden R² 0.4855 Peningkatan fit dibanding null model sangat baik
Cox & Snell R² 0.2298 Kemampuan penjelasan variasi (pendekatan likelihood)
Nagelkerke R² 0.5524 Model menjelaskan ~55,2% variasi keputusan pembelian

3.6.3 Confusion Matrix dan Akurasi

Kinerja klasifikasi model regresi logistik dievaluasi menggunakan confusion matrix dan nilai akurasi. Confusion matrix digunakan untuk membandingkan hasil prediksi model dengan kondisi aktual sehingga dapat diketahui jumlah observasi yang diklasifikasikan dengan benar maupun salah.

prob <- predict(model, type = "response")
pred <- ifelse(prob > 0.5, TRUE, FALSE)

cm <- table(Aktual = data2$Revenue, Prediksi = pred)
cm
##        Prediksi
## Aktual  FALSE TRUE
##   FALSE   914   10
##   TRUE     41   35
Tabel 8. Confusion Matrix
Prediksi: FALSE Prediksi: TRUE
Aktual: FALSE 914 10
Aktual: TRUE 41 35
accuracy <- mean(pred == data2$Revenue)
cat("Akurasi Model:", round(accuracy * 100, 2), "%\n")
## Akurasi Model: 94.9 %

914 True Negative

35 True Positive

10 False Positive

41 False Negative

94,9% Akurasi Keseluruhan

3.6.4 Kurva ROC dan AUC

Selanjutnya, evaluasi dapat dilakukan dengan menggunakan Receiver Operating Characteristic (ROC) curve dan Area Under the Curve (AUC). ROC curve digunakan untuk menggambarkan kemampuan model dalam membedakan antara kelas positif (pengguna melakukan pembelian) dan negatif (pengguna tidak melakukan pembelian) pada berbagai nilai ambang (threshold), sedangkan AUC digunakan sebagai ukuran ringkasan dari performa klasifikasi model.

roc_obj <- roc(data2$Revenue, prob)
auc_val <- auc(roc_obj)
cat("Nilai AUC:", round(auc_val, 4), "\n")
## Nilai AUC: 0.9563
# Plot ROC yang lebih stylish
roc_df <- data.frame(
  Spesifisitas = 1 - roc_obj$specificities,
  Sensitivitas = roc_obj$sensitivities
)

ggplot(roc_df, aes(x = Spesifisitas, y = Sensitivitas)) +
  geom_ribbon(aes(ymin = 0, ymax = Sensitivitas),
              fill = pal_accent2, alpha = 0.15) +
  geom_line(color = pal_accent2, linewidth = 1.2) +
  geom_abline(slope = 1, intercept = 0, linetype = "dashed",
              color = pal_muted, linewidth = 0.7) +
  annotate("label",
           x = 0.72, y = 0.28,
           label = paste0("AUC = ", round(auc_val, 4)),
           fill  = "#ffffff", color = pal_primary,
           size  = 4.5, fontface = "bold",
           label.padding = unit(0.5, "lines")) +
  scale_x_continuous(labels = scales::percent_format()) +
  scale_y_continuous(labels = scales::percent_format()) +
  labs(title    = "Kurva ROC — Regresi Logistik Biner",
       subtitle = paste0("AUC = ", round(auc_val, 4), " — Kemampuan diskriminasi sangat baik"),
       x        = "1 − Spesifisitas (False Positive Rate)",
       y        = "Sensitivitas (True Positive Rate)") +
  theme_laporan()
Gambar 5. Kurva ROC Model Regresi Logistik Biner

Gambar 5. Kurva ROC Model Regresi Logistik Biner

Tabel 9. Nilai AUC
Kriteria Nilai Kategori Interpretasi
AUC (Area Under the Curve) 0.9563 Sangat Baik (AUC ≥ 0,90) Model sangat mampu membedakan pengunjung yang membeli vs tidak membeli

3.7 Ringkasan Kinerja Model

0,5524 Nagelkerke R²

94,9% Akurasi

0,9563 AUC

0,1497 Hosmer-Lemeshow p-value


4 Pembahasan

Hasil regresi logistik biner menunjukkan bahwa PageValues, ExitRates, dan ProductRelated_Duration berpengaruh signifikan terhadap keputusan pembelian, sedangkan VisitorType tidak signifikan. Temuan ini menunjukkan bahwa keputusan pembelian lebih dipengaruhi oleh perilaku pengguna selama sesi kunjungan dibandingkan karakteristik pengunjung.

PageValues berpengaruh positif terhadap peluang pembelian, yang menunjukkan bahwa halaman dengan kontribusi lebih besar terhadap transaksi cenderung meningkatkan kemungkinan pengguna melakukan pembelian. Sebaliknya, ExitRates berpengaruh negatif, sehingga semakin tinggi tingkat pengguna yang meninggalkan halaman, semakin kecil peluang terjadinya transaksi. Selain itu, ProductRelated_Duration berpengaruh positif, yang menunjukkan bahwa semakin lama pengguna mengeksplorasi halaman produk, semakin besar kemungkinan mereka melakukan pembelian.

Secara keseluruhan, hasil penelitian menunjukkan bahwa metrik perilaku pengguna (behavioral metrics) merupakan faktor penting dalam memprediksi keputusan pembelian pada platform e-commerce. Oleh karena itu, pengelola platform perlu mengoptimalkan kualitas halaman, meningkatkan keterlibatan pengguna, dan mengurangi tingkat keluar (exit rate) untuk meningkatkan konversi penjualan.

5 Kesimpulan

Penelitian ini menerapkan regresi logistik biner pada Online Shoppers Purchasing Intention Dataset untuk mengidentifikasi faktor-faktor yang memengaruhi keputusan pembelian pelanggan e-commerce.

Temuan Utama:

  1. PageValues, ExitRates, dan ProductRelated_Duration berpengaruh signifikan terhadap keputusan pembelian (Revenue), sedangkan VisitorType tidak signifikan.

  2. Keputusan pembelian lebih dipengaruhi oleh perilaku pengguna selama sesi dibandingkan karakteristik pengunjung. Semakin tinggi keterlibatan pengguna → semakin besar peluang pembelian.

  3. Model menunjukkan performa sangat baik: Nagelkerke R² = 0,5524, akurasi = 94,9%, dan AUC = 0,9563.

Implikasi Praktis bagi Pengelola E-Commerce:

  • 📈 Tingkatkan PageValues — optimalkan halaman produk dan checkout agar lebih efektif mendorong transaksi.
  • 📉 Turunkan ExitRates — perbaiki UX/UI agar pengunjung tidak cepat meninggalkan situs.
  • ⏱️ Perpanjang ProductRelated_Duration — buat konten produk lebih menarik dan informatif.

6 Referensi

  1. Worldpay. 10 years of cash, cards and crypto: Worldpay’s Global Payments Report tracks a decade of transformation. Available online: https://www.worldpay.com/en-AU/press-releases/10-years-cash-cards-crypto-worldpays-global-payments-report (accessed on 8 June 2026).

  2. Sakar, C.O.; Polat, S.O.; Katircioglu, M.; Kastro, Y. Real-Time Prediction of Online Shoppers’ Purchasing Intention Using Multilayer Perceptron and LSTM Recurrent Neural Networks. Neural Computing and Applications 2019, 31, 6893–6908.

  3. Satu, M.S.; Islam, S.F. Modeling online customer purchase intention behavior applying different feature engineering and classification techniques. Research Square 2023, submitted.

  4. Yin, Y.; Li, X. Application of Machine Learning Algorithms for Predicting Online Shoppers’ Purchase Intention. In Proceedings of the 2025 2nd International Conference on Digital Economy and Computer Science (DECS ’25), Wuhan, China, 17–19 October 2025.

  5. Wong, M.M.; Su, W. Segmenting online shoppers: A combined cluster and logistic regression approach for forecasting purchase behavior. IEEE Access 2025, 13, 79467–79478.

  6. Hosmer, D.W.; Lemeshow, S.; Sturdivant, R.X. Applied Logistic Regression, 3rd ed.; Wiley: Hoboken, NJ, USA, 2013.

  7. Google Analytics Help Center. Available online: https://support.google.com/analytics (accessed on 5 June 2026).


Laporan ini dibuat menggunakan R Markdown. Data bersumber dari UCI Machine Learning Repository.