CHƯƠNG 1. GIỚI THIỆU VỀ DỮ LIỆU

Tập dữ liệu biểu hiện xu hướng mua sắm và hành vi của khách hàng. Tập dữ liệu này cung cấp ảnh chụp nhanh chi tiết về hành vi mua sắm trực tuyến và xu hướng của người tiêu dùng. Tập dữ liệu này chứa các hồ sơ khách hàng tổng hợp nhưng thực tế với nhiều tính năng như độ tuổi, giới tính, danh mục mua hàng, sở thích thanh toán và mức độ tương tác với các ưu đãi khuyến mại. Tập dữ liệu này lý tưởng cho phân tích dữ liệu khám phá, phân khúc khách hàng, mô hình hành vi và hệ thống đề xuất. Tập dữ liệu này cũng có thể được sử dụng cho các tác vụ học có giám sát như dự đoán mua hàng hoặc phân tích tỷ lệ hủy đơn hàng.

d <- read.csv("C:/Users/Ngo Trang/Documents/Shopping Trends And Customer Behaviour Dataset.csv", header = TRUE)
str(d)
## 'data.frame':    3900 obs. of  17 variables:
##  $ Customer.ID           : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Age                   : int  55 19 50 21 45 46 63 27 26 57 ...
##  $ Gender                : chr  "Male" "Male" "Male" "Male" ...
##  $ Item.Purchased        : chr  "Blouse" "Sweater" "Jeans" "Sandals" ...
##  $ Category              : chr  "Clothing" "Clothing" "Clothing" "Footwear" ...
##  $ Purchase.Amount..USD. : int  53 64 73 90 49 20 85 34 97 31 ...
##  $ Location              : chr  "Kentucky" "Maine" "Massachusetts" "Rhode Island" ...
##  $ Color                 : chr  "Gray" "Maroon" "Maroon" "Maroon" ...
##  $ Season                : chr  "Winter" "Winter" "Spring" "Spring" ...
##  $ Review.Rating         : num  3.1 3.1 3.1 3.5 2.7 2.9 3.2 3.2 2.6 4.8 ...
##  $ Subscription.Status   : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Shipping.Type         : chr  "Express" "Express" "Free Shipping" "Next Day Air" ...
##  $ Discount.Applied      : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Promo.Code.Used       : logi  TRUE TRUE TRUE TRUE TRUE TRUE ...
##  $ Previous.Purchases    : int  14 2 23 49 31 14 49 19 8 4 ...
##  $ Payment.Method        : chr  "Venmo" "Cash" "Credit Card" "PayPal" ...
##  $ Frequency.of.Purchases: chr  "Fortnightly" "Fortnightly" "Weekly" "Weekly" ...

Để khám phá dữ liệu ban đầu chúng ta sẽ xem nhanh cấu trúc và nội dung dữ liệu ở 5 quan sát đầu và 5 quan sát cuối bảng.

# Hiển thị một vài dòng đầu của dữ liệu
head(d,5)
# Hiển thị một vài dòng cuối của dữ liệu
tail(d,5)

Bộ dữ liệu d bao gồm 3900 quan sát với 17 biến bao gồm cả biến định lượng và biến định tính.

names(d)
##  [1] "Customer.ID"            "Age"                    "Gender"                
##  [4] "Item.Purchased"         "Category"               "Purchase.Amount..USD." 
##  [7] "Location"               "Color"                  "Season"                
## [10] "Review.Rating"          "Subscription.Status"    "Shipping.Type"         
## [13] "Discount.Applied"       "Promo.Code.Used"        "Previous.Purchases"    
## [16] "Payment.Method"         "Frequency.of.Purchases"
  • Biến định tính (Qualitative Variables)
  1. Gender – giới tính

  2. Item Purchased – sản phẩm đã mua

  3. Category – danh mục sản phẩm

  4. Location – địa điểm

  5. Color – màu sắc sản phẩm

  6. Season – mùa mua sắm

  7. Subscription Status – trạng thái đăng ký chương trình thanh viên

  8. Shipping Type – hình thức giao hàng

  9. Discount Applied – đã áp dụng giảm giá

  10. Promo Code Used – đã dùng mã khuyến mãi

  11. Payment Method – phương thức thanh toán

  12. Frequency of Purchases – tần suất mua hàng (dạng phân loại như “Low”, “Medium”, “High”)

  • Biến định lượng (Quantitative Variables)
  1. Customer ID – mã khách hàng

  2. Age – tuổi

  3. Purchase Amount (USD) – số tiền mua hàng (USD)

  4. Review Rating – điểm đánh giá sản phẩm

  5. Previous Purchases – số lần mua hàng trước đó

CHƯƠNG 2. PHÂN TÍCH ĐỘC LẬP CÁC BIẾN ĐỊNH TÍNH

Tại bài phân tích này chúng ta sẽ sử dụng:

  • 2 biến phụ thuộc: Subscription Status – trạng thái đăng ký chương trình thành viên và Gender – giới tính.

  • biến độc lập: Promo Code Used – đã dùng mã khuyến mãi, Category – danh mục sản phẩm, Payment Method – phương thức thanh toán.

2.1 Phân tích chi tiết các biến

2.1.1 Chi tiết biến phụ thuộc Subscription Status – trạng thái đăng ký chương trình thành viên

# Bảng tần số
su1 <- table(d$Subscription.Status)
su1
## 
##   No  Yes 
## 1357 2543
# Bảng tần suất
su2 <- table(d$Subscription.Status)/sum(nrow(d))
su2
## 
##        No       Yes 
## 0.3479487 0.6520513

Bộ dữ liệu d bao gồm: 1053 khách hàng đã đăng ký tham gia chương trình thành viên, chiếm tỷ trọng 27% tổng số khách hàng và 2847 khách hàng chưa đăng ký tham gia chương trình thành viên, chiếm tỷ trọng 73% tổng số khách hàng.

library(ggplot2)
ggplot(as.data.frame(su2), aes(x = "", y = Freq, fill = Var1)) +
  geom_col(width = 1, color = "white") +
  coord_polar("y") +
  geom_text(aes(label = paste0(round(Freq * 100), "%")),
            position = position_stack(vjust = 0.5)) +
  labs(title = "Tần suất đăng ký chương trình thành viên", fill = "Trạng thái đăng ký") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5))

2.1.2 Chi tiết biến phụ thuộc Gender – giới tính

# Bảng tần số
ge1 <- table(d$Gender)
ge1
## 
## Female   Male 
##   1248   2652
# Bảng tần suất
ge2 <- table(d$Gender)/sum(nrow(d))
ge2
## 
## Female   Male 
##   0.32   0.68

Bộ dữ liệu d bao gồm: 1248 khách hàng là nữ, chiếm tỷ trọng 32% tổng số khách hàng và 2652 khách hàng là nam, chiếm 68% tổng số khách hàng.

ggplot(as.data.frame(ge2), aes(x = "", y = Freq, fill = Var1)) +
  geom_col(width = 1, color = "white") +
  coord_polar("y") +
  geom_text(aes(label = paste0(round(Freq * 100), "%")),
            position = position_stack(vjust = 0.5)) +
  labs(title = "Tần suất giới tính khách hàng", fill = "Giới tính") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5))

2.1.3 Chi tiết biến độc lập Promo Code Used – đã dùng mã khuyến mãi

# Bảng tần số
pr1 <- table(d$Promo.Code.Used)
pr1
## 
## FALSE  TRUE 
##  1063  2837
# Bảng tần suất
pr2 <- table(d$Promo.Code.Used)/sum(nrow(d))
pr2
## 
##     FALSE      TRUE 
## 0.2725641 0.7274359

Bộ dữ liệu d bao gồm: 1677 khách hàng đã dùng mã khuyến mãi, chiếm tỷ trọng 43% tổng số khách hàng và 2223 khách hàng không dùng mã khuyến mãi, chiếm tỷ trọng 57% tổng số khách hàng.

ggplot(as.data.frame(pr2), aes(x = "", y = Freq, fill = Var1)) +
  geom_col(width = 1, color = "white") +
  coord_polar("y") +
  geom_text(aes(label = paste0(round(Freq * 100), "%")),
            position = position_stack(vjust = 0.5)) +
  labs(title = "Tần suất trạng thái khách hàng sử dụng mã khuyến mãi", fill = "Trạng thái sử dụng mã khuyến mãi") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5))

2.1.4 Chi tiết biến độc lập Category – danh mục sản phẩm

# Bảng tần số
ca1 <- table(d$Category)
ca1
## 
## Accessories    Clothing    Footwear   Outerwear 
##        1240        1737         599         324
# Bảng tần suất
ca2 <- table(d$Category)/sum(nrow(d))
ca2
## 
## Accessories    Clothing    Footwear   Outerwear 
##  0.31794872  0.44538462  0.15358974  0.08307692

Bộ dữ liệu d bao gồm: 1240 sản phẩm là phụ kiện, chiếm tỷ trọng 31.8% tổng sản phẩm bán ra. 1737 sản phẩm là quần áo chiếm tỷ trọng 44.54% tổng sản phẩm bán ra. 599 sản phẩm là giày dép chiếm tỷ trọng 15.36% tổng sản phẩm bán ra. Và 324 sản phẩm là áo khoác ngoài chiếm tỷ trọng 8.3% tổng sản phẩm bán ra.

ggplot(as.data.frame(ca2), aes(x = "", y = Freq, fill = Var1)) +
  geom_col(width = 1, color = "white") +
  coord_polar("y") +
  geom_text(aes(label = paste0(round(Freq * 100), "%")),
            position = position_stack(vjust = 0.5)) +
  labs(title = "tần suất số sản phẩm bán ra", fill = "Loại sản phẩm") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5))

2.1.5 Chi tiết biến độc lập Payment Method – phương thức thanh toán

# Bảng tần số
pa1 <- table(d$Payment.Method)
pa1
## 
## Bank Transfer          Cash   Credit Card    Debit Card        PayPal 
##           612           670           671           636           677 
##         Venmo 
##           634
# Bảng tần suất
pa2 <- table(d$Payment.Method)/sum(nrow(d))
pa2
## 
## Bank Transfer          Cash   Credit Card    Debit Card        PayPal 
##     0.1569231     0.1717949     0.1720513     0.1630769     0.1735897 
##         Venmo 
##     0.1625641

Bộ dữ liệu d bao gồm: 612 khách hàng thanh toán bằng cách chuyển khoản ngân hàng, chiếm 15.7% tổng số khách hàng. 670 khách hàng sử dụng tiền mặt để thanh toán, chiếm 17.18% tổng số khách hàng. 671 khách hàng thanh toán bằng thẻ tín dụng, chiếm 17.2% tổng số khách hàng. 636 khách hàng sử dụng thẻ ghi nợ để thanh toán, chiếm tỷ trọng 16.31% tổng số khách hàng. 677 khách hàng sử dụng ví điện tử PayPal để thanh toán, chiếm 17.35% tổng số khách hàng. Và 634 khachs hàng sử dụng ví điẹne tử Venmo để thanh toán, chiếm 16.26% tổng só khách hàng.

ggplot(as.data.frame(pa2), aes(x = "", y = Freq, fill = Var1)) +
  geom_col(width = 1, color = "white") +
  coord_polar("y") +
  geom_text(aes(label = paste0(round(Freq * 100), "%")),
            position = position_stack(vjust = 0.5)) +
  labs(title = "tần suất phương thức thanh toán của khách hàng", fill = "Phương thức thanh toán") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5))

2.2 Ứớc lượng khoảng, kiểm định giả thuyết thống kê cho các biến trong bộ dữ liệu

2.2.1 Biểu hiện Yes của biến Subscription.Status

# Số lượng khách hàng đã đăng ký tham gia chương trình thành viên
Yes <- sum(d$Subscription.Status == "Yes")
# Kiểm định tỷ lệ 1 mẫu
prop.test(Yes, sum(nrow(d)), p = 0.5, conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  Yes out of sum(nrow(d)), null probability 0.5
## X-squared = 360.06, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.6368298 0.6669709
## sample estimates:
##         p 
## 0.6520513

Đặt giả thuyết:

H0:Tỷ lệ khách hàng đã đăng ký tham gia chương trình thành viên = 0.5

H1:Tỷ lệ khách hàng đã đăng ký tham gia chương trình thành viên ≠ 0.5

Ta thấy giá trị p-value < 2.2e-16 < 5% bác bỏ H0, đồng nghĩa với việc tỷ lệ khách hàng đã đăng ký tham gia chương trình thành viên không phải là 50% trong tổng số khách hàng. Ngoài ra, ta có thể ước lượng số tỷ lệ khách hàng đã đăng ký tham gia chương trình thành viên trong thực tế với độ tin cậy 95% nằm trong khoảng từ 25.62% đến 28.43%.

2.2.2 Biểu hiện Female của biến Gender

# Số khách hàng là nữ
Female <- sum(d$Gender == "Female")
# Kiểm định tỷ lệ 1 mẫu
prop.test(Female, sum(nrow(d)), p = 0.32, conf.level = 0.95)
## 
##  1-sample proportions test without continuity correction
## 
## data:  Female out of sum(nrow(d)), null probability 0.32
## X-squared = 7.7977e-29, df = 1, p-value = 1
## alternative hypothesis: true p is not equal to 0.32
## 95 percent confidence interval:
##  0.3055431 0.3348111
## sample estimates:
##    p 
## 0.32

Đặt giả thuyết:

H0:Tỷ lệ khách hàng là nữ = 0.5

H1:Tỷ lệ khách hàng là nữ ≠ 0.5

Ta thấy giá trị p-value < 2.2e-16 < 5% bác bỏ H0, nghĩa là tỷ lệ khách hàng là nữ trong thực tế không phải chiếm 50% trong tổng số khách hàng. Ngoài ra, ta có thể ước lượng tỷ lệ khách hàng là nữ trong thực tế với độ tin cậy 95% nằm trong khoảng từ 30.54% đến 33.49%.

CHƯƠNG 3. PHÂN TÍCH CẶP BIẾN ĐỊNH TÍNH

3.1 Subscription Status và Promo Code Used

3.1.1 Bảng tần số chéo

vd01 <- table(d$Subscription.Status,d$Promo.Code.Used)
addmargins(vd01 )
##      
##       FALSE TRUE  Sum
##   No    733  624 1357
##   Yes   330 2213 2543
##   Sum  1063 2837 3900
# Tính tỷ lệ phần trăm theo hàng
vd1 <- prop.table(vd01, margin = 1) * 100
vd1
##      
##          FALSE     TRUE
##   No  54.01621 45.98379
##   Yes 12.97680 87.02320
ggplot(as.data.frame(vd01), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_col(position = position_dodge(width = 0.9)) +
  geom_text(aes(label = paste0(Freq, " (", round(vd1[cbind(as.character(Var1), as.character(Var2))], 1), "%)")),
            position = position_dodge(width = 0.9),
            vjust = -0.3, size = 3) +
   labs(title = "Đăng ký chương trình thành viên và đã sử dụng mã khuyến mãi",
       x = "Đăng ký chương trình thành viên",
       y = "Số lượng",
       fill = "Sử dụng mã khuyến mãi") +
  theme_minimal()

Trong nhóm chưa đăng ký chương trình thành viên, có 733 người chưa sử dụng khuyến mãi (chiếm 54,02%) và 624 người đã sử dụng khuyến mãi (chiếm 45,98%), tổng cộng 1.357 người. Trong nhóm đã đăng ký chương trình thành viên, có 330 người chưa sử dụng khuyến mãi (chiếm 12,98%) và 2.213 người đã sử dụng khuyến mãi (chiếm 87,02%), tổng cộng 2.543 người.

3.1.2 Kiểm định chi bình phương

Giả thuyết:

H₀ :Subscription Status và Promo Code Used độc lập với nhau.

H₁ :Subscription Statu và Promo Code Used không độc lập.

chisq.test(vd01)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  vd01
## X-squared = 749.56, df = 1, p-value < 2.2e-16

Kết quả cung cấp:

  • Giá trị Chi-bình phương (X²): 1908.9

  • Bậc tự do (df): 1

  • Giá trị p: p-value < 2.2e-16

Qua kết quả kiểm định cho ta p−value < 2.2e−16 < 0.05, nên bác bỏ H0, đồng nghĩa với việc khách hàng đăng ký chương trình thành viên và khách hàng đã sử dụng mã khuyến mãi có mối quan hệ với nhau.

3.1.3 Rủi ro tương đối (Relative Risk/Risk Ratio)

- Quan tâm đến nhóm khách hàng đã đăng ký chương trình thành viên (YES) và đã sử dụng khuyến mãi (TRUE).

library(epitools)
riskratio(vd01)
## $data
##        
##         FALSE TRUE Total
##   No      733  624  1357
##   Yes     330 2213  2543
##   Total  1063 2837  3900
## 
## $measure
##      risk ratio with 95% C.I.
##       estimate    lower   upper
##   No  1.000000       NA      NA
##   Yes 1.892476 1.783003 2.00867
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   No          NA            NA            NA
##   Yes          0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng đã đăng ký chương trình thành viên và đã sử dụng mã khuyển mãi gấp 1,89 lần nhóm khách hàng chưa đăng ký chương trình thành viên và đã sử dụng mã khuyến mãi.

- Quan tâm đến nhóm khách hàng đã đăng ký chương trình thành viên (YES) và chưa sử dụng khuyến mãi (FALSE).

riskratio(vd01, rev = 'c')
## $data
##        
##         TRUE FALSE Total
##   No     624   733  1357
##   Yes   2213   330  2543
##   Total 2837  1063  3900
## 
## $measure
##      risk ratio with 95% C.I.
##       estimate    lower     upper
##   No  1.000000       NA        NA
##   Yes 0.240239 0.214788 0.2687057
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   No          NA            NA            NA
##   Yes          0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng đã đăng ký chương trình thành viên và chưa sử dụng mã khuyến mãi thấp hơn nhóm khách hàng chưa đăng ký chương trình thành viên và chưa sử dụng mã khuyến mãi là 0,24 lần.

- Quan tâm đến nhóm khách hàng chưa đăng ký chương trình thành viên (NO) và đã sử dụng khuyến mãi (TRUE).

riskratio(vd01, rev = "r")
## $data
##        
##         FALSE TRUE Total
##   Yes     330 2213  2543
##   No      733  624  1357
##   Total  1063 2837  3900
## 
## $measure
##      risk ratio with 95% C.I.
##        estimate     lower     upper
##   Yes 1.0000000        NA        NA
##   No  0.5284084 0.4978419 0.5608516
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   Yes         NA            NA            NA
##   No           0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng chưa đăng ký chương trình thành viên và đã sử dụng mã khuyến mãi thấp hơn nhóm khách hàng đã đăng ký chương trình thành viên và đã sử dụng mã khuyến mãi là 0,53 lần.

- Quan tâm đến nhóm khách hàng chưa đăng ký chương trình thành viên (NO) và chưa sử dụng khuyến mãi (FALSE).

riskratio(vd01, rev = "b")
## $data
##        
##         TRUE FALSE Total
##   Yes   2213   330  2543
##   No     624   733  1357
##   Total 2837  1063  3900
## 
## $measure
##      risk ratio with 95% C.I.
##       estimate    lower    upper
##   Yes 1.000000       NA       NA
##   No  4.162522 3.721544 4.655753
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   Yes         NA            NA            NA
##   No           0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng chưa đăng ký chương trình thành viên và chưa sử dụng mã khuyến mãi cao gấp 4,16 lần nhóm khách hàng đã đăng ký chương trình thành viên và chưa sử dụng mã khuyến mãi.

3.1.4 Tỷ lệ chênh (Odd Ratio)

Chưa sử dụng khuyễn mãi (FALSE) ~ Thành công/đã sử dụng khuyến mãi (TRUE) ~ Thất bại

  • Nhóm khách hàng chưa đăng ký chương trình thành viên so với nhóm khách hàng đã đăng ký chương trình thành viên.
oddsratio(vd01)
## $data
##        
##         FALSE TRUE Total
##   No      733  624  1357
##   Yes     330 2213  2543
##   Total  1063 2837  3900
## 
## $measure
##      odds ratio with 95% C.I.
##       estimate    lower    upper
##   No  1.000000       NA       NA
##   Yes 7.870345 6.730132 9.220399
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   No          NA            NA            NA
##   Yes          0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng chưa đăng ký chương trình thành viên có khả năng chưa sử dụng mã khuyến mãi cao hơn khoảng 7,87 lần so với những khách hàng đã đăng ký chương trình thành viên.

  • Nhóm khách hàng đã đăng ký chương trình thành viên so với nhóm khách hàng chưa đăng ký chương trình thành viên.
oddsratio(vd01, rev = 'r')
## $data
##        
##         FALSE TRUE Total
##   Yes     330 2213  2543
##   No      733  624  1357
##   Total  1063 2837  3900
## 
## $measure
##      odds ratio with 95% C.I.
##        estimate     lower     upper
##   Yes 1.0000000        NA        NA
##   No  0.1270521 0.1084552 0.1485855
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   Yes         NA            NA            NA
##   No           0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng đã đăng ký chương trình thành viên có khả năng chưa sử dụng mã khuyến mãi thấp hơn khoảng 0,13 lần so với những khách hàng chưa đăng ký chương trình thành viên.

Đã sử dụng khuyến mãi (TRUE) ~ Thành công/chưa sử dụng khuyễn mãi (FALSE) ~ Thất bại

  • Nhóm khách hàng chưa đăng ký chương trình thành viên so với nhóm khách hàng đã đăng ký chương trình thành viên.
oddsratio(vd01, rev = 'c')
## $data
##        
##         TRUE FALSE Total
##   No     624   733  1357
##   Yes   2213   330  2543
##   Total 2837  1063  3900
## 
## $measure
##      odds ratio with 95% C.I.
##        estimate     lower     upper
##   No  1.0000000        NA        NA
##   Yes 0.1270521 0.1084552 0.1485855
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   No          NA            NA            NA
##   Yes          0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng chưa đăng ký chương trình thành viên có khả năng chưa sử dụng mã khuyến mãi thấp hơn khoảng 0,13 lần so với những khách hàng đã đăng ký chương trình thành viên.

  • Nhóm khách hàng đã đăng ký chương trình thành viên so với nhóm khách hàng chưa đăng ký chương trình thành viên.
oddsratio(vd01, rev = 'b')
## $data
##        
##         TRUE FALSE Total
##   Yes   2213   330  2543
##   No     624   733  1357
##   Total 2837  1063  3900
## 
## $measure
##      odds ratio with 95% C.I.
##       estimate    lower    upper
##   Yes 1.000000       NA       NA
##   No  7.870345 6.730132 9.220399
## 
## $p.value
##      two-sided
##       midp.exact  fisher.exact    chi.square
##   Yes         NA            NA            NA
##   No           0 2.097923e-161 1.779667e-165
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng đã đăng ký chương trình thành viên có khả năng chưa sử dụng mã khuyến mãi cao hơn khoảng 7,87 lần so với những khách hàng chưa đăng ký chương trình thành viên.

3.2 Subscription Status và Category

3.2.1 Bảng tần số chéo

vd02 <- table(d$Subscription.Status,d$Category)
addmargins(vd02)
##      
##       Accessories Clothing Footwear Outerwear  Sum
##   No          438      617      197       105 1357
##   Yes         802     1120      402       219 2543
##   Sum        1240     1737      599       324 3900
# Tính tỷ lệ phần trăm theo hàng
vd2 <- prop.table(vd02, margin = 1) * 100
vd2
##      
##       Accessories  Clothing  Footwear Outerwear
##   No    32.277082 45.467944 14.517318  7.737657
##   Yes   31.537554 44.042470 15.808101  8.611876
ggplot(as.data.frame(vd02), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_col(position = position_dodge(width = 0.9)) +
  geom_text(aes(label = paste0(Freq, " (", round(vd2[cbind(as.character(Var1), as.character(Var2))], 1), "%)")),
            position = position_dodge(width = 0.9),
            vjust = -0.3, size = 3) +
   labs(title = "Đăng ký chương trình thành viên và loại sản phẩm",
       x = "Đăng ký chương trình thành viên",
       y = "Số lượng",
       fill = "Loại sản phẩm") +
  theme_minimal()

Trong nhóm chưa đăng ký chương trình thành viên, có 438 người mua phụ kiện (chiếm 32,28%), 617 người mua quần áo (45,47%), 197 người mua giày dép (14,52%) và 105 người mua áo khoác (7,74%), tổng cộng 1.357 người.

Trong nhóm đã đăng ký chương trình thành viên, có 802 người mua phụ kiện (chiếm 31,54%), 1.120 người mua quần áo (44,04%), 402 người mua giày dép (15,81%) và 219 người mua áo khoác (8,61%), tổng cộng 2.543 người.

3.2.2 Kiểm định chi bình phương

Giả thuyết:

H₀ :Subscription Status và Categoryd độc lập với nhau.

H₁ :Subscription Statu và Categoryd không độc lập.

chisq.test(vd02)
## 
##  Pearson's Chi-squared test
## 
## data:  vd02
## X-squared = 2.3297, df = 3, p-value = 0.5068

Kết quả cung cấp:

  • Giá trị Chi-bình phương (X²): 1.3444

  • Bậc tự do (df): 3

  • Giá trị p: p-value = 0.7186

Qua kết quả kiểm định cho ta p-value = 0.7186 > 0.05, không đủ cơ sở bác bỏ H0, đồng nghĩa với việc khách hàng đăng ký chương trình thành viên và loại sản phẩm được bán ra không có mối quan hệ với nhau.

3.3 Subscription Status và Payment Method

3.3.1 Bảng tần số chéo

vd03 <- table(d$Subscription.Status,d$Payment.Method)
addmargins(vd03)
##      
##       Bank Transfer Cash Credit Card Debit Card PayPal Venmo  Sum
##   No            206  237         222        231    243   218 1357
##   Yes           406  433         449        405    434   416 2543
##   Sum           612  670         671        636    677   634 3900
# Tính tỷ lệ phần trăm theo hàng
vd3 <- prop.table(vd03, margin = 1) * 100
vd3
##      
##       Bank Transfer     Cash Credit Card Debit Card   PayPal    Venmo
##   No       15.18055 17.46500    16.35962   17.02284 17.90715 16.06485
##   Yes      15.96540 17.02713    17.65631   15.92607 17.06646 16.35863
ggplot(as.data.frame(vd03), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_col(position = position_dodge(width = 0.9)) +
  labs(title = "Đăng ký chương trình thành viên và phương thức thanh toán",
       x = "Đăng ký chương trình thành viên",
       y = "Số lượng",
       fill = "Phương thức thanh toán") +
  theme_minimal()

Trong nhóm chưa đăng ký chương trình thành viên, có 206 người thanh toán bằng chuyển khoản ngân hàng (chiếm 15,18%), 237 người thanh toán bằng tiền mặt (17,47%), 222 người dùng thẻ tín dụng (16,36%), 231 người dùng thẻ ghi nợ (17,02%), 243 người thanh toán qua PayPal (17,91%) và 218 người qua Venmo (16,06%), tổng cộng 1.357 người.

Trong nhóm đã đăng ký chương trình thành viên, có 406 người thanh toán bằng chuyển khoản ngân hàng (chiếm 15,97%), 433 người bằng tiền mặt (17,03%), 449 người dùng thẻ tín dụng (17,66%), 405 người dùng thẻ ghi nợ (15,93%), 434 người thanh toán qua PayPal (17,07%) và 416 người qua Venmo (16,36%), tổng cộng 2.543 người.

3.3.2 Kiểm định chi bình phương

Giả thuyết:

H₀ :Subscription Status và Payment Methodd độc lập với nhau.

H₁ :Subscription Statu và Payment Method không độc lập.

chisq.test(vd03)
## 
##  Pearson's Chi-squared test
## 
## data:  vd03
## X-squared = 2.3707, df = 5, p-value = 0.7958

Kết quả cung cấp:

  • Giá trị Chi-bình phương (X²): 3.8587

  • Bậc tự do (df): 5

  • Giá trị p: p-value = 0.5699

Qua kết quả kiểm định cho ta p−value = 0.5699 > 0.05, không đủ cơ sở bác bỏ H0, đồng nghĩa với việc khách hàng đăng ký chương trình thành viên và phương thức thanh toán không có mối quan hệ với nhau.

3.4 Gender và Promo Code Used

3.4.1 Bảng tần số chéo

vd04 <- table(d$Gender,d$Promo.Code.Used)
addmargins(vd04)
##         
##          FALSE TRUE  Sum
##   Female    88 1160 1248
##   Male     975 1677 2652
##   Sum     1063 2837 3900
# Tính tỷ lệ phần trăm theo hàng
vd4 <- prop.table(vd04, margin = 1) * 100
vd4
##         
##              FALSE      TRUE
##   Female  7.051282 92.948718
##   Male   36.764706 63.235294
ggplot(as.data.frame(vd04), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_col(position = position_dodge(width = 0.9)) +
  geom_text(aes(label = paste0(Freq, " (", round(vd4[cbind(as.character(Var1), as.character(Var2))], 1), "%)")),
            position = position_dodge(width = 0.9),
            vjust = -0.3, size = 3) +
   labs(title = "Giới tính và đã sử dụng mã khuyến mãi",
       x = "Giới tính",
       y = "Số lượng",
       fill = "Sử dụng mã khuyến mãi") +
  theme_minimal()

Trong nhóm nữ, có 88 người chưa sử dụng mã khuyến mãi (chiếm 7,05%) và 1.160 người đã sử dụng mã khuyến mãi (chiếm 92,95%), tổng cộng 1.248 người.

Trong nhóm nam, có 975 người chưa sử dụng mã khuyến mãi (chiếm 36,76%) và 1.677 người đã sử dụng mã khuyến mãi (chiếm 63,24%), tổng cộng 2.652 người.

3.4.2 Kiểm định chi bình phương

Giả thuyết:

H₀ :Gender và Promo Code Used độc lập với nhau.

H₁ :Gender và Promo Code Used không độc lập.

chisq.test(vd04)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  vd04
## X-squared = 376.39, df = 1, p-value < 2.2e-16

Kết quả cung cấp:

  • Giá trị Chi-bình phương (X²): 1381.9

  • Bậc tự do (df): 1

  • Giá trị p: p-value < 2.2e-16

Qua kết quả kiểm định cho ta p−value < 2.2e−16 < 0.05, nên bác bỏ H0, đồng nghĩa với việc giới tính khách hàng và khách hàng đã sử dụng mã khuyến mãi có mối quan hệ với nhau.

3.4.3 Rủi ro tương đối (Relative Risk/Risk Ratio)

- Quan tâm đến nhóm khách hàng là nam và đã sử dụng khuyến mãi (TRUE).

library(epitools)
riskratio(vd04)
## $data
##         
##          FALSE TRUE Total
##   Female    88 1160  1248
##   Male     975 1677  2652
##   Total   1063 2837  3900
## 
## $measure
##         risk ratio with 95% C.I.
##           estimate     lower     upper
##   Female 1.0000000        NA        NA
##   Male   0.6803245 0.6583736 0.7030074
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Female         NA           NA           NA
##   Male            0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng là nam đã sử dụng mã khuyến mãi thấp hơn khoảng 0,68 lần nhóm khách hàng là nữ đã sử dụng mã khuyến mãi.

- Quan tâm đến nhóm khách hàng là nam và chưa sử dụng khuyến mãi (FALSE).

riskratio(vd04, rev = 'c')
## $data
##         
##          TRUE FALSE Total
##   Female 1160    88  1248
##   Male   1677   975  2652
##   Total  2837  1063  3900
## 
## $measure
##         risk ratio with 95% C.I.
##          estimate    lower    upper
##   Female 1.000000       NA       NA
##   Male   5.213904 4.236785 6.416373
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Female         NA           NA           NA
##   Male            0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng là nam chưa sử dụng mã khuyến mãi cao hơn khoảng 5,21 lần nhóm khách hàng là nữ chưa sử dụng mã khuyến mãi.

- Quan tâm đến nhóm khách hàng là nữ và đã sử dụng khuyến mãi (YES).

riskratio(vd04, rev = "r")
## $data
##         
##          FALSE TRUE Total
##   Male     975 1677  2652
##   Female    88 1160  1248
##   Total   1063 2837  3900
## 
## $measure
##         risk ratio with 95% C.I.
##          estimate   lower    upper
##   Male   1.000000      NA       NA
##   Female 1.469887 1.42246 1.518894
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Male           NA           NA           NA
##   Female          0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng là nữ đã sử dụng mã khuyến mãi cao hơn khoảng 1,47 lần nhóm khách hàng là nam đã sử dụng mã khuyến mãi.

- Quan tâm đến nhóm khách hàng là nữ và chưa sử dụng khuyến mãi (FALSE).

riskratio(vd04, rev = "b")
## $data
##         
##          TRUE FALSE Total
##   Male   1677   975  2652
##   Female 1160    88  1248
##   Total  2837  1063  3900
## 
## $measure
##         risk ratio with 95% C.I.
##           estimate     lower    upper
##   Male   1.0000000        NA       NA
##   Female 0.1917949 0.1558513 0.236028
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Male           NA           NA           NA
##   Female          0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Nhóm khách hàng là nữ chưa sử dụng mã khuyến mãi thấp hơn khoảng 0,19 lần nhóm khách hàng là nam chưa sử dụng mã khuyến mãi.

3.4.4 Tỷ lệ chênh (Odd Ratio)

Chưa sử dụng khuyễn mãi (FALSE) ~ Thành công/đã sử dụng khuyến mãi (TRUE) ~ Thất bại

  • Nhóm khách hàng là nữ so với nhóm khách hàng là nam.
oddsratio(vd04)
## $data
##         
##          FALSE TRUE Total
##   Female    88 1160  1248
##   Male     975 1677  2652
##   Total   1063 2837  3900
## 
## $measure
##         odds ratio with 95% C.I.
##           estimate     lower     upper
##   Female 1.0000000        NA        NA
##   Male   0.1307131 0.1031578 0.1637429
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Female         NA           NA           NA
##   Male            0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng là nữ có khả năng chưa sử dụng mã khuyến mãi thấp hơn khoảng 0,13 lần so với những khách hàng là nam.

  • Nhóm khách hàng là nam so với nhóm khách hàng là nữ.
oddsratio(vd04, rev = 'r')
## $data
##         
##          FALSE TRUE Total
##   Male     975 1677  2652
##   Female    88 1160  1248
##   Total   1063 2837  3900
## 
## $measure
##         odds ratio with 95% C.I.
##          estimate    lower    upper
##   Male   1.000000       NA       NA
##   Female 7.648858 6.107136 9.693884
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Male           NA           NA           NA
##   Female          0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng là nam có khả năng chưa sử dụng mã khuyến mãi cao hơn khoảng 7,65 lần so với những khách hàng là nữ.

Đã sử dụng khuyến mãi (TRUE) ~ Thành công/chưa sử dụng khuyễn mãi (FALSE) ~ Thất bại

  • Nhóm khách hàng là nữ so với nhóm khách hàng là nam.
oddsratio(vd04, rev = 'c')
## $data
##         
##          TRUE FALSE Total
##   Female 1160    88  1248
##   Male   1677   975  2652
##   Total  2837  1063  3900
## 
## $measure
##         odds ratio with 95% C.I.
##          estimate    lower    upper
##   Female 1.000000       NA       NA
##   Male   7.648858 6.107136 9.693884
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Female         NA           NA           NA
##   Male            0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng là nữ có khả năng đã sử dụng mã khuyến mãi cao hơn khoảng 7,65 lần so với những khách hàng là nam.

  • Nhóm khách hàng là nam so với nhóm khách hàng là nữ.
oddsratio(vd04, rev = 'b')
## $data
##         
##          TRUE FALSE Total
##   Male   1677   975  2652
##   Female 1160    88  1248
##   Total  2837  1063  3900
## 
## $measure
##         odds ratio with 95% C.I.
##           estimate     lower     upper
##   Male   1.0000000        NA        NA
##   Female 0.1307131 0.1031578 0.1637429
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Male           NA           NA           NA
##   Female          0 2.336886e-98 3.583639e-84
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Những khách hàng là nam có khả năng đã sử dụng mã khuyến mãi thấp hơn khoảng 7,65 lần so với những khách hàng là nữ.

3.5 Gender và Category

3.5.1 Bảng tần số chéo

vd05 <- table(d$Gender,d$Category)
addmargins(vd05)
##         
##          Accessories Clothing Footwear Outerwear  Sum
##   Female         392      556      199       101 1248
##   Male           848     1181      400       223 2652
##   Sum           1240     1737      599       324 3900
# Tính tỷ lệ phần trăm theo hàng
vd5 <- prop.table(vd05, margin = 1) * 100
vd5
##         
##          Accessories  Clothing  Footwear Outerwear
##   Female   31.410256 44.551282 15.945513  8.092949
##   Male     31.975867 44.532428 15.082956  8.408748
ggplot(as.data.frame(vd05), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_col(position = position_dodge(width = 0.9)) +
  geom_text(aes(label = paste0(Freq, " (", round(vd5[cbind(as.character(Var1), as.character(Var2))], 1), "%)")),
            position = position_dodge(width = 0.9),
            vjust = -0.3, size = 3) +
   labs(title = "Giới tính và loại sản phẩm",
       x = "Giới tính",
       y = "Số lượng",
       fill = "Loại sản phẩm") +
  theme_minimal()

Trong nhóm nữ, có 392 người mua phụ kiện (chiếm 31,41%), 556 người mua quần áo (44,55%), 199 người mua giày dép (15,95%) và 101 người mua áo khoác (8,09%), tổng cộng 1.248 người.

Trong nhóm nam, có 848 người mua phụ kiện (chiếm 31,98%), 1.181 người mua quần áo (44,53%), 400 người mua giày dép (15,08%) và 223 người mua áo khoác (8,41%), tổng cộng 2.652 người.

3.5.2 Kiểm định chi bình phương

Giả thuyết:

H₀ :Gender và Category độc lập với nhau.

H₁ :Gender và Category không độc lập.

chisq.test(vd05)
## 
##  Pearson's Chi-squared test
## 
## data:  vd05
## X-squared = 0.59842, df = 3, p-value = 0.8968

Kết quả cung cấp:

  • Giá trị Chi-bình phương (X²): 0.59842

  • Bậc tự do (df): 3

  • Giá trị p: p-value = 0.8968

Qua kết quả kiểm định cho ta p−value = 0.8968 > 0.05, không đủ cơ sở bác bỏ H0, đồng nghĩa với việc giới tính khách hàng và loại sản phẩm không có mối quan hệ với nhau.

3.6 Gender và Payment Method

3.6.1 Bảng tần số chéo

vd06 <- table(d$Gender,d$Payment.Method)
addmargins(vd06)
##         
##          Bank Transfer Cash Credit Card Debit Card PayPal Venmo  Sum
##   Female           203  212         223        181    221   208 1248
##   Male             409  458         448        455    456   426 2652
##   Sum              612  670         671        636    677   634 3900
# Tính tỷ lệ phần trăm theo hàng
vd6 <- prop.table(vd06, margin = 1) * 100
vd6
##         
##          Bank Transfer     Cash Credit Card Debit Card   PayPal    Venmo
##   Female      16.26603 16.98718    17.86859   14.50321 17.70833 16.66667
##   Male        15.42232 17.26998    16.89291   17.15686 17.19457 16.06335
ggplot(as.data.frame(vd06), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_col(position = position_dodge(width = 0.9)) +
  geom_text(aes(label = paste0(Freq, " (", round(vd6[cbind(as.character(Var1), as.character(Var2))], 1), "%)")),
            position = position_dodge(width = 0.9),
            vjust = -0.3, size = 3) +
   labs(title = "Giới tính và phương thức thanh toán",
       x = "Giới tính",
       y = "Số lượng",
       fill = "Phương thức thanh toán") +
  theme_minimal()

Trong nhóm nữ, có 203 người thanh toán bằng chuyển khoản ngân hàng (chiếm 16,27%), 212 người bằng tiền mặt (16,99%), 223 người dùng thẻ tín dụng (17,87%), 181 người dùng thẻ ghi nợ (14,50%), 221 người thanh toán qua PayPal (17,71%) và 208 người qua Venmo (16,67%), tổng cộng 1.248 người.

Trong nhóm nam, có 409 người thanh toán bằng chuyển khoản ngân hàng (chiếm 15,42%), 458 người bằng tiền mặt (17,27%), 448 người dùng thẻ tín dụng (16,89%), 455 người dùng thẻ ghi nợ (17,16%), 456 người thanh toán qua PayPal (17,19%) và 426 người qua Venmo (16,06%), tổng cộng 2.652 người.

3.6.2 Kiểm định chi bình phương

Giả thuyết:

H₀ :Gender và Payment Method độc lập với nhau.

H₁ :Gender và Payment Methoy không độc lập.

chisq.test(vd06)
## 
##  Pearson's Chi-squared test
## 
## data:  vd06
## X-squared = 4.8776, df = 5, p-value = 0.431

Kết quả cung cấp:

  • Giá trị Chi-bình phương (X²): 4.8776

  • Bậc tự do (df): 5

  • Giá trị p: p-value = 0.431

Qua kết quả kiểm định cho ta p−value = 0.431 > 0.05, không đủ cơ sở bác bỏ H0, đồng nghĩa với việc giới tính khách hàng và phương thức thanh toán không có mối quan hệ với nhau.

CHƯƠNG 4. MÔ HÌNH LOGISTIC

Phương trình tổng quát:

\[ \text{logit}(\pi) = \log\left(\frac{\pi}{1 - \pi}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k \]

Với π là xác suất để biến phụ thuộc nhận giá trị “thành công”. Đối với hàm glm phạm trù thứ hai của biến nhị phân thể hiện cho “thành công” (chúng ta sử dụng hàm levels() để kiểm tra thứ tự của các phạm trù của một biến định tính.

4.1 Hồi quy đơn với biến nhị phân

Bài toán đặt ra: Chọn ngẫu nhiên 1 khách hàng. Tính xác suất người đó là nữ.

logit <- glm(factor(Gender) ~ Previous.Purchases,family = binomial(link = "logit"),data = d)
summary(logit)
## 
## Call:
## glm(formula = factor(Gender) ~ Previous.Purchases, family = binomial(link = "logit"), 
##     data = d)
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        0.619745   0.068598   9.034   <2e-16 ***
## Previous.Purchases 0.005329   0.002380   2.239   0.0251 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4889.6  on 3899  degrees of freedom
## Residual deviance: 4884.6  on 3898  degrees of freedom
## AIC: 4888.6
## 
## Number of Fisher Scoring iterations: 4

Hàm hồi quy:

\[ \text{logit}(\pi) = \log\left(\frac{\pi}{1 - \pi}\right) = 0.619745 + 0.005329 \cdot \text{Previous Purchases} \]

Khi số lần mua hàng trước đó bằng 0, giá trị\[ z = \text{logit}(\pi) = \log\left(\frac{\pi}{1 - \pi}\right) \] là 0.6197. Điều này tương ứng với xác suất cơ bản khách hàng là nữ (Gender = 1) khi chưa từng mua hàng trước đó, với xác suất khoảng 65%.

Hệ số của biến Previous.Purchases là 0.0053, có ý nghĩa thống kê ở mức 5% (p = 0.0251). Điều này nghĩa là:

→ Mỗi lần mua hàng trước đó tăng thêm 1 sẽ làm log-odds (z) khách hàng là nữ tăng thêm 0.0053. Vì log-odds tăng, nên xác suất khách hàng là nữ cũng tăng theo.

Tuy nhiên, vì hệ số 0.0053 là khá nhỏ, nên mặc dù mối liên hệ có ý nghĩa thống kê, thì mức ảnh hưởng thực tế là rất yếu. Nói cách khác, những khách hàng có nhiều lần mua hàng trước đây có xu hướng là nữ cao hơn một chút, nhưng biến này không phải là yếu tố mạnh để phân biệt giới tính.

Từ mô hình logit ta suy ra được:

  • Nếu hồi quy đơn:

    \[ \pi = \frac{e^{\beta_0 + \beta_1 x_1}}{1 + e^{\beta_0 + \beta_1 x_1}} \]

  • Nếu hồi quy bội:

    \[ \pi = \frac{e^{\beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_k x_k}}{1 + e^{\beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_k x_k}} \]

4.2 Hồi quy bội với biến nhị phân

Bài toán: Kiểm tra xem các yếu tố như: Số lần mua hàng trước đó (Previous.Purchases), Việc sử dụng mã khuyến mãi (Promo.Code.Used), Loại sản phẩm (Category), Phương thức thanh toán (Payment.Method) có ảnh hưởng đến xác suất khách hàng là nữ giới hay không (Gender = “Female”).

d$Gender <- factor(d$Gender)
d$Promo.Code.Used <- as.factor(d$Promo.Code.Used)
d$Category <- as.factor(d$Category)
d$Payment.Method <- as.factor(d$Payment.Method)
logit2 <- glm(Gender ~ Previous.Purchases + Promo.Code.Used + Category + Payment.Method, family = binomial(link = "logit"), data = d)
summary(logit2)
## 
## Call:
## glm(formula = Gender ~ Previous.Purchases + Promo.Code.Used + 
##     Category + Payment.Method, family = binomial(link = "logit"), 
##     data = d)
## 
## Coefficients:
##                            Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                2.262444   0.161531  14.006   <2e-16 ***
## Previous.Purchases         0.005272   0.002504   2.105   0.0353 *  
## Promo.Code.UsedTRUE       -2.038148   0.117804 -17.301   <2e-16 ***
## CategoryClothing          -0.038272   0.084143  -0.455   0.6492    
## CategoryFootwear          -0.088124   0.111904  -0.788   0.4310    
## CategoryOuterwear          0.024318   0.141527   0.172   0.8636    
## Payment.MethodCash         0.044350   0.126005   0.352   0.7249    
## Payment.MethodCredit Card -0.031485   0.125323  -0.251   0.8016    
## Payment.MethodDebit Card   0.198377   0.129221   1.535   0.1247    
## Payment.MethodPayPal      -0.016186   0.125396  -0.129   0.8973    
## Payment.MethodVenmo        0.057166   0.126692   0.451   0.6518    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4889.6  on 3899  degrees of freedom
## Residual deviance: 4435.5  on 3889  degrees of freedom
## AIC: 4457.5
## 
## Number of Fisher Scoring iterations: 5
  1. Phương trình hồi quy logit (dạng LaTeX)
\[\begin{aligned} \log\left( \frac{\pi}{1 - \pi} \right) =\ & 2.3068 + 0.0053 \cdot \text{Previous.Purchases} - 2.0381 \cdot \text{Promo.Code.Used}_{\text{TRUE}} \\ & - 0.0383 \cdot \text{Category}_{\text{Clothing}} - 0.0881 \cdot \text{Category}_{\text{Footwear}} + 0.0243 \cdot \text{Category}_{\text{Outerwear}} \\ & - 0.0444 \cdot \text{Payment.Method}_{\text{Bank Transfer}} - 0.0758 \cdot \text{Payment.Method}_{\text{Credit Card}} + 0.1540 \cdot \text{Payment.Method}_{\text{Debit Card}} \\ & - 0.0605 \cdot \text{Payment.Method}_{\text{PayPal}} + 0.0128 \cdot \text{Payment.Method}_{\text{Venmo}} \end{aligned}\]

Trong đó:

π=P(Gender=Female) là xác suất khách hàng là nữ.

Nhóm tham chiếu:

Category = Accessories

Payment.Method = Cash

Promo.Code.Used = FALSE

Từ mô hình hồi quy logistic sử dụng liên kết logit, ta phân tích khả năng khách hàng là nữ dựa vào các biến độc lập: số lần mua hàng trước đó (Previous.Purchases), việc sử dụng mã khuyến mãi (Promo.Code.Used), danh mục sản phẩm (Category) và phương thức thanh toán (Payment.Method). Kết quả ước lượng cho thấy hệ số chặn là 2.3068, tương ứng với log-odds khi khách hàng chưa từng mua hàng, không dùng mã khuyến mãi, mua sản phẩm thuộc nhóm cơ sở (Accessories) và thanh toán bằng tiền mặt. Xác suất khách hàng là nữ trong trường hợp cơ sở này đạt mức cao (khoảng 90.9%).

Hệ số của biến Promo.Code.Used là −2.0381 và có ý nghĩa thống kê rất cao (p < 0.001), cho thấy việc sử dụng mã khuyến mãi làm giảm mạnh xác suất khách hàng là nữ. Điều này phản ánh rằng nam giới có xu hướng sử dụng mã khuyến mãi nhiều hơn nữ giới. Ngược lại, biến Previous.Purchases có hệ số dương 0.0053 và có ý nghĩa thống kê ở mức 5% (p = 0.0353), cho thấy số lần mua hàng trước đó càng nhiều thì xác suất khách hàng là nữ càng cao, mặc dù mức ảnh hưởng này là nhẹ do hệ số thấp.

Các biến liên quan đến danh mục sản phẩm (Category) và phương thức thanh toán (Payment.Method) đều không có ý nghĩa thống kê (p-value > 0.1), cho thấy giới tính khách hàng không bị ảnh hưởng rõ rệt bởi các yếu tố này trong mô hình hiện tại.

Tổng thể, mô hình đã chỉ ra rằng trong các yếu tố hành vi tiêu dùng được đưa vào phân tích, chỉ có việc sử dụng mã khuyến mãi và tần suất mua hàng trong quá khứ có liên quan đến giới tính khách hàng, trong đó hành vi sử dụng mã khuyến mãi là yếu tố phân biệt giới tính rõ nhất. Các yếu tố còn lại không mang lại giá trị phân loại đáng kể cho mô hình.

4.3 Hồi quy logistic đa thức

Bài toán: “Liệu giới tính có ảnh hưởng đến việc khách hàng chọn phương thức thanh toán nào (tiền mặt, thẻ tín dụng, ví điện tử, v.v.) không?”

#Đảm bảo biến Payment.Method là factor và chọn mức tham chiếu là "Cash"
d$Payment.Method <- relevel(factor(d$Payment.Method), ref = "Cash")  
library(nnet)
## Warning: package 'nnet' was built under R version 4.3.3
logit3 <- multinom(Payment.Method ~ Gender, data = d)
## # weights:  18 (10 variable)
## initial  value 6987.861930 
## iter  10 value 6982.768701
## final  value 6982.710850 
## converged
summary(logit3)
## Call:
## multinom(formula = Payment.Method ~ Gender, data = d)
## 
## Coefficients:
##               (Intercept)  GenderMale
## Bank Transfer -0.04337877 -0.06977507
## Credit Card    0.05058641 -0.07266315
## Debit Card    -0.15808824  0.15151612
## PayPal         0.04157636 -0.04595337
## Venmo         -0.01904758 -0.05338212
## 
## Std. Errors:
##               (Intercept) GenderMale
## Bank Transfer  0.09819923  0.1194633
## Credit Card    0.09592334  0.1166912
## Debit Card     0.10120200  0.1209258
## PayPal         0.09613467  0.1166973
## Venmo          0.09759445  0.1185559
## 
## Residual Deviance: 13965.42 
## AIC: 13985.42

Dạng tổng quát của mô hình như sau:

\[ \log\left( \frac{P(y = j)}{P(y = \text{Cash})} \right) = \beta_{0j} + \beta_{1j} \cdot \text{GenderMale} \]

Với mỗi phương thức thanh toán (trừ tiền mặt), hệ số GenderMale cho biết ảnh hưởng của giới tính nam (so với nữ). Duy nhất “Debit Card” có hệ số dương (0.1515) → Nam có xác suất chọn phương thức này cao hơn nữ, khi so với tiền mặt. Các phương thức còn lại đều có hệ số âm → Nam ít có xu hướng chọn các phương thức này hơn nữ, khi so với tiền mặt. Tuy nhiên, cần kiểm tra ý nghĩa thống kê của các hệ số. Ở đây, hệ số GenderMale của Debit Card có giá trị dương và khá rõ.

Dựa trên mô hình hồi quy logistic đa thức, ta thấy rằng giới tính có ảnh hưởng nhất định đến lựa chọn phương thức thanh toán của khách hàng:

  • Với phương thức Debit Card, khách hàng nam có xác suất chọn cao hơn so với nữ (so với nhóm tham chiếu là tiền mặt).
  • Đối với các phương thức khác như Bank Transfer, Credit Card, PayPalVenmo, nam có xác suất chọn thấp hơn nữ.
  • Tuy nhiên, mức độ ảnh hưởng không lớn, và cần xem xét kỹ ý nghĩa thống kê để xác định yếu tố nào thật sự có tác động đáng kể.

=> Như vậy, giới tính có ảnh hưởng nhưng không phải là yếu tố quyết định mạnh mẽ trong lựa chọn phương thức thanh toán.

CHƯƠNG 5. HỒI QUY PROBIT

Hồi quy Probit là một mô hình thống kê dùng để dự đoán xác suất của một biến phụ thuộc nhị phân (ví dụ: Có/Không, Nam/Nữ…) dựa trên các biến độc lập. Mô hình sử dụng hàm phân phối chuẩn tích lũy (CDF) làm hàm liên kết (link function) để mô hình hóa xác suất xảy ra sự kiện.

So sánh với hồi quy Logistic

Nội dung Hồi quy Logistic Hồi quy Probit
Hàm liên kết Logit: log(p / (1 - p)) Chuẩn tích lũy: Φ(x)
Phân phối sai số Logistic Chuẩn chuẩn hóa N(0,1)
Diễn giải hệ số Theo odds ratio Theo z-score chuẩn hóa
Phổ biến Phổ biến rộng rãi Phổ biến trong kinh tế lượng

5.1 Hồi quy đơn với biến nhị phân

Bài toán: kiểm tra xem số lần mua hàng trước đó (Previous.Purchases) có ảnh hưởng đến xác suất khách hàng thuộc giới tính nào (biến Gender).

probit <- glm(factor(Gender) ~ Previous.Purchases, family = binomial(link = "probit"), data = d)
summary(probit)
## 
## Call:
## glm(formula = factor(Gender) ~ Previous.Purchases, family = binomial(link = "probit"), 
##     data = d)
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        0.386197   0.041931   9.210   <2e-16 ***
## Previous.Purchases 0.003235   0.001447   2.235   0.0254 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4889.6  on 3899  degrees of freedom
## Residual deviance: 4884.6  on 3898  degrees of freedom
## AIC: 4888.6
## 
## Number of Fisher Scoring iterations: 4

Hàm hồi quy Probit:

\[ \Phi^{-1}(\pi) = 0.3862 + 0.0032 \cdot \text{Previous Purchases} \] Khi số lần mua hàng trước đó bằng 0, giá trị \[ z = \Phi^{-1}(\pi) \] là 0.3862. Điều này tương ứng với xác suất cơ bản khách hàng là nữ (Gender = 1) khi chưa từng mua hàng trước đó, với xác suất gần 65% (vì Φ(0.3862) ≈ 0.65).

Hệ số của biến Previous.Purchases là 0.0032, có ý nghĩa thống kê ở mức 5% (p = 0.0254). Điều này nghĩa là: → Mỗi lần mua hàng trước tăng thêm 1, sẽ làm xác suất khách hàng là nữ tăng nhẹ, do tăng giá trị z của phân phối chuẩn.

Tuy nhiên, vì hệ số 0.0032 là rất nhỏ, nên mặc dù mối liên hệ là có ý nghĩa thống kê, thì mức ảnh hưởng thực tế là yếu. Khách hàng từng mua hàng nhiều lần có xu hướng là nữ cao hơn một chút, nhưng yếu tố này chưa đủ mạnh để phân biệt giới tính rõ ràng.

5.2 Hồi quy bội với biến nhị phân

probit2 <- glm(Gender ~ Previous.Purchases + Promo.Code.Used + Category + Payment.Method,family = binomial(link = "probit"), data = d)
summary(probit2)
## 
## Call:
## glm(formula = Gender ~ Previous.Purchases + Promo.Code.Used + 
##     Category + Payment.Method, family = binomial(link = "probit"), 
##     data = d)
## 
## Coefficients:
##                              Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  1.330419   0.088610  15.014   <2e-16 ***
## Previous.Purchases           0.003149   0.001513   2.082   0.0374 *  
## Promo.Code.UsedTRUE         -1.156957   0.060386 -19.159   <2e-16 ***
## CategoryClothing            -0.020951   0.050838  -0.412   0.6803    
## CategoryFootwear            -0.062969   0.067640  -0.931   0.3519    
## CategoryOuterwear            0.012499   0.085411   0.146   0.8837    
## Payment.MethodBank Transfer -0.026937   0.076218  -0.353   0.7238    
## Payment.MethodCredit Card   -0.050135   0.074474  -0.673   0.5008    
## Payment.MethodDebit Card     0.085921   0.076464   1.124   0.2612    
## Payment.MethodPayPal        -0.038180   0.074453  -0.513   0.6081    
## Payment.MethodVenmo          0.009029   0.075432   0.120   0.9047    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4889.6  on 3899  degrees of freedom
## Residual deviance: 4435.7  on 3889  degrees of freedom
## AIC: 4457.7
## 
## Number of Fisher Scoring iterations: 5

Mô hình hồi quy được xây dựng với liên kết chuẩn (probit), cho ta phương trình:

\[\begin{aligned} \Phi^{-1}(\pi) =\ & 1.3304 + 0.0031 \cdot \text{Previous.Purchases} - 1.1570 \cdot \text{Promo.Code.Used}_{\text{TRUE}} \\ & - 0.0210 \cdot \text{Category}_{\text{Clothing}} - 0.0630 \cdot \text{Category}_{\text{Footwear}} + 0.0125 \cdot \text{Category}_{\text{Outerwear}} \\ & - 0.0269 \cdot \text{Payment.Method}_{\text{Bank Transfer}} - 0.0501 \cdot \text{Payment.Method}_{\text{Credit Card}} + 0.0859 \cdot \text{Payment.Method}_{\text{Debit Card}} \\ & - 0.0382 \cdot \text{Payment.Method}_{\text{PayPal}} + 0.0090 \cdot \text{Payment.Method}_{\text{Venmo}} \end{aligned}\]

Mô hình hồi quy probit được sử dụng nhằm xác định các yếu tố ảnh hưởng đến xác suất một khách hàng là nữ. Kết quả ước lượng cho thấy hệ số chặn là 1.3304, tương ứng với giá trị 𝑧=Φ−1(𝜋)trong điều kiện khách hàng chưa từng mua hàng, không dùng mã khuyến mãi, chọn danh mục sản phẩm Accessories và thanh toán bằng tiền mặt. Giá trị này tương ứng với xác suất cơ bản là nữ khá cao, gần 91%.

Biến Promo.Code.Used có hệ số âm lớn (–1.1570) và có ý nghĩa thống kê rất cao (p < 0.001), cho thấy việc sử dụng mã khuyến mãi làm giảm đáng kể xác suất khách hàng là nữ. Điều này chỉ ra rằng nam giới có xu hướng dùng mã khuyến mãi nhiều hơn nữ giới.

Biến Previous.Purchases có hệ số dương nhẹ (0.0031) và có ý nghĩa thống kê ở mức 5% (p = 0.0374), cho thấy số lần mua hàng trước đó càng nhiều thì khả năng khách hàng là nữ tăng lên. Tuy nhiên, mức độ ảnh hưởng này không lớn do hệ số thấp.

Các biến còn lại bao gồm danh mục sản phẩm (Category) và phương thức thanh toán (Payment.Method) đều không có ý nghĩa thống kê (p-value > 0.1). Điều đó cho thấy các yếu tố này không đóng vai trò rõ rệt trong việc phân biệt giới tính khách hàng trong dữ liệu hiện có.

Tổng thể, mô hình probit cho thấy xác suất khách hàng là nữ chịu ảnh hưởng chủ yếu từ hành vi sử dụng mã khuyến mãi và mức độ thường xuyên mua sắm. Trong đó, hành vi dùng mã khuyến mãi là yếu tố quan trọng nhất giúp phân biệt giới tính. Các yếu tố còn lại không có giá trị giải thích đáng kể đối với biến phụ thuộc.

CHƯƠNG 6. HỒI QUY CLOGLOG

Hồi quy Cloglog (viết tắt của Complementary log-log) là một mô hình hồi quy nhị phân giống như logit và probit, được sử dụng khi biến phụ thuộc là biến định tính có hai giá trị (ví dụ: nam/nữ, có/không, thành công/thất bại,…).

Điểm khác biệt chính là ở hàm liên kết (link function). Trong khi logit và probit là đối xứng, thì cloglog là bất đối xứng, phù hợp khi xác suất xảy ra của biến phụ thuộc rất thấp hoặc rất cao (gần 0 hoặc gần 1).

Phương trình tổng quát:

\[ \text{cloglog}(\pi) = \log(-\log(1 - \pi)) = \beta_0 + \beta_1 x \]

6.1 Hồi quy bội với biến nhị phân

Bài toán: Số lần mua hàng trước đó (Previous.Purchases) có ảnh hưởng đến xác suất khách hàng là nữ (Gender = 1) hay không?

cloglog <- glm(factor(Gender) ~ Previous.Purchases, family = binomial(link = "cloglog"),data = d)
summary(cloglog)
## 
## Call:
## glm(formula = factor(Gender) ~ Previous.Purchases, family = binomial(link = "cloglog"), 
##     data = d)
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)  
## (Intercept)        0.050730   0.041668   1.217   0.2234  
## Previous.Purchases 0.003153   0.001419   2.222   0.0263 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4889.6  on 3899  degrees of freedom
## Residual deviance: 4884.6  on 3898  degrees of freedom
## AIC: 4888.6
## 
## Number of Fisher Scoring iterations: 4

Hmaf hồi quy Cloglog

\[ \text{cloglog}(\pi) = \log(-\log(1 - \pi)) = 0.0507 + 0.0032 \cdot \text{Previous.Purchases} \]

Khi số lần mua hàng trước đó bằng 0, ta có:\[ z = \text{cloglog}(\pi) = 0.0507 \] Suy ra xác suất khách hàng là nữ (Gender = 1) ở mức cơ bản là: pi = 1 - exp(-exp(0.0507)) ≈ 0.65 → Nghĩa là: khi khách hàng chưa từng mua hàng trước đó, xác suất là nữ vào khoảng 65%.

Hệ số của biến Previous.Purchases là 0.0032 → Khi số lần mua hàng tăng thêm 1, giá trị z=cloglog(π) cũng tăng thêm 0.0032, kéo theo xác suất khách hàng là nữ tăng nhẹ.

Giá trị p = 0.0263 (< 5%), nên biến Previous.Purchases có ý nghĩa thống kê, tức là có mối liên hệ có thật giữa tần suất mua hàng và giới tính khách hàng.

6.2 Hồi quy bội với biến nhị phân

cloglog2 <- glm(Gender ~ Previous.Purchases + Promo.Code.Used + Category + Payment.Method,family = binomial(link = "cloglog"), data = d)
summary(cloglog2)
## 
## Call:
## glm(formula = Gender ~ Previous.Purchases + Promo.Code.Used + 
##     Category + Payment.Method, family = binomial(link = "cloglog"), 
##     data = d)
## 
## Coefficients:
##                              Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  0.865074   0.079679  10.857   <2e-16 ***
## Previous.Purchases           0.002999   0.001491   2.012   0.0443 *  
## Promo.Code.UsedTRUE         -1.026006   0.048281 -21.251   <2e-16 ***
## CategoryClothing            -0.016528   0.049939  -0.331   0.7407    
## CategoryFootwear            -0.080008   0.067086  -1.193   0.2330    
## CategoryOuterwear            0.009105   0.083665   0.109   0.9133    
## Payment.MethodBank Transfer -0.026845   0.075211  -0.357   0.7211    
## Payment.MethodCredit Card   -0.057889   0.073517  -0.787   0.4310    
## Payment.MethodDebit Card     0.070359   0.074153   0.949   0.3427    
## Payment.MethodPayPal        -0.039289   0.073288  -0.536   0.5919    
## Payment.MethodVenmo          0.011334   0.074399   0.152   0.8789    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4889.6  on 3899  degrees of freedom
## Residual deviance: 4436.0  on 3889  degrees of freedom
## AIC: 4458
## 
## Number of Fisher Scoring iterations: 5

Hàm liên kết Cloglog được định nghĩa là:

\[\begin{aligned} \log\left( -\log(1 - \pi) \right) =\ & 0.8651 + 0.0030 \cdot \text{Previous.Purchases} - 1.0260 \cdot \text{Promo.Code.Used}_{\text{TRUE}} \\ & - 0.0165 \cdot \text{Category}_{\text{Clothing}} - 0.0800 \cdot \text{Category}_{\text{Footwear}} + 0.0091 \cdot \text{Category}_{\text{Outerwear}} \\ & - 0.0268 \cdot \text{Payment.Method}_{\text{Bank Transfer}} - 0.0579 \cdot \text{Payment.Method}_{\text{Credit Card}} + 0.0704 \cdot \text{Payment.Method}_{\text{Debit Card}} \\ & - 0.0393 \cdot \text{Payment.Method}_{\text{PayPal}} + 0.0113 \cdot \text{Payment.Method}_{\text{Venmo}} \end{aligned}\]

Với nhóm tham chiếu: – Promo.Code.Used = FALSE – Category = Accessories – Payment.Method = Cash

Mô hình hồi quy sử dụng hàm liên kết Cloglog cho phép ước lượng xác suất khách hàng là nữ theo hướng phi đối xứng, phù hợp với trường hợp xác suất gần cận 0 hoặc 1. Kết quả ước lượng cho thấy hệ số chặn là 0.8651, ứng với điều kiện khách hàng chưa từng mua hàng, không dùng mã khuyến mãi, mua nhóm sản phẩm Accessories và thanh toán bằng tiền mặt. Điều này cho thấy trong điều kiện cơ bản, xác suất khách hàng là nữ đã ở mức khá cao.

Biến Promo.Code.Used có hệ số âm lớn (–1.0260), có ý nghĩa thống kê rất cao (p < 0.001), cho thấy việc sử dụng mã khuyến mãi làm giảm rõ rệt khả năng khách hàng là nữ. Đây là biến có ảnh hưởng mạnh nhất trong mô hình và đóng vai trò phân biệt giới tính rõ ràng.

Biến Previous.Purchases có hệ số dương (0.0030), có ý nghĩa thống kê ở mức 5% (p = 0.0443), cho thấy khách hàng từng mua sắm nhiều lần trong quá khứ có xác suất là nữ cao hơn. Tuy nhiên, hệ số nhỏ cho thấy mức độ ảnh hưởng là khiêm tốn.

Các biến còn lại như danh mục sản phẩm (Category) và phương thức thanh toán (Payment.Method) đều không có ý nghĩa thống kê (p > 0.1). Điều này cho thấy các yếu tố này không góp phần đáng kể trong việc phân biệt giới tính khách hàng trong tập dữ liệu hiện tại.

Tổng thể, mô hình Cloglog xác nhận rằng xác suất khách hàng là nữ chủ yếu bị ảnh hưởng bởi việc sử dụng mã khuyến mãi (ảnh hưởng âm rõ rệt) và tần suất mua hàng trước đó (ảnh hưởng dương nhẹ). Các yếu tố còn lại không cho thấy giá trị giải thích rõ ràng đối với biến phụ thuộc.