ĐỀ 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

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


1 CHƯƠNG 1: GIỚI THIỆU

1.1 Bối cảnh và lý do chọn đề tài

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.

1.2 Mục tiêu nghiên cứu

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 đó.

1.3 Câu hỏi nghiên cứu

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?

1.4 Đối tượng và phạm vi nghiên cứu

Đề 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.

1.5 Phương pháp nghiên cứu

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.

1.6 Cấu trúc bài nghiên cứu

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.


2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Hành vi tiêu dùng và các yếu tố ảnh hưởng đến quyết định mua sắm

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.

2.2 Lý thuyết hành vi mua sắm sản phẩm phương tiện cá nhân

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.

2.3 Ý nghĩa thực tiễn của việc nghiên cứu hành vi mua xe đạp

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.

2.4 Biến định tính (Categorical Variables)

2.4.1 Định nghĩa và đặc điểm

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.

2.4.2 Phân biệt biến định tính và biến định lượng

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.

2.4.3 Ứng dụng và ví dụ thực tế

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.

2.5 Các thang đo của biến định tính

2.5.1 Thang đo danh nghĩa (Nominal Scale)

Đâ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.

2.5.2 Thang đo thứ tự (Ordinal Scale)

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

2.6 Các khái niệm xác suất cho biến định tính

2.6.1 Xác suất biên (Marginal Probability)

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})\)).

2.6.2 Xác suất đồng thời (Joint Probability)

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ó})\)).

2.6.3 Xác suất có điều kiện (Conditional Probability)

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.

2.7 Kiểm định Chi bình phương (\(\chi^2\))

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.


3 CHƯƠNG 3. PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Mô hình nghiên cứu và biến số

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} \]

3.2 Các mô hình hồi quy cho biến phản hồi nhị phân

3.2.1 Mô hình hồi quy Logistic (Logit)

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

3.2.2 Mô hình Probit

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

3.2.3 Mô hình Cloglog (Complementary Log-Log)

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.

3.3 Phương pháp ước lượng hợp lý tối đa (Maximum Likelihood Estimation - MLE)

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\)\(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).

3.3.1 Nguyên lý hoạt động của 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.

3.3.2 Hàm Log-Likelihood

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.

3.4 Các thước đo mối liên hệ giữa các biến định tính

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}\)

3.4.1 Hiệu hai tỷ lệ (Risk Difference - RD)

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.

3.4.2 Tỷ số nguy cơ (Relative Risk - RR)

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.

3.4.3 Tỷ số chênh (Odds Ratio - OR)

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

3.5 Đánh giá hiệu quả mô hình

3.5.1 Các tiêu chí thông tin (AIC, BIC)

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) \]

3.5.2 Pseudo \(R^2\)

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.

3.5.3 Đường cong ROC và chỉ số AUC

Đâ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.

3.6 Hiệu ứng biên trung bình (Average Marginal Effects - AME)

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.

3.6.1 Tác động của AME lên biến định tính

Đố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.

3.6.2 Tác động của AME lên biến định lượng

Đố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.

3.7 Quy trình thực hiện phân tích

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.


4 CHƯƠNG 4. KẾT QUẢ NGHIÊN CỨU VÀ THẢO LUẬN

4.1 Dữ liệu nghiên cứu

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")
datatable(bb)

4.2 Thống kê mô tả dữ liệu

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.

4.2.1 Thống kê mô tả biến định lượng

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

4.2.2 Thống kê mô tả cho 1 biến định tính

# 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")}

4.2.2.1 Thống kê mô tả biến purchased_bike

plot_pb <- analyze_one_factor(bb, "purchased_bike", "purchased_bike", chapter = 4)
## 
## 
## 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.

4.2.2.2 Thống kê mô tả biến region

plot_r <- analyze_one_factor(bb, "region", "region", chapter = 4)
## 
## 
## 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.

4.2.2.3 Thống kê mô tả biến edu

plot_e <- analyze_one_factor(bb, "edu", "edu", chapter = 4)
## 
## 
## 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.

4.2.2.4 Thống kê mô tả biến commute

plot_c <- analyze_one_factor(bb, "commute", "commute", chapter = 4)
## 
## 
## 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.

4.2.2.5 Thống kê mô tả biến marital

plot_m <- analyze_one_factor(bb, "marital", "marital", chapter = 4)
## 
## 
## 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.

4.2.3 Thống kê mô tả cho 2 biến định tính

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)
}

4.2.3.1 Biến purchased_bike và region

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.

riskratio(table(bb$region,bb$purchased_bike))
## $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"
oddsratio(table(bb$region,bb$purchased_bike))
## $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ỹ.

4.2.3.2 Biến purchased_bike và edu

plot_pbe <- analyze_two_factors(bb, "edu", "purchased_bike", "edu", "purchased_bike", chapter = 4)
## 
## 
## 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.

riskratio(table(bb$edu,bb$purchased_bike))
## $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"
oddsratio(table(bb$edu,bb$purchased_bike))
## $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.

4.2.3.3 Biến purchased_bike và commute

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.

riskratio(table(bb$commute,bb$purchased_bike))
## $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"
oddsratio(table(bb$commute,bb$purchased_bike))
## $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.

4.2.3.4 Biến purchased_bike và marital

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.

riskratio(table(bb$marital,bb$purchased_bike))
## $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"
oddsratio(table(bb$marital,bb$purchased_bike))
## $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.

4.3 Kiểm định tính độc lập cho 2 biến định tính

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.

4.4 Hồi quy tuyến tính

4.4.1 Kết quả hồi quy các mô hình

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)
LogitProbitCloglog
(Intercept)0.19    0.12    -0.25 *  
(0.18)   (0.11)   (0.13)   
regionThái Bình Dương0.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ống0.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)   
age0.00    -0.00    -0.02    
(0.09)   (0.06)   (0.07)   
income0.58 ***0.34 ***0.36 ***
(0.11)   (0.06)   (0.07)   
N799       799       799       
AIC1020.36    1021.35    1024.11    
BIC1076.56    1077.55    1080.31    
Pseudo R20.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

vif(model_lg)
##              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ó.

4.4.2 Đánh giá hiệu quả mô hình dự báo

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.


5 CHƯƠNG 5. KẾT LUẬN VÀ KHUYẾN NGHỊ

5.1 Kết luận

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.

5.2 Khuyến nghị

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.

5.3 Hạn chế của đề tài

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.

5.4 Hướng nghiên cứu trong tương lai

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.


6 TÀI LIỆU THAM KHẢO

6.1 Tài liệu tiếng Việt

  1. 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/

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

  3. 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/

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

6.2 Tài liệu tiếng Anh

  1. Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.

  2. Field, A. (2018). Discovering Statistics Using IBM SPSS Statistics (5th ed.). SAGE Publications.

  3. Stevens, S. S. (1946). On the theory of scales of measurement. Science, 103(2684), 677-680.


7 PHỤ LỤC: CODE SỬ DỤNG TRONG R

7.1 Kiểm định tính độc lập cho 2 biến định tính

7.1.1 Mối quan hệ của purchased_bike và region

chisq.test(table(bb$purchased_bike, bb$region))
## 
##  Pearson's Chi-squared test
## 
## data:  table(bb$purchased_bike, bb$region)
## X-squared = 13.752, df = 2, p-value = 0.001032

7.1.2 Mối quan hệ của purchased_bike và edu

chisq.test(table(bb$purchased_bike, bb$edu))
## 
##  Pearson's Chi-squared test
## 
## data:  table(bb$purchased_bike, bb$edu)
## X-squared = 12.485, df = 2, p-value = 0.001945

7.1.3 Mối quan hệ của purchased_bike và commute

chisq.test(table(bb$purchased_bike, bb$commute))
## 
##  Pearson's Chi-squared test
## 
## data:  table(bb$purchased_bike, bb$commute)
## X-squared = 17.907, df = 2, p-value = 0.0001293

7.1.4 Mối quan hệ của purchased_bike và marital

chisq.test(table(bb$purchased_bike, bb$marital))
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table(bb$purchased_bike, bb$marital)
## X-squared = 11.544, df = 1, p-value = 0.0006799

7.2 AME

meffects <- margins(model_lg)
summary(meffects)
factorAMESEzplowerupper
age3.95e-050.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.0002620.0382  -0.006870.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ống0.044   0.0426  1.03   0.302   -0.0395  0.127   
income4.02e-066.84e-075.87   4.27e-092.68e-065.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ương0.16    0.0504  3.17   0.0015  0.0612  0.259