Bộ tài chính
Trường Đại học Tài chính - Marketing
Khoa: Khoa học dữ liệu
Tiểu luận môn học: Phân tích dữ liệu định tính
Chuyên ngành: Tài chính định lượng
Giảng viên hướng dẫn: ThS. Trần Mạnh Tường
Sinh viên thực hiện: Vương Như Thủy
MSSV: 2221000329
Thành phố Hồ Chí Minh, tháng 7 năm 2025
Trong bối cảnh ngày càng gia tăng nhận thức về bảo vệ môi trường và lối sống xanh, việc sử dụng xe đạp không chỉ là phương tiện di chuyển mà còn thể hiện lối sống lành mạnh và tiết kiệm. Các doanh nghiệp bán lẻ xe đạp ngày nay đang tìm cách thấu hiểu hành vi tiêu dùng để tối ưu hóa chiến lược tiếp thị và bán hàng. Do đó, việc nghiên cứu và dự báo khả năng mua xe đạp của khách hàng dựa trên đặc điểm nhân khẩu học và hành vi là một hướng đi thực tiễn và cấp thiết.
Trong thời đại dữ liệu lớn, việc ứng dụng các mô hình phân tích như hồi quy logistic vào lĩnh vực marketing ngày càng phổ biến. Mô hình hồi quy logistic không chỉ giúp ước lượng xác suất khách hàng có khả năng mua hàng mà còn cho phép đánh giá mức độ ảnh hưởng của từng yếu tố đến hành vi mua sắm. Điều này giúp doanh nghiệp đưa ra quyết định dựa trên dữ liệu thay vì cảm tính.
Do đó, đề tài “Ứng dụng hồi quy logistic trong dự báo quyết định mua xe đạp của khách hàng” được lựa chọn nhằm khai thác sức mạnh của phân tích dữ liệu định tính và định lượng, từ đó đưa ra dự báo hành vi khách hàng một cách khoa học và có cơ sở thực tiễn.
Mục tiêu chính của đề tài là xây dựng mô hình dự báo hành vi mua xe đạp của khách hàng dựa trên đặc điểm nhân khẩu học, từ đó so sánh ba mô hình hồi quy nhị phân và lựa chọn mô hình phù hợp nhất. Cụ thể:
Mô tả đặc điểm khách hàng thông qua các biến định tính và định lượng như khu vực sinh sống, khoảng cách đi lại, trình độ học vấn, tình trạng hôn nhân, số con, số ô tô, độ tuổi và thu nhập.
Ước lượng ba mô hình hồi quy nhị phân: logit, probit và cloglog.
Đánh giá, so sánh hiệu quả các mô hình qua các tiêu chí AIC, BIC, Pseudo R2, ROC và AUC.
Rút ra mô hình dự báo tốt nhất và phân tích chi tiết kết quả từ mô hình đó.
Những yếu tố nào ảnh hưởng nhiều nhất đến hành vi mua xe đạp của khách hàng?
Trong ba mô hình logit, probit và cloglog, mô hình nào là phù hợp nhất để dự báo hành vi tiêu dùng này?
Kết quả phân tích có thể hỗ trợ doanh nghiệp như thế nào trong chiến lược marketing và bán hàng?
Đề tài sử dụng bộ dữ liệu khảo sát 1000 khách hàng được thu thập từ trang Kaggle, trong đó mỗi khách hàng được ghi nhận các thông tin nhân khẩu học và hành vi tiêu dùng. Biến phụ thuộc là purchased_bike (có mua/không mua), các biến độc lập bao gồm:
Các biến định tính: region (khu vực), commute (khoảng cách), edu (trình độ học vấn), marital (hôn nhân).
Các biến định lượng: children (số con), cars (số ô tô), age (tuổi), income (thu nhập).
Phân tích dữ liệu và ước lượng mô hình được thực hiện hoàn toàn bằng phần mềm R. Nội dung giới hạn trong phạm vi mô hình hồi quy nhị phân, không mở rộng sang các mô hình phức tạp khác.
Nghiên cứu tiến hành thống kê mô tả dữ liệu để phân tích sơ bộ, sau đó thực hiện ước lượng ba mô hình hồi quy nhị phân: logit, probit, cloglog. Việc đánh giá mô hình dựa trên các chỉ số hiệu quả như AIC, BIC, Pseudo R2. Cuối cùng, hiệu suất dự báo được kiểm tra bằng đường cong ROC và giá trị AUC trên cả tập huấn luyện và tập kiểm tra.
Chương 1. Giới thiệu - Trình bày lý do, mục tiêu, câu hỏi, đối tượng, phạm vi và phương pháp nghiên cứu.
Chương 2. Cơ sở lý thuyết - Giới thiệu các khái niệm về hành vi tiêu dùng và các lý thuyết liên quan đến biến định tính.
Chương 3. Phương pháp nghiên cứu - Mô tả chi tiết dữ liệu, các biến, mô hình nghiên cứu và quy trình phân tích dữ liệu trong R.
Chương 4. Kết quả nghiên cứu và Thảo luận - Trình bày các kết quả phân tích thống kê, kết quả của các mô hình hồi quy, và thảo luận ý nghĩa.
Chương 5. Kết luận và Khuyến nghị - Tóm tắt các kết luận chính của nghiên cứu và đưa ra các khuyến nghị thực tiễn cũng như các hướng nghiên cứu tiếp theo.
Hành vi tiêu dùng là tổng hợp các hoạt động, suy nghĩ, cảm nhận và quyết định của cá nhân hoặc tổ chức liên quan đến việc lựa chọn, mua sắm, sử dụng và xử lý sản phẩm hoặc dịch vụ nhằm đáp ứng nhu cầu. Trong lĩnh vực marketing, việc nghiên cứu hành vi tiêu dùng giúp doanh nghiệp hiểu rõ động cơ, thái độ và các yếu tố ảnh hưởng đến hành vi mua sắm, từ đó xây dựng chiến lược phù hợp.
Quyết định mua một sản phẩm chịu ảnh hưởng từ nhiều yếu tố, trong đó có thể phân chia thành:
Yếu tố cá nhân: bao gồm độ tuổi, giới tính, thu nhập, nghề nghiệp, trình độ học vấn, tình trạng hôn nhân, số con trong gia đình, phương tiện sở hữu (xe, ô tô,…). Những yếu tố này ảnh hưởng trực tiếp đến khả năng chi trả, nhu cầu và mức độ ưu tiên của mỗi người tiêu dùng.
Yếu tố tâm lý: gồm nhận thức, động cơ, thái độ và kinh nghiệm. Ví dụ, người từng sử dụng xe đạp có thể có khuynh hướng mua xe đạp cao hơn so với người chưa từng sử dụng.
Yếu tố xã hội: như ảnh hưởng từ gia đình, bạn bè, văn hóa vùng miền. Ví dụ, khu vực có thói quen di chuyển bằng xe đạp sẽ thúc đẩy hành vi mua xe đạp nhiều hơn.
Yếu tố môi trường và khoảng cách: khoảng cách đến nơi học tập/làm việc, hạ tầng giao thông, khí hậu có thể tác động đến nhu cầu sử dụng xe đạp.
Mua sắm phương tiện cá nhân như xe đạp không chỉ là một hành vi tiêu dùng thông thường mà còn chịu ảnh hưởng bởi yếu tố tiện ích và môi trường sống. Lý thuyết về “hành vi tiêu dùng hợp lý” (Rational Choice Theory) cho rằng người tiêu dùng sẽ cân nhắc chi phí - lợi ích của sản phẩm để ra quyết định. Khi đó, yếu tố như khoảng cách đi lại, sở hữu ô tô, thu nhập, độ tuổi,… sẽ ảnh hưởng đến việc lựa chọn phương tiện.
Theo mô hình TAM (Technology Acceptance Model), quyết định sử dụng một sản phẩm công nghệ/phương tiện còn phụ thuộc vào cảm nhận về tính hữu dụng và tính dễ sử dụng. Trong trường hợp xe đạp, nếu người tiêu dùng cảm nhận rằng xe đạp giúp di chuyển tiện lợi, thân thiện với môi trường và dễ bảo trì, thì khả năng mua xe đạp sẽ tăng lên.
Việc nghiên cứu hành vi mua xe đạp không chỉ giúp doanh nghiệp nắm bắt nhu cầu của thị trường mà còn góp phần thúc đẩy phát triển giao thông bền vững. Trong bối cảnh đô thị hóa và ô nhiễm môi trường gia tăng, khuyến khích người dân sử dụng xe đạp sẽ góp phần giảm thiểu phát thải khí nhà kính và cải thiện chất lượng cuộc sống.
Kết quả nghiên cứu hành vi mua xe đạp còn hỗ trợ các nhà hoạch định chính sách xây dựng hệ thống hạ tầng phù hợp (như làn đường xe đạp, khu vực gửi xe) nhằm khuyến khích người dân sử dụng phương tiện thân thiện với môi trường.
Trong thống kê, một biến định tính là một biến mà các giá trị của nó đại diện cho các danh mục hoặc nhóm khác nhau, thay vì các giá trị số có ý nghĩa định lượng (Agresti, 2013). Các giá trị này thường được gọi là “levels” hoặc “categories”. Biến định tính không đo lường “bao nhiêu” mà đo lường “loại gì” hoặc “nhóm nào”.
Đặc điểm nổi bật của biến định tính:
Các giá trị là tên hoặc nhãn của các danh mục, không phải số lượng.
Không thể thực hiện các phép tính toán học trực tiếp (cộng, trừ, nhân, chia) trên các danh mục này. Ví dụ, không thể cộng “Nam” và “Nữ”.
Phân loại các quan sát vào các nhóm riêng biệt và không chồng chéo.
Sự khác biệt cơ bản giữa biến định tính và biến định lượng nằm ở bản chất của dữ liệu mà chúng biểu thị, và do đó, quyết định các phương pháp phân tích thống kê phù hợp (Field, 2018):
Bảng 2.1: So sánh biến định tính và biến định lượng
| Đặc điểm | Biến định tính (Categorical/Qualitative) | Biến định lượng (Quantitative/Numerical) |
|---|---|---|
| Bản chất | Biểu thị các danh mục, nhóm, thuộc tính. | Biểu thị số lượng, độ lớn, đo lường được bằng số. |
| Ý nghĩa giá trị | Tên, nhãn, phân loại. | Giá trị số có ý nghĩa toán học (thứ tự, khoảng cách, tỷ lệ). |
| Phép toán | Không thể thực hiện các phép toán số học cơ bản (cộng, trừ, nhân, chia) trực tiếp trên giá trị của chúng. | Có thể thực hiện các phép toán số học cơ bản. |
| Ví dụ | Giới tính, màu sắc yêu thích, tình trạng hôn nhân, loại sản phẩm. | Chiều cao, cân nặng, doanh thu, số lượng sản phẩm bán được, nhiệt độ. |
| Phân loại | Danh nghĩa (Nominal), Thứ tự (Ordinal). | Khoảng (Interval), Tỷ lệ (Ratio). |
Sự phân biệt này rất quan trọng trong phân tích thống kê vì nó quyết định các phương pháp phân tích phù hợp.
Biến định tính được ứng dụng rộng rãi trong nhiều lĩnh vực:
Nghiên cứu thị trường: Phân loại khách hàng theo vùng miền, giới tính, tình trạng hôn nhân, trình độ học vấn để phân khúc thị trường và xây dựng chiến lược marketing mục tiêu.
Y tế: Phân loại bệnh nhân theo nhóm máu, tình trạng bệnh (có/không), loại điều trị.
Khoa học xã hội: Phân loại dân số theo dân tộc, tôn giáo, nghề nghiệp, quan điểm chính trị.
Ví dụ: Trong nghiên cứu này, các biến như khu vực (region), khoảng cách tới chỗ học (commute), trình độ học vấn (edu) và tình trạng hôn nhân (marital) đều là các biến định tính, được sử dụng để phân loại và hiểu các đặc điểm của khách hàng ảnh hưởng đến hành vi mua xe đạp.
Đây là thang đo cơ bản nhất, chỉ dùng để gán nhãn hoặc phân loại các đối tượng vào các danh mục không có thứ tự hoặc xếp hạng tự nhiên. Các số được sử dụng để đại diện cho các danh mục chỉ mang tính chất định danh, không có ý nghĩa về độ lớn hay thứ tự.
Ví dụ:
region (khu vực): “Châu Âu”, “Thái Bình Dương”, “Bắc Mỹ”. Không có khu vực nào “lớn hơn” hay “tốt hơn” khu vực nào theo thang đo này, chúng chỉ là các danh mục phân biệt.
marital (tình trạng hôn nhân): “Độc thân”, “Đã kết hôn”. Đây là các danh mục không có thứ tự tự nhiên.
Thang đo này không chỉ gán nhãn mà còn cho phép xếp hạng hoặc sắp xếp thứ tự các danh mục theo một trình tự tự nhiên (ví dụ: tốt hơn, lớn hơn, nhiều hơn). Tuy nhiên, khoảng cách giữa các danh mục không nhất thiết phải bằng nhau hoặc có ý nghĩa định lượng.
Ví dụ:
commute (khoảng cách tới chỗ học): “Gần”, “Trung bình”, “Xa”. Có một thứ tự rõ ràng về khoảng cách, nhưng chúng ta không biết chính xác “xa” hơn “trung bình” bao nhiêu lần so với “trung bình” hơn “gần”.
edu (trình độ học vấn): “Trung học trở xuống”, “Đại học”, “Sau đại học”. Có một thứ tự về mức độ học vấn, nhưng khoảng cách giáo dục giữa “Trung học trở xuống” và “Đại học” không nhất thiết bằng khoảng cách giữa “Đại học” và “Sau đại học”.
Xác suất biên của một biến cố là xác suất mà biến cố đó xảy ra mà không xét đến các biến cố khác. Nó được tính bằng tổng các xác suất đồng thời trong một hàng hoặc một cột của bảng tần số.
Ví dụ: Xác suất một khách hàng bất kỳ mua xe đạp (\(P(\text{purchased_bike = Có})\)) hoặc xác suất một khách hàng bất kỳ sống ở Châu Âu (\(P(\text{region = Châu Âu})\)).
Xác suất đồng thời của hai hay nhiều biến cố là xác suất mà tất cả các biến cố đó cùng xảy ra tại một thời điểm. Nó cho biết khả năng xảy ra một tổ hợp cụ thể của các danh mục từ nhiều biến.
Ví dụ: Xác suất một khách hàng vừa độc thân VÀ mua xe đạp (\(P(\text{marital = Độc thân AND purchased_bike = Có})\)).
Xác suất có điều kiện của biến cố A khi biết biến cố B đã xảy ra là xác suất của A dưới điều kiện của B. Nó được tính bằng tỷ số giữa xác suất đồng thời của A và B, và xác suất biên của B.
\[P(A|B) = \frac{P(A \text{ and } B)}{P(B)}\]
Ví dụ: Xác suất một khách hàng mua xe đạp NẾU biết rằng họ sống ở Châu Âu (\(P(\text{purchased_bike = Có } | \text{ region = Châu Âu})\)). Khái niệm này là nền tảng cho việc hiểu Relative Risk và Odds Ratio trong phân tích dữ liệu định tính và hồi quy Logistic.
Kiểm định Chi bình phương (\(\chi^2\)) là một kiểm định phi tham số được sử dụng để kiểm tra tính độc lập giữa hai biến định tính (Pearson, 1900). Nó đánh giá xem liệu có mối liên hệ ý nghĩa thống kê giữa hai biến phân loại hay không, bằng cách so sánh tần số quan sát được trong dữ liệu với tần số kỳ vọng nếu hai biến hoàn toàn độc lập với nhau.
Giả thuyết:
Giả thuyết không (\(H_0\)): Hai biến độc lập với nhau (không có mối liên hệ thống kê).
Giả thuyết đối (\(H_1\)): Hai biến có mối liên hệ thống kê (phụ thuộc vào nhau).
Công thức tổng quát:
\[\chi^2 = \sum \frac{(O_i - E_i)^2}{E_i}\]
Trong đó:
\(O_i\) là tần số quan sát được
\(E_i\) là tần số kỳ vọng.
Nếu giá trị \(p_{value}\) của kiểm định nhỏ hơn mức ý nghĩa \(\alpha\) (thường là 0.05), chúng ta bác bỏ \(H_0\) và kết luận rằng có mối liên hệ đáng kể giữa hai biến. Ngược lại, nếu \(p_{value}\) lớn hơn \(\alpha\), không có đủ bằng chứng để bác bỏ \(H_0\). McHugh (2013) đã tóm tắt chi tiết về ứng dụng và diễn giải của kiểm định \(\chi^2\), nhấn mạnh tầm quan trọng của nó trong việc xác định các mối quan hệ giữa các biến phân loại.
Trong nghiên cứu này, mô hình hồi quy nhị phân được sử dụng để dự báo
xác suất khách hàng mua xe đạp dựa trên đặc điểm cá nhân và môi trường
sống. Biến phụ thuộc là purchased_bike (1: có mua xe đạp,
0: không mua). Các biến độc lập gồm:
region: khu vực sinh sống (Châu Âu, Bắc Mỹ, Thái
Bình Dương)
edu: trình độ học vấn (Trung học trở xuống, Đại học,
Sau đại học)
commute: khoảng cách đi lại (Gần, Trung bình,
Xa)
marital: tình trạng hôn nhân (Độc thân, Đã kết
hôn)
children: số con
cars: số ô tô sở hữu
age: độ tuổi
income: thu nhập
Công thức mô hình:
\[ \text{logit}(P(\text{purchased_bike} = 1)) = \beta_0 + \beta_1 \cdot \text{region}_{1} + \beta_2 \cdot \text{region}_{2} + \beta_3 \cdot \text{edu}_{1} + \beta_4 \cdot \text{edu}_{2} + \beta_5 \cdot \text{commute}_{1} + \beta_6 \cdot \text{commute}_{2} + \beta_7 \cdot \text{marital} + \beta_8 \cdot \text{children} + \beta_9 \cdot \text{cars} + \beta_{10} \cdot \text{age} + \beta_{11} \cdot \text{income} \]
Mô hình hồi quy Logistic (còn gọi là Logit model) là mô hình phổ biến nhất được sử dụng khi biến phụ thuộc là nhị phân (Hosmer et al., 2013). Mô hình này sử dụng hàm liên kết Logit (logarithm of the odds), biến đổi xác suất \(p\) của một sự kiện thành một giá trị có thể nằm trong khoảng \((-\infty, +\infty)\), phù hợp để mô hình hóa mối quan hệ tuyến tính với các biến độc lập.
Hàm liên kết Logit:
\[ \text{logit}(p) = \ln\left(\frac{p}{1-p}\right) \]
Dạng tổng quát của mô hình:
\[ \ln\left(\frac{p_i}{1-p_i}\right) = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \dots + \beta_k X_{ki} \]
Chuyển đổi về xác suất:
\[ p_i = \frac{1}{1 + e^{-(\beta_0 + \beta_1 X_{1i} + \dots + \beta_k X_{ki})}} \]
Các hệ số \(\beta\) trong mô hình Logit được diễn giải hiệu quả nhất thông qua Odds Ratio (OR) là giá trị \(e^{\beta}\). OR cho biết tỷ lệ thay đổi của odds xảy ra sự kiện khi biến độc lập tương ứng tăng thêm một đơn vị, giữ nguyên các yếu tố khác. Mô hình Logit được ưa chuộng nhờ khả năng diễn giải trực quan thông qua Odds Ratio và sự phổ biến rộng rãi trong nhiều lĩnh vực (Hair et al., 2010).
Mô hình Probit là một lựa chọn thay thế cho mô hình Logit, sử dụng hàm phân phối chuẩn tích lũy nghịch đảo làm hàm liên kết. Mô hình này giả định rằng có một biến tiềm ẩn liên tục nằm dưới ngưỡng quyết định, và biến tiềm ẩn này tuân theo phân phối chuẩn.
\[\Phi^{-1}(p_i) = \beta_0 + \beta_1 X_{1i} + \dots + \beta_k X_{ki}\]
Cả Logit và Probit thường cho kết quả tương tự nhau, nhưng diễn giải hệ số Probit phức tạp hơn Logit (Wooldridge, 2010).
Mô hình Cloglog sử dụng hàm liên kết log-log bổ sung. Mô hình này thích hợp khi sự kiện có tính bất đối xứng trong xác suất, đặc biệt khi tỷ lệ xảy ra sự kiện là cực kỳ nhỏ hoặc cực kỳ lớn (Cameron & Trivedi, 2005).
Dạng tổng quát của mô hình Cloglog được trình bày như sau:
\[ \ln\left(-\ln(1 - p_i)\right) = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \cdots + \beta_k X_{ki} \]
Trong đó:
\(p_i\): Xác suất sự kiện xảy ra
đối với quan sát thứ \(i\).
\(\ln\left(-\ln(1 - p_i)\right)\): Hàm liên kết log-log bổ sung (complementary log-log link function).
\(\beta_0, \dots, \beta_k\): Các hệ số hồi quy của mô hình.
Mô hình này ít phổ biến hơn Logit và Probit trong các nghiên cứu marketing nhưng vẫn là một lựa chọn tiềm năng khi phân phối xác suất có đặc điểm lệch.
Trong các mô hình hồi quy phi tuyến tính như hồi quy Logistic, chúng ta không thể sử dụng phương pháp bình phương tối thiểu (OLS) để ước lượng các hệ số hồi quy (\(\beta\)), vì phương pháp này vi phạm các giả định của mô hình và có thể cho ra các giá trị dự đoán không hợp lý (ngoài khoảng \(0\) và \(1\)).
Thay vào đó, các mô hình này sử dụng phương pháp ước lượng hợp lý tối đa (Maximum Likelihood Estimation - MLE).
Nguyên tắc cốt lõi của MLE là tìm ra một bộ hệ số hồi quy \((\beta_0, \beta_1, \dots)\) sao cho xác suất quan sát được bộ dữ liệu thực tế là lớn nhất.
Nói cách khác, MLE tìm kiếm “lời giải thích” hợp lý nhất cho dữ liệu thực tế. Nếu mô hình dự đoán xác suất cao cho những quan sát thực tế xảy ra (ví dụ: xác suất mua xe đạp cao cho người đã mua), thì bộ hệ số \(\beta\) đó được xem là ước lượng tốt nhất.
Quá trình tìm kiếm bộ hệ số tối ưu này được thực hiện thông qua việc tối đa hóa hàm Log-Likelihood \(\ln(L)\), được định nghĩa như sau:
\[ \ln(L) = \sum_{i=1}^{n} \left[ y_i \ln(p_i) + (1 - y_i) \ln(1 - p_i) \right] \]
Trong đó:
\(n\): Tổng số quan sát.
\(y_i\): Giá trị thực tế của biến phụ thuộc cho quan sát thứ \(i\) (bằng 1 nếu sự kiện xảy ra, bằng 0 nếu không).
\(p_i\): Xác suất dự đoán từ mô
hình cho quan sát thứ \(i\).
\(\ln\): Logarit tự nhiên.
Giải thích ý nghĩa:
Khi \(y_i = 1\), công thức trở thành \(\ln(p_i)\). Để tối đa hóa, mô hình cố gắng làm \(p_i\) càng gần 1 càng tốt.
Khi \(y_i = 0\), công thức trở thành \(\ln(1 - p_i)\). Để tối đa hóa, mô hình cố gắng làm \(p_i\) càng gần 0 càng tốt.
Trong phân tích hành vi tiêu dùng, việc so sánh tỷ lệ mua hàng giữa các nhóm đặc điểm khách hàng là quan trọng để đánh giá tác động của yếu tố như thu nhập, khu vực sống, tình trạng hôn nhân lên quyết định mua xe đạp. Ba thước đo phổ biến là Hiệu hai tỷ lệ (Risk Difference - RD), Tỷ số nguy cơ (Relative Risk - RR), và Tỷ số chênh (Odds Ratio - OR).
Giả sử ta có bảng 2x2:
| Sự kiện: CÓ | Sự kiện: KHÔNG | Tổng cộng | |
|---|---|---|---|
| Nhóm Phơi nhiễm | a | b | a + b |
| Nhóm Không phơi nhiễm | c | d | c + d |
Dựa trên bảng này, chúng ta có thể tính các thước đo sau:
Tỷ lệ sự kiện trong nhóm Phơi nhiễm: \(P_{\text{phơi nhiễm}} = \frac{a}{a+b}\)
Tỷ lệ sự kiện trong nhóm Không phơi nhiễm: \(P_{\text{không phơi nhiễm}} = \frac{c}{c+d}\)
RD đo lường sự khác biệt tuyệt đối về tỷ lệ sự kiện giữa hai nhóm.
\[RD = P_{\text{phơi nhiễm}} - P_{\text{không phơi nhiễm}} = \frac{a}{a+b} - \frac{c}{c+d}\]
RD > 0 cho thấy tỷ lệ sự kiện của nhóm phơi nhiễm cao hơn nhóm không phơi nhiễm.
RD < 0 cho thấy tỷ lệ thấp hơn.
RR đo lường tỷ số của tỷ lệ sự kiện giữa hai nhóm.
\[RR = \frac{P_{\text{phơi nhiễm}}}{P_{\text{không phơi nhiễm}}} = \frac{a/(a+b)}{c/(c+d)}\]
RR > 1: Yếu tố phơi nhiễm làm tăng khả năng xảy ra sự kiện.
RR < 1: Yếu tố phơi nhiễm làm giảm khả năng xảy ra sự kiện.
RR = 1: Không có mối liên hệ giữa yếu tố và sự kiện.
OR đo lường tỷ số của tỷ số chẵn (odds) giữa hai nhóm. Odds là tỷ lệ giữa số lần sự kiện xảy ra và số lần không xảy ra.
\[OR = \frac{\text{Odds}_{\text{phơi nhiễm}}}{\text{Odds}_{\text{không phơi nhiễm}}} = \frac{a/b}{c/d} = \frac{a \times d}{b \times c}\]
OR > 1: Yếu tố phơi nhiễm làm tăng odds xảy ra sự kiện.
OR < 1: Yếu tố phơi nhiễm làm giảm odds xảy ra sự kiện.
OR = 1: Không có mối liên hệ giữa yếu tố và sự kiện.
OR là nền tảng của mô hình hồi quy Logistic, vì hệ số hồi quy (\(\beta\)) của mô hình chính là logarit tự nhiên của OR (\(e^{\beta} = OR\)).
Tương tự ta có bảng tần số 3×2:
| Có mua | Không mua | Tổng | |
|---|---|---|---|
| Nhóm 1 | a₁ | b₁ | n₁ |
| Nhóm 2 | a₂ | b₂ | n₂ |
| Nhóm 3 | a₃ | b₃ | n₃ |
| Tổng | a+b | c+d | n |
Chỉ số OR, RR, RD được tính cho từng nhóm so với nhóm tham chiếu (nhóm 1).
AIC (Akaike Information Criterion): AIC cân bằng giữa độ phù hợp của mô hình và số lượng tham số. Nó phạt các mô hình phức tạp hơn. Khi so sánh các mô hình, mô hình có giá trị AIC càng nhỏ càng tốt.
\[ AIC = -2 \ell(\hat{\beta}) + 2k \]
BIC (Bayesian Information Criterion): BIC tương tự như AIC nhưng áp dụng một hình phạt lớn hơn cho số lượng tham số (k) khi kích thước mẫu (n) lớn. Do đó, BIC có xu hướng ưu tiên các mô hình đơn giản hơn AIC. Khi so sánh các mô hình, mô hình có giá trị BIC càng nhỏ càng tốt.
\[ BIC = -2 \ell(\hat{\beta}) + k \log(n) \]
Pseudo \(R^2\) (McFadden’s \(R^2\)): \(R^2\) truyền thống không phù hợp cho các mô hình hồi quy Logistic. Thay vào đó, chúng ta sử dụng các thước đo Pseudo \(R^2\) để ước lượng mức độ giải thích của mô hình.
\[ R^2 = 1 - \frac{\ell(\hat{\beta})}{\ell(\hat{\beta}_0)} \]
Pseudo \(R^2\) đo lường sự cải thiện của mô hình đầy đủ so với mô hình cơ sở. Mặc dù không diễn giải được như \(R^2\) trong hồi quy tuyến tính, giá trị này càng gần 1, mô hình càng phù hợp. Trong hồi quy Logistic, một giá trị từ 0.2 đến 0.4 thường được coi là rất tốt.
Đây là các thước đo chuyên biệt để đánh giá hiệu suất của mô hình phân loại nhị phân.
Đường cong ROC (Receiver Operating Characteristic): Đường cong ROC là đồ thị biểu diễn mối quan hệ giữa tỷ lệ đúng dương (TPR) và tỷ lệ sai dương (FPR) của mô hình tại các ngưỡng phân loại khác nhau.
TPR (True Positive Rate): Tỷ lệ mô hình dự đoán đúng những trường hợp “Có” thực tế (Sensitivity).
FPR (False Positive Rate): Tỷ lệ mô hình dự đoán sai những trường hợp “Không” thành “Có” (1 - Specificity).
Một đường cong ROC tốt sẽ cong về phía góc trên bên trái của đồ thị, cho thấy mô hình có thể đạt được độ nhạy cao (TPR cao) trong khi vẫn giữ tỷ lệ dương tính giả ở mức thấp (FPR thấp).
AUC (Area Under the Curve): AUC là diện tích dưới đường cong ROC. Nó cung cấp một giá trị tổng hợp để đo lường khả năng phân loại của mô hình trên tất cả các ngưỡng.
AUC gần 1: Mô hình phân loại rất tốt.
AUC = 0.5: Mô hình phân loại không tốt hơn việc đoán ngẫu nhiên.
Giá trị AUC càng cao, khả năng mô hình phân biệt giữa hai lớp (mua và không mua xe đạp) càng tốt. AUC là một chỉ số mạnh để so sánh hiệu suất tổng thể của các mô hình phân loại.
Trong các mô hình hồi quy phi tuyến tính như hồi quy Logistic, tác động của một biến độc lập lên xác suất dự đoán không phải là một hằng số. Vì vậy, để có cái nhìn tổng quát về tác động này, chúng ta sử dụng Hiệu ứng biên trung bình (AME). AME là giá trị trung bình của các hiệu ứng biên (Marginal Effects) được tính trên tất cả các quan sát trong tập dữ liệu. AME cung cấp một con số duy nhất để tóm tắt tác động trung bình của một biến lên xác suất của biến phụ thuộc.
Đối với một biến định tính (X) có các danh mục, AME được
tính bằng cách lấy trung bình của hiệu số xác suất trên toàn bộ mẫu, khi
biến đó chuyển từ một danh mục được so sánh sang danh mục tham
chiếu.
\[ AME = \frac{1}{N} \sum_{i=1}^{N} [P(\text{Y=1}|X=A, \text{các biến khác}_i) - P(\text{Y=1}|X=B, \text{các biến khác}_i)] \]
Trong đó:
N: Tổng số quan sát.
A và B: Là hai danh mục của biến định tính được so sánh.
\(\text{các biến khác}_i\): Là các biến độc lập còn lại cho từng quan sát thứ \(i\).
Giá trị AME cho biến định tính được diễn giải như là sự
thay đổi về mặt xác suất khi một cá nhân chuyển từ nhóm tham chiếu
(B) sang nhóm được so sánh (A),
giữ nguyên các yếu tố khác. Ví dụ, nếu AME của marital (Đã
kết hôn so với Độc thân) là 0.12, điều đó có nghĩa là trung bình, một
người đã kết hôn có xác suất mua xe đạp cao hơn 12 điểm phần trăm so với
một người độc thân. Đây là một con số trực quan và dễ hiểu, thể hiện tác
động thực tế của biến.
Đối với một biến định lượng (X), AME được tính bằng cách
lấy trung bình của đạo hàm riêng của hàm xác suất trên toàn bộ mẫu.
\[ AME = \frac{1}{N} \sum_{i=1}^{N} \frac{\partial P(\text{Y=1}|\text{X}_i)}{ \partial X} \]
Trong mô hình hồi quy Logistic, công thức này được viết chi tiết hơn như sau:
\[ AME = \frac{1}{N} \sum_{i=1}^{N} [P(Y=1)_i \times (1-P(Y=1)_i) \times \beta_1] \]
Trong đó:
\(P(Y=1)_i\): Xác suất dự đoán tại quan sát thứ \(i\).
\(\beta_1\): Hệ số hồi quy của
biến X.
Giá trị AME cho biến định lượng được diễn giải như là sự thay đổi về mặt xác suất khi biến đó tăng thêm một đơn vị. Ví dụ, nếu AME của age là -0.02, điều đó có nghĩa là trung bình trên toàn bộ mẫu, khi độ tuổi tăng thêm một năm, xác suất mua xe đạp sẽ giảm đi 2 điểm phần trăm.
Mà điểm phần trăm là một đơn vị đo sự chênh lệch tuyệt đối giữa hai tỷ lệ phần trăm, đo sự khác biệt giữa hai tỷ lệ phần trăm một cách trực tiếp, không phụ thuộc vào tỷ lệ ban đầu.
Dữ liệu được chia thành tập huấn luyện (train) 80% và kiểm tra (test) 20%. Trên tập train, ước lượng ba mô hình hồi quy nhị phân, so sánh lựa chọn mô hình thông qua AIC, BIC, Pseudo R². Sau đó, trình bày \(e^{\beta}\) và AME từ mô hình tốt nhất để diễn giải kết quả. Cuối cùng đánh giá mô hình dựa trên ROC và AUC trên tập test so với tập train và đưa ra kết luận.
library(dplyr)
library(forcats)
library(skimr)
library(janitor)
library(ggplot2)
library(scales)
library(knitr)
library(patchwork)
library(tidyverse)
library(writexl)
library(gridExtra)
library(epitools)
library(pROC)
library(car)
library(caret)
library(jtools)
library(huxtable)
library(rsample)
library(margins)
library(DT)bb <- read.csv("C:/Users/A S U S/OneDrive/Documents/PTDLDT/bike_buyers.csv", header = T)
bb <- na.omit(bb)
bb <- clean_names(bb)
bb <- bb %>%
mutate(
marital_status = as_factor(marital_status),
gender = as_factor(gender),
education = as_factor(education),
occupation = as_factor(occupation),
home_owner = as_factor(home_owner),
commute_distance = as_factor(commute_distance),
region = as_factor(region),
purchased_bike = as_factor(purchased_bike))
bb <- bb %>%
mutate(edu = education %>%
as_factor() %>%
fct_collapse(
"Trung học trở xuống" = c("High School", "Partial High School"),
"Đại học" = c("Bachelors", "Partial College"),
"Sau đại học" = "Graduate Degree") %>%
fct_relevel("Đại học", "Trung học trở xuống", "Sau đại học"))
bb <- bb %>%
mutate(commute = commute_distance %>%
as_factor() %>%
fct_collapse(
"Gần" = c("0-1 Miles", "1-2 Miles"),
"Trung bình" = c("2-5 Miles", "5-10 Miles"),
"Xa" = "10+ Miles") %>%
fct_relevel("Gần", "Trung bình", "Xa"))
bb <- bb %>%
mutate(marital = marital_status %>%
as_factor() %>%
fct_collapse(
'Độc thân' = "Single",
'Đã kết hôn' = "Married") %>%
fct_relevel('Độc thân', 'Đã kết hôn'))
bb <- bb %>%
mutate(region = region %>%
as_factor() %>%
fct_collapse(
"Châu Âu" = "Europe",
"Thái Bình Dương" = "Pacific",
"Bắc Mỹ" = "North America") %>%
fct_relevel("Châu Âu", "Thái Bình Dương", "Bắc Mỹ"))
bb <- bb %>%
mutate(purchased_bike = purchased_bike %>%
as_factor() %>%
fct_collapse(
"Có" = "Yes",
"Không" = "No") %>%
fct_relevel("Không", "Có"))
bb <- bb %>%
select(purchased_bike, region, edu, commute, marital, children, cars, age, income)
write_xlsx(bb, "bb.xlsx")Nhằm phục vụ cho phân tích suy diễn và mô hình hóa dự báo, dữ liệu được chia thành hai tập:
Tập huấn luyện (train set): gồm 80% dữ liệu, tương ứng với 800 quan sát, dùng để xây dựng và ước lượng các mô hình hồi quy.
Tập kiểm tra (test set): gồm 20% dữ liệu còn lại, tương ứng với 200 quan sát, dùng để đánh giá và so sánh độ chính xác của các mô hình trên dữ liệu chưa từng được mô hình nhìn thấy.
Việc phân chia này giúp tránh hiện tượng overfitting (hiện tượng mô hình học quá kỹ dữ liệu huấn luyện, đến mức nó ghi nhớ cả những nhiễu hoặc đặc điểm riêng của tập huấn luyện mà không phản ánh quy luật chung) và đảm bảo mô hình được đánh giá một cách khách quan, phản ánh được khả năng dự báo thực tiễn.
Các phân tích thống kê mô tả dưới đây được thực hiện trên toàn bộ tập dữ liệu trước khi chia tách, nhằm cung cấp cái nhìn tổng quát và ban đầu về đặc điểm phân bố của các biến.
# Chọn các biến định lượng cần thống kê
numeric_vars <- c("age", "children", "cars", "income")
# Hàm thống kê mô tả cho từng biến
summary_numeric <- bb %>%
summarise(across(all_of(numeric_vars), list(
Min = ~min(.),
Max = ~max(.),
Mean = ~round(mean(.), 2),
SD = ~round(sd(.), 2)
), .names = "{.col}_{.fn}"))
# Định dạng lại bảng cho dễ đọc
summary_table_numeric <- data.frame(
Biến = numeric_vars,
Min = unlist(summary_numeric[1, grep("_Min$", names(summary_numeric))]),
Max = unlist(summary_numeric[1, grep("_Max$", names(summary_numeric))]),
Trung_bình = unlist(summary_numeric[1, grep("_Mean$", names(summary_numeric))]),
Độ_lệch_chuẩn = unlist(summary_numeric[1, grep("_SD$", names(summary_numeric))])
)
# Hiển thị bảng dạng |---| như Markdown
print_table_markdown <- function(df) {
cat("| Biến | Min | Max | Trung bình | Độ lệch chuẩn |\n")
cat("|------|-----|-----|-------------|----------------|\n")
apply(df, 1, function(row) {
cat(sprintf("| %s | %s | %s | %s | %s |\n", row[1], row[2], row[3], row[4], row[5]))
})
}Bảng 4.1: Thống kê mô tả các biến định lượng
| Biến | Min | Max | Trung bình | Độ lệch chuẩn |
|---|---|---|---|---|
| age | 25 | 89 | 44.19 | 11.35 |
| children | 0 | 5 | 1.91 | 1.63 |
| cars | 0 | 4 | 1.45 | 1.12 |
| income | 10000 | 170000 | 56140.00 | 31081.61 |
Độ tuổi (age): Độ tuổi dao động từ 25 đến 89 tuổi. Tuổi trung bình là 44.19, với độ lệch chuẩn 11.35, cho thấy mức độ phân tán vừa phải. Như vậy, mẫu khảo sát chủ yếu tập trung vào khách hàng trong độ tuổi trung niên, nhưng vẫn có sự góp mặt của cả người trẻ (25 tuổi) và lớn tuổi (gần 90 tuổi).
Số con (children): Số con dao động từ 0 đến 5, trung bình là 1.91 (khoảng 2 con) mỗi gia đình. Độ lệch chuẩn 1.63 tương đối cao so với trung bình, điều này cho thấy có sự chênh lệch khá lớn giữa các hộ gia đình, có gia đình không có con, nhưng cũng có những gia đình có đến 4–5 con.
Số ô tô (cars): Số lượng ô tô dao động từ 0 đến 4 chiếc, trung bình là 1.45 chiếc mỗi gia đình. Độ lệch chuẩn 1.12, cho thấy sự phân tán tương đối lớn, có hộ gia đình không sở hữu ô tô nào, nhưng cũng có hộ sở hữu đến 3–4 chiếc.
Thu nhập (income): Thu nhập của khách hàng dao động từ 10000 đến 170000 USD. Mức thu nhập trung bình đạt 56140, với độ lệch chuẩn 31081.61, phản ánh sự phân tán lớn giữa các khách hàng. Khoảng cách lớn giữa mức thu nhập thấp nhất và cao nhất cho thấy mẫu khảo sát bao gồm cả khách hàng có thu nhập thấp và thu nhập cao. Điều này cho thấy khả năng chi trả và quyết định mua xe đạp có thể bị ảnh hưởng đáng kể bởi mức thu nhập, và cần được phân tích sâu hơn trong mô hình dự báo.
# Biến toàn cục đánh số bảng & hình
table_counter <<- 2
plot_counter <<- 1
analyze_one_factor <- function(data, varname, title, chapter = 4) {
var <- sym(varname)
# Tạo bảng tần số và tần suất (%)
df <- data %>%
count(!!var, name = "Tần số") %>%
mutate(`Tần suất (%)` = round(`Tần số` / sum(`Tần số`) * 100, 1))
# In bảng có số thứ tự
table_title <- paste0("Bảng ", chapter, ".", table_counter, ": Tần số và tần suất của biến ", title)
table_counter <<- table_counter + 1
print(kable(df, caption = table_title))
# Biểu đồ cột (không legend)
p1_title <- paste0("Hình ", chapter, ".", plot_counter, ": Biểu đồ cột - ", title)
plot_counter <<- plot_counter + 1
p1 <- ggplot(data, aes(x = !!var, fill = !!var)) +
geom_bar() +
geom_text(stat = 'count', aes(label = after_stat(count)),
position = position_stack(vjust = 0.5)) +
labs(title = p1_title, x = NULL, y = NULL) +
theme_minimal() +
scale_fill_brewer(palette = "Set4") +
theme(legend.position = "none")
# Biểu đồ tròn (có legend)
p2_title <- paste0("Hình ", chapter, ".", plot_counter, ": Biểu đồ tròn - ", title)
plot_counter <<- plot_counter + 1
p2 <- ggplot(data, aes(x = "", fill = !!var)) +
geom_bar(width = 0.5) +
coord_polar("y") +
geom_text(stat = "count",
aes(label = percent(after_stat(count)/sum(after_stat(count)))),
position = position_stack(vjust = 0.5)) +
labs(title = p2_title, x = NULL, y = NULL) +
theme_void() +
scale_fill_brewer(palette = "Set4")}##
##
## Table: Bảng 4.2: Tần số và tần suất của biến purchased_bike
##
## |purchased_bike | Tần số| Tần suất (%)|
## |:--------------|------:|------------:|
## |Không | 519| 51.9|
## |Có | 481| 48.1|
Có thể thấy rằng trong tổng số 1000 quan sát, số lượng khách hàng không mua xe đạp (519 KH không mua xe đạp, chiếm 51.9%) cao hơn một chút so với số lượng khách hàng có mua xe đạp (481 KH mua xe đạp, chiếm 48.1%).
Điều này cho thấy rằng phân bố giữa hai nhóm khá cân bằng, với tỷ lệ mua và không mua xe đạp gần như tương đương (chênh lệch chỉ 3.8%). Điều này giúp đảm bảo mô hình dự báo không bị lệch về một phía do mất cân bằng dữ liệu.
Số lượng khách hàng không mua xe đạp chiếm ưu thế nhẹ, cho thấy trong tổng thể mẫu khảo sát, hành vi mua xe đạp chưa phải là lựa chọn phổ biến đối với đa số khách hàng.
##
##
## Table: Bảng 4.3: Tần số và tần suất của biến region
##
## |region | Tần số| Tần suất (%)|
## |:---------------|------:|------------:|
## |Châu Âu | 300| 30.0|
## |Thái Bình Dương | 192| 19.2|
## |Bắc Mỹ | 508| 50.8|
Bảng 4.3 cho thấy phân bố khách hàng theo khu vực không đồng đều. Bắc Mỹ chiếm tỷ lệ lớn nhất với 50.8%, tiếp theo là Châu Âu với 30.0%, trong khi Thái Bình Dương chiếm thấp nhất với 19.2%. Sự chênh lệch này cần lưu ý khi phân tích, vì khu vực có thể ảnh hưởng đến hành vi mua xe đạp và có thể gây thiên lệch nếu không điều chỉnh trong mô hình.
##
##
## Table: Bảng 4.4: Tần số và tần suất của biến edu
##
## |edu | Tần số| Tần suất (%)|
## |:-------------------|------:|------------:|
## |Đại học | 571| 57.1|
## |Trung học trở xuống | 255| 25.5|
## |Sau đại học | 174| 17.4|
Bảng 4.4 cho thấy phần lớn khách hàng có trình độ học vấn đại học, chiếm 57.1% tổng mẫu. Nhóm trung học trở xuống chiếm 25.5%, trong khi sau đại học chỉ chiếm 17.4%. Điều này phản ánh mẫu khảo sát nghiêng về nhóm khách hàng có học vấn cao, có thể ảnh hưởng đến hành vi mua xe đạp và cần xem xét trong quá trình phân tích.
##
##
## Table: Bảng 4.5: Tần số và tần suất của biến commute
##
## |commute | Tần số| Tần suất (%)|
## |:----------|------:|------------:|
## |Gần | 535| 53.5|
## |Trung bình | 354| 35.4|
## |Xa | 111| 11.1|
Bảng 4.5 cho thấy hơn một nửa khách hàng có khoảng cách đến chỗ học là gần (53.5%), tiếp theo là trung bình (35.4%), trong khi chỉ 11.1% có khoảng cách xa. Phân bố này cho thấy phần lớn khách hàng sống hoặc làm việc gần nơi cần di chuyển, yếu tố có thể ảnh hưởng đến quyết định mua xe đạp.
##
##
## Table: Bảng 4.6: Tần số và tần suất của biến marital
##
## |marital | Tần số| Tần suất (%)|
## |:----------|------:|------------:|
## |Độc thân | 461| 46.1|
## |Đã kết hôn | 539| 53.9|
Bảng 4.6 cho thấy khách hàng đã kết hôn chiếm tỷ lệ cao hơn, với 53.9%, trong khi khách hàng độc thân chiếm 46.1%. Phân bố giữa hai nhóm khá cân đối, cho phép so sánh hành vi mua xe đạp theo tình trạng hôn nhân một cách khách quan.
analyze_two_factors <- function(data, var1, var2, title1, title2, chapter = 4) {
v1 <- sym(var1)
v2 <- sym(var2)
# Bảng tần số 2x2 có tổng
freq_tbl <- table(data[[var1]], data[[var2]])
freq_df <- as.data.frame.matrix(addmargins(freq_tbl))
# In bảng tần số
table_title <- paste0("Bảng ", chapter, ".", table_counter,
": Tần số giữa ", title1, " và ", title2)
table_counter <<- table_counter + 1
print(kable(freq_df, caption = table_title))
# Biểu đồ cột
plot_title <- paste0("Hình ", chapter, ".", plot_counter,
": Biểu đồ của ", title1, " theo ", title2)
plot_counter <<- plot_counter + 1
p <- ggplot(data, aes(x = !!v2, fill = !!v1)) +
geom_bar(position = position_dodge(width = 0.8)) +
labs(title = plot_title, x = title2, y = "Tần số", fill = title1) +
theme_minimal() +
scale_fill_brewer(palette = "Set4")
return(p)
}plot_pbr <- analyze_two_factors(bb, "region", "purchased_bike", "region", "purchased_bike", chapter = 4)##
##
## Table: Bảng 4.7: Tần số giữa region và purchased_bike
##
## | | Không| Có| Sum|
## |:---------------|-----:|---:|----:|
## |Châu Âu | 152| 148| 300|
## |Thái Bình Dương | 79| 113| 192|
## |Bắc Mỹ | 288| 220| 508|
## |Sum | 519| 481| 1000|
Bảng 4.7 cho thấy trong cả ba khu vực, số lượng khách hàng mua xe đạp (Có) thấp hơn hoặc xấp xỉ nhóm Không mua, ngoại trừ khu vực Thái Bình Dương, nơi số người mua xe đạp (113) vượt trội so với số không mua (79). Tại Châu Âu và Bắc Mỹ, số khách không mua xe đạp chiếm ưu thế. Phân bố này cho thấy khu vực có thể liên quan đến hành vi mua xe đạp, đặc biệt tại Thái Bình Dương, nơi tỷ lệ mua xe đạp cao hơn rõ rệt.
## $data
##
## Không Có Total
## Châu Âu 152 148 300
## Thái Bình Dương 79 113 192
## Bắc Mỹ 288 220 508
## Total 519 481 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Châu Âu 1.0000000 NA NA
## Thái Bình Dương 1.1929899 1.0117938 1.406635
## Bắc Mỹ 0.8778464 0.7541933 1.021773
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Châu Âu NA NA NA
## Thái Bình Dương 0.03958418 0.04194422 0.03900293
## Bắc Mỹ 0.09754817 0.10775924 0.09654055
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
## $data
##
## Không Có Total
## Châu Âu 152 148 300
## Thái Bình Dương 79 113 192
## Bắc Mỹ 288 220 508
## Total 519 481 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Châu Âu 1.0000000 NA NA
## Thái Bình Dương 1.4673021 1.0183997 2.120711
## Bắc Mỹ 0.7848079 0.5889734 1.045350
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Châu Âu NA NA NA
## Thái Bình Dương 0.03958418 0.04194422 0.03900293
## Bắc Mỹ 0.09754817 0.10775924 0.09654055
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
So với Châu Âu, khách hàng tại khu vực Thái Bình Dương có tỷ lệ mua xe đạp cao hơn rõ rệt, với xác suất mua cao hơn 19.3% tương đối (RR = 1.193), và odds mua xe đạp cao hơn 46.9% (OR = 1.469). Ngược lại, khách hàng tại Bắc Mỹ có xu hướng mua xe đạp thấp hơn so với Châu Âu, với xác suất mua giảm 12.2% (RR = 0.878), và odds mua xe đạp thấp hơn 21.5% (OR = 0.785). Như vậy, khu vực địa lý có sự khác biệt rõ trong hành vi mua xe đạp, với tỷ lệ mua cao nhất ở Thái Bình Dương và thấp nhất ở Bắc Mỹ.
##
##
## Table: Bảng 4.8: Tần số giữa edu và purchased_bike
##
## | | Không| Có| Sum|
## |:-------------------|-----:|---:|----:|
## |Đại học | 283| 288| 571|
## |Trung học trở xuống | 156| 99| 255|
## |Sau đại học | 80| 94| 174|
## |Sum | 519| 481| 1000|
Bảng 4.8 cho thấy trong nhóm khách hàng có trình độ đại học, số người mua và không mua xe đạp gần như bằng nhau (288 và 283). Ở nhóm trung học trở xuống, số người không mua xe đạp cao hơn đáng kể (156 so với 99). Ngược lại, nhóm sau đại học có số người mua xe đạp (94) nhỉnh hơn người không mua (80). Phân bố này gợi ý rằng trình độ học vấn có thể ảnh hưởng đến hành vi mua xe đạp, với tỷ lệ mua cao hơn ở nhóm sau đại học.
## $data
##
## Không Có Total
## Đại học 283 288 571
## Trung học trở xuống 156 99 255
## Sau đại học 80 94 174
## Total 519 481 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Đại học 1.0000000 NA NA
## Trung học trở xuống 0.7697304 0.6466667 0.9162137
## Sau đại học 1.0710808 0.9132865 1.2561382
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Đại học NA NA NA
## Trung học trở xuống 0.001993666 0.002503029 0.002000369
## Sau đại học 0.409363410 0.436028385 0.407493369
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
## $data
##
## Không Có Total
## Đại học 283 288 571
## Trung học trở xuống 156 99 255
## Sau đại học 80 94 174
## Total 519 481 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Đại học 1.0000000 NA NA
## Trung học trở xuống 0.6242248 0.4611299 0.8421556
## Sau đại học 1.1541150 0.8212062 1.6248958
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Đại học NA NA NA
## Trung học trở xuống 0.001993666 0.002503029 0.002000369
## Sau đại học 0.409363410 0.436028385 0.407493369
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
So với nhóm khách hàng có trình độ đại học, nhóm trung học trở xuống có xác suất mua giảm 23% (RR = 0.77), và odds mua xe đạp thấp hơn 37.6% (OR = 0.624). Ngược lại, nhóm sau đại học có tỷ lệ mua xe đạp cao hơn nhẹ so với nhóm đại học xác suất mua tăng khoảng 7.1% (RR = 1.071), và odds mua cao hơn 15.5% (OR = 1.155). Kết quả này cho thấy trình độ học vấn có thể ảnh hưởng đến hành vi mua xe đạp, trong đó nhóm học vấn cao hơn (sau đại học) có xu hướng mua xe đạp nhỉnh hơn, còn nhóm học vấn thấp hơn lại có tỷ lệ mua thấp hơn rõ rệt.
plot_pbc <- analyze_two_factors(bb, "commute", "purchased_bike", "commute", "purchased_bike", chapter = 4)##
##
## Table: Bảng 4.9: Tần số giữa commute và purchased_bike
##
## | | Không| Có| Sum|
## |:----------|-----:|---:|----:|
## |Gần | 258| 277| 535|
## |Trung bình | 183| 171| 354|
## |Xa | 78| 33| 111|
## |Sum | 519| 481| 1000|
Bảng 4.9 cho thấy trong nhóm khách hàng có khoảng cách gần, số người mua xe đạp (277) cao hơn số không mua (258). Đối với nhóm trung bình, tỷ lệ mua và không mua khá cân bằng (171 và 183). Tuy nhiên, ở nhóm xa, số người không mua xe đạp (78) cao hơn gấp đôi số người mua (33). Điều này cho thấy khoảng cách ngắn có thể khuyến khích việc mua xe đạp, trong khi khoảng cách xa làm giảm khả năng mua.
## $data
##
## Không Có Total
## Gần 258 277 535
## Trung bình 183 171 354
## Xa 78 33 111
## Total 519 481 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Gần 1.0000000 NA NA
## Trung bình 0.9329682 0.8149204 1.0681163
## Xa 0.5742024 0.4264575 0.7731329
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Gần NA NA NA
## Trung bình 3.121181e-01 3.375082e-01 3.109841e-01
## Xa 2.018174e-05 2.551745e-05 2.327518e-05
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
## $data
##
## Không Có Total
## Gần 258 277 535
## Trung bình 183 171 354
## Xa 78 33 111
## Total 519 481 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Gần 1.0000000 NA NA
## Trung bình 0.8705172 0.6649936 1.1390490
## Xa 0.3955941 0.2514518 0.6102965
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Gần NA NA NA
## Trung bình 3.121181e-01 3.375082e-01 3.109841e-01
## Xa 2.018174e-05 2.551745e-05 2.327518e-05
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
So với nhóm khách hàng có khoảng cách Gần, nhóm Trung bình có xác suất mua giảm 6.7% (RR = 0.933), và odds mua xe đạp thấp hơn 13% (OR = 0.87), cho thấy mức giảm nhẹ. Trong khi đó, nhóm Xa có xác suất mua giảm 42.6% (RR = 0.574), và odds mua xe đạp thấp hơn 60.6% (OR = 0.394). Kết quả cho thấy khoảng cách càng xa thì khả năng mua xe đạp càng giảm, đặc biệt là ở nhóm Xa.
plot_pbm <- analyze_two_factors(bb, "marital", "purchased_bike", "marital", "purchased_bike", chapter = 4)##
##
## Table: Bảng 4.10: Tần số giữa marital và purchased_bike
##
## | | Không| Có| Sum|
## |:----------|-----:|---:|----:|
## |Độc thân | 212| 249| 461|
## |Đã kết hôn | 307| 232| 539|
## |Sum | 519| 481| 1000|
Bảng 4.10 cho thấy trong nhóm độc thân, số người mua xe đạp (249) cao hơn số không mua (212), ngược lại trong nhóm đã kết hôn, số người không mua xe đạp (307) vượt đáng kể số người mua (232). Phân bố này gợi ý rằng khách hàng độc thân có xu hướng mua xe đạp cao hơn so với nhóm đã kết hôn.
## $data
##
## Không Có Total
## Độc thân 212 249 461
## Đã kết hôn 307 232 539
## Total 519 481 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Độc thân 1.0000000 NA NA
## Đã kết hôn 0.7968944 0.7007632 0.906213
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Độc thân NA NA NA
## Đã kết hôn 0.000546861 0.0006042943 0.0005380572
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
## $data
##
## Không Có Total
## Độc thân 212 249 461
## Đã kết hôn 307 232 539
## Total 519 481 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Độc thân 1.0000000 NA NA
## Đã kết hôn 0.6438036 0.500838 0.8266022
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Độc thân NA NA NA
## Đã kết hôn 0.000546861 0.0006042943 0.0005380572
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
So với nhóm Độc thân, nhóm Đã kết hôn có xác suất mua giảm 20.3% (RR = 0.797), và odds mua xe đạp thấp hơn 35.7% (OR = 0.643). Điều này cho thấy khách hàng độc thân có xu hướng mua xe đạp cao hơn đáng kể so với nhóm đã kết hôn.
Kiểm định Chi-bình phương:
Giả thuyết không (\(H_0\)): Hai biến là độc lập, không có mối liên hệ.
Giả thuyết đối (\(H_1\)): Hai biến có liên hệ với nhau.
Bảng 4.11: Kết quả kiểm định Chi bình phương
| Mối quan hệ | Giá trị \(\chi^2\) | Bậc tự do (df) | Giá trị p (\(p_{value}\)) | Kết luận (\(\alpha = 0.05\)) |
|---|---|---|---|---|
| purchased_bike & region | 13.752 | 2 | 0.001032 | Có ý nghĩa thống kê |
| purchased_bike & edu | 12.485 | 2 | 0.001945 | Có ý nghĩa thống kê |
| purchased_bike & commute | 17.907 | 2 | 0.0001293 | Có ý nghĩa thống kê |
| purchased_bike & marital | 11.544 | 1 | 0.0006799 | Có ý nghĩa thống kê |
Dựa vào Bảng 4.11, có thể thấy rằng tất cả các mối quan hệ giữa quyết
định mua xe đạp (purchased_bike) và các biến nhân khẩu học
(region, edu, commute,
marital) đều cho ra giá trị p-value nhỏ hơn đáng kể so với
mức ý nghĩa \(\alpha = 0.05\)
Cụ thể:
purchased_bike và region: Với \(p_{value} = 0.001032 < \alpha\)
purchased_bike và edu: Với \(p_{value} = 0.001945 < \alpha\)
purchased_bike và commute: Với \(p_{value} = 0.0001293 < \alpha\)
purchased_bike và marital: Với \(p_{value} = 0.0006799< \alpha\)
Kết quả này cho phép chúng ta bác bỏ giả thuyết \(H_0\) về tính độc lập cho tất cả các cặp biến. Điều này chứng tỏ rằng bốn yếu tố nhân khẩu học được nghiên cứu (khu vực, trình độ học vấn, khoảng cách tới chỗ học, và tình trạng hôn nhân) đều có mối liên hệ đáng kể và không ngẫu nhiên với quyết định mua xe đạp của khách hàng.
set.seed(123)
split <- initial_split(bb, prop = 0.8, strata = "purchased_bike")
bb_train <- training(split)
bb_test <- testing(split)# logit
model_lg <- glm(data = bb_train, purchased_bike ~ region + edu + commute + marital + children + cars + age + income, family = binomial(link = "logit"))
# probit
model_pb <- glm(data = bb_train, purchased_bike ~ region + edu + commute + marital + children + cars + age + income, family = binomial(link = "probit"))
# cloglog
model_cll <- glm(data = bb_train, purchased_bike ~ region + edu + commute + marital + children + cars + age + income, family = binomial(link = "cloglog"))
# show and compare
jtools::export_summs(list("Logit" = model_lg,
"Probit" = model_pb,
"Cloglog" = model_cll),scale = TRUE)| Logit | Probit | Cloglog | |
|---|---|---|---|
| (Intercept) | 0.19 | 0.12 | -0.25 * |
| (0.18) | (0.11) | (0.13) | |
| regionThái Bình Dương | 0.74 ** | 0.45 ** | 0.49 ** |
| (0.24) | (0.15) | (0.16) | |
| regionBắc Mỹ | -0.09 | -0.05 | -0.07 |
| (0.19) | (0.12) | (0.14) | |
| eduTrung học trở xuống | 0.21 | 0.12 | 0.11 |
| (0.20) | (0.12) | (0.15) | |
| eduSau đại học | -0.31 | -0.19 | -0.22 |
| (0.23) | (0.14) | (0.16) | |
| commuteTrung bình | -0.00 | -0.01 | -0.06 |
| (0.17) | (0.11) | (0.12) | |
| commuteXa | -0.53 | -0.30 | -0.44 * |
| (0.29) | (0.17) | (0.22) | |
| maritalĐã kết hôn | -0.58 *** | -0.36 *** | -0.36 *** |
| (0.16) | (0.10) | (0.11) | |
| children | -0.11 | -0.06 | -0.07 |
| (0.09) | (0.06) | (0.07) | |
| cars | -0.81 *** | -0.49 *** | -0.53 *** |
| (0.11) | (0.07) | (0.08) | |
| age | 0.00 | -0.00 | -0.02 |
| (0.09) | (0.06) | (0.07) | |
| income | 0.58 *** | 0.34 *** | 0.36 *** |
| (0.11) | (0.06) | (0.07) | |
| N | 799 | 799 | 799 |
| AIC | 1020.36 | 1021.35 | 1024.11 |
| BIC | 1076.56 | 1077.55 | 1080.31 |
| Pseudo R2 | 0.17 | 0.17 | 0.17 |
| All continuous predictors are mean-centered and scaled by 1 standard deviation. The outcome variable is in its original units. *** p < 0.001; ** p < 0.01; * p < 0.05. | |||
Dựa trên bảng kết quả, có thể đánh giá hiệu quả của ba mô hình logit, probit và cloglog qua các tiêu chí AIC, BIC, và Pseudo R² như sau:
Mô hình logit có AIC thấp nhất (1020.36) và BIC thấp nhất (1076.56) so với probit (AIC = 1021.35; BIC = 1077.55) và cloglog (AIC = 1024.11; BIC = 1080.31). Mặc dù chênh lệch không lớn, nhưng logit vẫn thể hiện hiệu quả tốt hơn theo cả hai tiêu chí AIC và BIC, cho thấy mô hình này có độ phù hợp tốt hơn với dữ liệu trong khi vẫn tránh được sự phức tạp không cần thiết.
Về chỉ số Pseudo R², cả ba mô hình đều có giá trị tương đương (0.17), cho thấy khả năng giải thích biến phụ thuộc là như nhau.
Như vậy, xét tổng thể, mô hình logit được đánh giá là tốt nhất, với độ phù hợp cao nhất và cấu trúc đơn giản nhất, phù hợp với kết quả từ phân tích ROC và AUC đã thực hiện trước đó.
Bảng 4.12: Kiểm tra đa cộng tuyến
## GVIF Df GVIF^(1/(2*Df))
## region 1.349479 2 1.077808
## edu 1.554250 2 1.116555
## commute 1.276293 2 1.062888
## marital 1.103932 1 1.050682
## children 1.476001 1 1.214908
## cars 2.086147 1 1.444350
## age 1.452643 1 1.205256
## income 1.951343 1 1.396905
Kết quả kiểm tra đa cộng tuyến cho thấy tất cả các biến đều có chỉ số nhỏ hơn 2. Điều này cho thấy không có dấu hiệu đa cộng tuyến nghiêm trọng, các biến độc lập không gây ảnh hưởng tiêu cực đến độ tin cậy của mô hình hồi quy. Mô hình hồi quy logit là ổn định và đáng tin cậy.
Bảng 4.13: Tóm tắt kết quả hồi quy Logit và hiệu ứng biên (AME)
| Biến | \(e^\beta\) | AME | p-value |
|---|---|---|---|
| regionThái Bình Dương | 2.094 | 0.160 | 0.0015 |
| regionBắc Mỹ | 0.9127 | -0.0199 | 0.632 |
| eduTrung học trở xuống | 1.228 | 0.044 | 0.302 |
| eduSau đại học | 0.7313 | -0.0662 | 0.161 |
| commuteTrung bình | 0.9988 | -0.000262 | 0.995 |
| commuteXa | 0.5866 | -0.115 | 0.0566 |
| maritalĐã kết hôn | 0.5618 | -0.126 | 0.00025 |
| children | 0.9358 | -0.0144 | 0.248 |
| cars | 0.4931 | -0.154 | 1.07e-16 |
| age | 1.00018 | 3.95e-05 | 0.982 |
| income | 1.0000185 | 4.02e-06 | 4.27e-09 |
Các yếu tố có ý nghĩa thống kê cao (p < 0.05):
cars (Số lượng ô tô): Đây là yếu tố có tác động mạnh
và có ý nghĩa thống kê rất cao (\(p_{value}
≈\) 1.07e-16). Tỷ số chênh (\(e^β\)) = 0.4931 → Khi số lượng ô tô trong
gia đình tăng thêm 1 chiếc, odds mua xe đạp giảm đi khoảng một nửa. Hiệu
ứng biên trung bình (AME) = –0.154 → Khi số lượng ô tô của một hộ gia
đình tăng thêm 1 chiếc, thì xác suất mua xe đạp giảm trung bình 0.154
đơn vị, hay giảm 15.4 điểm phần trăm. Điều này gợi ý rằng các gia đình
sở hữu nhiều ô tô có xu hướng ít mua xe đạp hơn, có thể vì họ ưu tiên
các phương tiện tiện nghi hơn.
marital (Tình trạng hôn nhân): Yếu tố này cũng có
tác động rõ rệt và ý nghĩa thống kê cao (\(p_{value}\) = 0.00025). Tỷ số chênh (\(e^β\)) = 0.5618 → Odds mua xe đạp của người
“Đã kết hôn” chỉ bằng 56.2% so với người độc thân. Hiệu ứng biên trung
bình = –0.126 → Trung bình, người đã kết hôn có xác suất mua xe đạp thấp
hơn 12.6 điểm phần trăm. Có thể người đã kết hôn ưu tiên chi tiêu cho
các phương tiện gia đình hoặc ít có nhu cầu cá nhân với xe đạp.
region (Khu vực – Thái Bình Dương): So với khu vực
tham chiếu, khách hàng tại khu vực “Thái Bình Dương” có tỷ lệ mua xe đạp
cao hơn đáng kể (\(p_{value}\) =
0.0015). Tỷ số chênh (\(e^β\)) = 2.094
→ Odds mua xe đạp cao gấp đôi so với nhóm tham chiếu. AME = 0.160 →
Trung bình, khách hàng tại đây có xác suất mua xe đạp cao hơn 16 điểm
phần trăm. Điều này phản ánh sự phổ biến của xe đạp tại khu vực này, có
thể do yếu tố hạ tầng hoặc văn hóa sống xanh.
income (Thu nhập): Dù \(e^β\) và AME rất nhỏ về mặt tuyệt đối,
nhưng yếu tố này có ý nghĩa thống kê cực kỳ cao (\(p_{value} ≈\) 4.27e-09). Tỷ số chênh \((e^β) ≈\) 1.0000185 → Khi thu nhập tăng
thêm 1 đơn vị, odds mua xe đạp tăng nhẹ. AME = 4.02e-06 → Khi thu nhập
tăng thêm 1 đơn vị, xác suất mua xe đạp tăng rất nhỏ, nhưng xu hướng là
tích cực. Người có thu nhập cao có thể xem xe đạp như phương tiện thể
thao hoặc giải trí.
Các yếu tố có ý nghĩa cận biên hoặc không có ý nghĩa thống kê:
commute (Khoảng cách – Xa): Biến “Xa” có \(p_{value}\) = 0.0566, gần đạt mức ý nghĩa
5%. Tỷ số chênh (\(e^β\)) = 0.5866 →
Người di chuyển xa có odds mua xe đạp thấp hơn, không như kỳ vọng ban
đầu. AME = –0.115 → Trung bình, nhóm này có xác suất mua xe đạp thấp hơn
11.5 điểm phần trăm. Dù gần có ý nghĩa thống kê, kết quả này cho thấy
người sống xa có thể không chọn xe đạp do bất tiện về quãng
đường.
region (Bắc Mỹ), edu (Trình độ học
vấn), children (Số con), age (Tuổi): Các biến
này có \(p_{value}\) > 0.05, nên
không có ý nghĩa thống kê. Dù odds ratio và AME có thể khác 1 hoặc 0,
nhưng không thể kết luận chắc chắn về ảnh hưởng của các yếu tố này đến
quyết định mua xe đạp dựa trên dữ liệu hiện có.
pred_lg <- predict(model_lg, newdata = bb_train, type = "response")
pred_pb <- predict(model_pb, newdata = bb_train, type = "response")
pred_cll <- predict(model_cll, newdata = bb_train, type = "response")
roc_lg <- roc(bb_train$purchased_bike, pred_lg)
roc_pb <- roc(bb_train$purchased_bike, pred_pb)
roc_cll <- roc(bb_train$purchased_bike, pred_cll)
ggroc(list(
roc_lg = roc_lg,
roc_pb = roc_pb,
roc_cll = roc_cll
)) +
geom_segment(aes(x = 1, y = 0, xend = 0, yend = 1),
color = "gray", linetype = "dashed") +
labs(
title = "Đường cong ROC trên tập train",
subtitle = paste0(
"AUC Logistic = ", round(auc(roc_lg), 5), " | ",
"Probit = ", round(auc(roc_pb), 5), " | ",
"Cloglog = ", round(auc(roc_cll), 5)
)
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
plot.subtitle = element_text(hjust = 0.5)) +
scale_color_manual(values = c("#330000","#00DD00","#FF0000"))pred_lg <- predict(model_lg, newdata = bb_test, type = "response")
pred_pb <- predict(model_pb, newdata = bb_test, type = "response")
pred_cll <- predict(model_cll, newdata = bb_test, type = "response")
roc_lg <- roc(bb_test$purchased_bike, pred_lg)
roc_pb <- roc(bb_test$purchased_bike, pred_pb)
roc_cll <- roc(bb_test$purchased_bike, pred_cll)
ggroc(list(
roc_lg = roc_lg,
roc_pb = roc_pb,
roc_cll = roc_cll
)) +
geom_segment(aes(x = 1, y = 0, xend = 0, yend = 1),
color = "gray", linetype = "dashed") +
labs(
title = "Đường cong ROC trên tập test",
subtitle = paste0(
"AUC Logistic = ", round(auc(roc_lg), 5), " | ",
"Probit = ", round(auc(roc_pb), 5), " | ",
"Cloglog = ", round(auc(roc_cll), 5)
)
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
plot.subtitle = element_text(hjust = 0.5)) +
scale_color_manual(values = c("#330000","#00DD00","#FF0000"))Sau khi chia dữ liệu thành hai tập (80% train và 20% test), nghiên cứu tiến hành đánh giá độ chính xác mô hình qua chỉ số AUC.
Trên tập huấn luyện, mô hình hồi quy logit cho kết quả tốt nhất với AUC đạt 0.71402, vượt qua hai mô hình probit và cloglog. Tuy nhiên, khi áp dụng mô hình logit để dự báo trên tập kiểm tra, AUC giảm còn 0.62619, cho thấy khả năng phân biệt của mô hình trên dữ liệu mới không cao.
Mức chênh lệch giữa AUC train và test phản ánh rằng mô hình logit dự báo khá tốt trên dữ liệu đã học, nhưng khi gặp dữ liệu mới (test), mô hình khó khăn hơn trong việc phân biệt chính xác ai mua và không mua xe đạp. Điều này có thể do hai nguyên nhân chính:
Mô hình có dấu hiệu overfitting nhẹ: mô hình học kỹ trên train nhưng chưa tổng quát hóa tốt khi áp dụng cho test.
Dữ liệu test có đặc điểm khác biệt nhẹ so với train, hoặc mẫu chưa đủ lớn để đảm bảo tính ổn định trong dự báo.
Nghiên cứu này đã sử dụng dữ liệu khách hàng để phân tích các yếu tố ảnh hưởng đến hành vi mua xe đạp, đồng thời xây dựng và đánh giá ba mô hình hồi quy nhị phân: logit, probit và cloglog. Dữ liệu được chia thành tập huấn luyện (80%) và tập kiểm tra (20%) nhằm đảm bảo khả năng đánh giá khách quan và tránh hiện tượng overfitting.
Phân tích mô hình logit cho thấy một số yếu tố có ảnh hưởng mạnh và ý
nghĩa thống kê cao. Biến cars (số lượng ô tô) có odds ratio
= 0.4931, AME = –0.154, và \(p_{value}
≈\) 0, cho thấy mỗi ô tô tăng thêm làm odds mua xe đạp giảm một
nửa và xác suất mua giảm 15.4 điểm phần trăm. Tương tự,
marital (đã kết hôn) có odds ratio = 0.5618, AME = –0.126,
\(p_{value}\) = 0.00025, phản ánh người
đã kết hôn ít có xu hướng mua xe đạp hơn. Biến region (Thái
Bình Dương) có odds ratio = 2.094, AME = 0.160, \(p_value\) = 0.0015, xác nhận lại kết quả từ
thống kê mô tả. Ngoài ra, income (thu nhập) có tác động nhỏ
về giá trị tuyệt đối nhưng \(p_{value}\) rất nhỏ (\(≈\) 4.27e-09), odds ratio \(≈\) 1.0000185, AME \(≈\) 0, nhưng mang xu hướng tích cực.
Một số yếu tố khác như khoảng cách xa đến nơi làm việc (commute – Xa) có tác động tiêu cực, AME = –0.115, \(p_{value}\) gần ngưỡng ý nghĩa (0.0566). Các biến như độ tuổi, số con, trình độ học vấn chưa có ảnh hưởng rõ rệt trong mẫu này.
Về mô hình hóa, mô hình logit cho kết quả phù hợp tốt nhất trên tập huấn luyện với AIC thấp nhất (1020.36) và AUC = 0.71402. Tuy nhiên, trên tập kiểm tra, AUC chỉ đạt 0.62619, cho thấy mô hình suy giảm độ chính xác khi áp dụng vào dữ liệu mới. Mức chênh lệch này phản ánh mô hình logit phân biệt tương đối tốt trong huấn luyện nhưng gặp khó khăn với dữ liệu thực tế, một phần do dấu hiệu overfitting nhẹ hoặc mẫu kiểm tra chưa đủ ổn định.
Tổng hợp lại, các yếu tố nhân khẩu học như khu vực sinh sống, tình trạng hôn nhân, phương tiện sở hữu và thu nhập có vai trò quan trọng trong quyết định mua xe đạp. Mối quan hệ giữa odds ratio và AME cho thấy rằng khi odds ratio càng lệch khỏi 1 thì AME càng lớn về độ lớn, phản ánh tác động thực tế đến xác suất mua. Bên cạnh đó, RR (risk ratio) cung cấp góc nhìn bổ sung về tỷ lệ xác suất giữa các nhóm, thường đi cùng xu hướng với AME trong đánh giá tác động.
Trên cơ sở kết quả phân tích, các doanh nghiệp kinh doanh xe đạp nên tập trung tiếp cận nhóm khách hàng tại khu vực Thái Bình Dương và nhóm chưa sở hữu ô tô, vì đây là những đối tượng có xác suất mua xe đạp cao nhất. Ngoài ra, nhóm độc thân và có thu nhập cao cũng nên được ưu tiên trong các chiến dịch tiếp thị, bởi họ có xu hướng tiêu dùng tích cực hơn với sản phẩm xe đạp.
Các yếu tố như phương tiện hiện có và tình trạng hôn nhân có thể được sử dụng như tiêu chí phân khúc khách hàng tiềm năng. Ví dụ, khách hàng có ít hoặc không có ô tô có thể được ưu đãi khuyến mãi hoặc trải nghiệm thử xe đạp để thúc đẩy nhu cầu.
Về mặt mô hình hóa, mô hình logit phù hợp để dự báo hành vi mua xe đạp trong mẫu hiện tại, tuy nhiên độ chính xác khi áp dụng vào dữ liệu mới còn hạn chế. Do đó, doanh nghiệp nên cập nhật dữ liệu định kỳ và tái huấn luyện mô hình để đảm bảo độ chính xác dự báo, đồng thời xem xét bổ sung thêm biến đặc điểm cá nhân (như sở thích, thói quen vận động) để cải thiện độ phân biệt.
Thứ nhất, nghiên cứu mới chỉ sử dụng các biến nhân khẩu học cơ bản và chưa khai thác các yếu tố tâm lý, hành vi, hay các yếu tố môi trường như hạ tầng giao thông, chính sách địa phương hỗ trợ xe đạp. Thứ hai, mô hình hồi quy được áp dụng trên tập dữ liệu tương đối nhỏ (800 quan sát train, 200 quan sát test), dẫn đến mức độ chính xác và khái quát còn hạn chế khi áp dụng rộng hơn. Thứ ba, mức chênh lệch AUC giữa train và test cho thấy mô hình có dấu hiệu overfitting nhẹ, làm giảm độ tin cậy trong dự báo ngoài mẫu.
Ngoài ra, các mô hình được áp dụng đều là dạng tuyến tính trong logit, giả định ảnh hưởng tuyến tính của các biến giải thích, điều này có thể bỏ sót các mối quan hệ phi tuyến quan trọng giữa các biến.
Nghiên cứu tiếp theo có thể mở rộng dữ liệu về số lượng và chiều sâu, đặc biệt thêm các biến phản ánh hành vi tiêu dùng, thái độ sống xanh, mức độ sẵn sàng chi trả và sự thuận tiện về hạ tầng. Ngoài ra, việc thử nghiệm các mô hình phi tuyến như Random Forest, XGBoost, hoặc mô hình mạng nơ-ron nhân tạo có thể nâng cao độ chính xác dự báo.
Một hướng đi khác là theo dõi hành vi mua xe đạp theo thời gian (dữ liệu chuỗi thời gian) để phát hiện xu hướng hoặc tác động mùa vụ. Cuối cùng, nghiên cứu có thể mở rộng sang các sản phẩm thân thiện môi trường khác để đánh giá đồng thời xu hướng tiêu dùng xanh của người dân.
GMO-Z.com Vietnam Lab Center. (2019). Kiểm định giả thuyết thống kê (Toán Thống kê Phần 2). Truy cập từ: https://blog.vietnamlab.vn/toan-thong-ke/
Nguyễn Văn Tuấn. (2017). Đo lường hiệu quả điều trị: Nguy cơ tuyệt đối và số bệnh nhân cần điều trị. Hội Y Học TP.HCM. Truy cập từ: http://hoiyhoctphcm.org.vn/wp-content/uploads/2017/12/1109TUAN.pdf
Trần Mạnh Tường. (n.d.). Giáo trình phân tích dữ liệu định tính. rpubs. Truy cập từ: https://tmtuong.quarto.pub/ptdldt/
Trần Mạnh Tường. (n.d.). Phân tích dữ liệu định tính. rpubs. Truy cập từ: https://rpubs.com/tmt/1186442
Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.
Field, A. (2018). Discovering Statistics Using IBM SPSS Statistics (5th ed.). SAGE Publications.
Stevens, S. S. (1946). On the theory of scales of measurement. Science, 103(2684), 677-680.
##
## Pearson's Chi-squared test
##
## data: table(bb$purchased_bike, bb$region)
## X-squared = 13.752, df = 2, p-value = 0.001032
##
## Pearson's Chi-squared test
##
## data: table(bb$purchased_bike, bb$edu)
## X-squared = 12.485, df = 2, p-value = 0.001945
##
## Pearson's Chi-squared test
##
## data: table(bb$purchased_bike, bb$commute)
## X-squared = 17.907, df = 2, p-value = 0.0001293
| factor | AME | SE | z | p | lower | upper |
|---|---|---|---|---|---|---|
| age | 3.95e-05 | 0.00174 | 0.0227 | 0.982 | -0.00338 | 0.00346 |
| cars | -0.154 | 0.0185 | -8.3 | 1.07e-16 | -0.19 | -0.117 |
| children | -0.0144 | 0.0125 | -1.16 | 0.248 | -0.0389 | 0.01 |
| commuteTrung bình | -0.000262 | 0.0382 | -0.00687 | 0.995 | -0.0751 | 0.0746 |
| commuteXa | -0.115 | 0.0602 | -1.91 | 0.0566 | -0.233 | 0.0032 |
| eduSau đại học | -0.0662 | 0.0472 | -1.4 | 0.161 | -0.159 | 0.0264 |
| eduTrung học trở xuống | 0.044 | 0.0426 | 1.03 | 0.302 | -0.0395 | 0.127 |
| income | 4.02e-06 | 6.84e-07 | 5.87 | 4.27e-09 | 2.68e-06 | 5.36e-06 |
| maritalĐã kết hôn | -0.126 | 0.0345 | -3.66 | 0.00025 | -0.194 | -0.0587 |
| regionBắc Mỹ | -0.0199 | 0.0415 | -0.479 | 0.632 | -0.101 | 0.0614 |
| regionThái Bình Dương | 0.16 | 0.0504 | 3.17 | 0.0015 | 0.0612 | 0.259 |