library(readr)
library(ggplot2)
library(dplyr)
library(skimr)
library(psych)
library(DT)
library(pander)
library(formattable)
library(htmltools)
library(DescTools)
library(epitools)
Trong bối cảnh nền kinh tế ngày càng phát triển và nhu cầu tài chính cá nhân ngày càng đa dạng, vay tiêu dùng đã trở thành một công cụ phổ biến giúp khách hàng giải quyết các mục tiêu chi tiêu ngắn và trung hạn. Việc hiểu rõ những yếu tố nào ảnh hưởng đến hành vi vay tiêu dùng của khách hàng là điều kiện tiên quyết để các tổ chức tín dụng có thể xây dựng chiến lược tiếp cận hiệu quả, quản trị rủi ro và nâng cao chất lượng dịch vụ.
Tuy nhiên, hành vi vay tiêu dùng không chỉ phụ thuộc vào khả năng tài chính, mà còn chịu tác động từ nhiều yếu tố nhân khẩu học như độ tuổi, trình độ học vấn, tình trạng hôn nhân hay nghề nghiệp. Những đặc điểm này phản ánh đặc điểm xã hội – tâm lý của khách hàng, từ đó ảnh hưởng đến quyết định tài chính cá nhân. Trong khi đó, đa phần các nghiên cứu hiện nay vẫn chủ yếu tiếp cận dưới góc độ định lượng, thiếu sự phân tích chiều sâu về mặt định tính – đặc biệt là về cách các yếu tố này tương tác và ảnh hưởng đến hành vi vay.
Xuất phát từ khoảng trống này, đề tài “Phân tích định tính các yếu tố ảnh hưởng đến hành vi vay tiêu dùng: Tiếp cận từ dữ liệu ngân hàng và hồ sơ khách hàng” được thực hiện nhằm làm rõ vai trò của các yếu tố nhân khẩu học và tài chính đối với quyết định vay tiêu dùng. Bằng cách phân tích dữ liệu thực tế từ hồ sơ khách hàng ngân hàng, đề tài kỳ vọng mang lại những phát hiện có giá trị về mặt học thuật và thực tiễn trong lĩnh vực tài chính cá nhân, đặc biệt là trong công tác phân khúc khách hàng và phát triển sản phẩm tín dụng tiêu dùng.
Mục tiêu của nghiên cứu này là phân tích một cách định tính các yếu tố nhân khẩu học và tài chính có ảnh hưởng đến hành vi vay tiêu dùng của khách hàng trong bối cảnh ngân hàng thương mại. Cụ thể, nghiên cứu tập trung làm rõ vai trò của các biến nhân khẩu học như độ tuổi, tình trạng hôn nhân, trình độ học vấn và nghề nghiệp trong việc hình thành xu hướng vay tiêu dùng. Bên cạnh đó, các yếu tố tài chính định lượng như số dư tài khoản và tuổi tác cũng được phân tích nhằm nhận diện các đặc điểm kinh tế có thể ảnh hưởng đến quyết định vay. Thông qua việc kết hợp giữa các yếu tố định tính và định lượng trong bộ dữ liệu thực tế, nghiên cứu hướng đến việc khám phá mối liên hệ và sự tương tác giữa các yếu tố này, từ đó rút ra các đặc điểm điển hình của nhóm khách hàng có xu hướng vay tiêu dùng. Trên cơ sở đó, đề tài kỳ vọng đưa ra các hàm ý thực tiễn có giá trị cho các tổ chức tín dụng trong việc xây dựng chiến lược tiếp cận khách hàng, phát triển sản phẩm tín dụng phù hợp và nâng cao hiệu quả quản trị rủi ro tín dụng tiêu dùng.
Đối tượng nghiên cứu trong đề tài này là hành vi vay tiêu dùng của khách hàng cá nhân tại ngân hàng, được thể hiện qua biến phụ thuộc “loan” – phản ánh việc khách hàng có vay tiêu dùng hay không (yes/no).
Đề tài tập trung vào việc phân tích mối quan hệ giữa hành vi vay tiêu dùng và một số yếu tố định lượng và định tính hóa định lượng của khách hàng, cụ thể bao gồm các biến độc lập sau:
Trình độ học vấn (education): phản ánh mức độ hiểu biết và nhận thức tài chính
Tình trạng hôn nhân (marital): biểu thị trạng thái gia đình – xã hội của khách hàng
Tuổi (age): biến định lượng phản ánh độ tuổi của khách hàng, có thể tác động đến nhu cầu và khả năng vay tiêu dùng.
Số dư tài khoản trung bình (balance): là biến định lượng, thể hiện năng lực tài chính hiện tại của khách hàng.
Thông qua việc phân tích mối liên hệ giữa các biến độc lập trên với biến phụ thuộc “loan”, đề tài hướng tới việc tìm hiểu các yếu tố ảnh hưởng đến quyết định vay tiêu dùng, từ đó đưa ra các khuyến nghị cho ngân hàng trong việc xác định nhóm khách hàng mục tiêu và cải thiện chính sách tín dụng.
Phạm vi nghiên cứu:
Phạm vi dữ liệu: Đề tài sử dụng bộ dữ liệu ngân hàng được công khai trên nền tảng Kaggle, bao gồm 11.162 mẫu khách hàng từ một chiến dịch tiếp thị qua điện thoại tại một ngân hàng ở châu Âu. Dữ liệu phản ánh các đặc điểm nhân khẩu học, tài chính, lịch sử vay và thông tin tiếp thị của khách hàng.
Phạm vi nội dung: Đề tài tập trung vào phân tích định tính các yếu tố ảnh hưởng đến hành vi vay tiêu dùng. Việc phân tích chủ yếu dựa trên thống kê mô tả, trực quan hóa dữ liệu và phân tích so sánh giữa các nhóm khách hàng.
Nghiên cứu được triển khai theo hướng định lượng, kết hợp kỹ thuật phân tích thống kê và mô hình hóa nhằm khám phá mối quan hệ giữa các yếu tố nhân khẩu học, đặc điểm tài chính và hành vi vay tiêu dùng của khách hàng cá nhân. Toàn bộ quy trình nghiên cứu bao gồm các bước sau:
Bước 1: Xử lý và mô tả dữ liệu Dữ liệu được tiền xử lý bằng cách mã hóa các biến định tính như nghề nghiệp, trình độ học vấn và tình trạng hôn nhân. Sau đó, phân tích thống kê mô tả được tiến hành để phác họa bức tranh tổng quan về mẫu nghiên cứu, bao gồm tần suất, tỷ lệ phần trăm và các chỉ số trung tâm – phân tán của các biến định lượng như tuổi và số dư tài khoản. Phân tích bảng chéo được sử dụng để nhận diện các mẫu hình ban đầu trong hành vi vay tiêu dùng.
Bước 2: Kiểm định mối liên hệ giữa các biến Để kiểm tra mối quan hệ giữa các biến độc lập và quyết định vay tiêu dùng (biến phụ thuộc nhị phân), nghiên cứu sử dụng phép kiểm định Chi-bình phương đối với các biến định tính. Các biến cho kết quả có ý nghĩa thống kê sẽ được lựa chọn đưa vào giai đoạn mô hình hóa tiếp theo.
Bước 3: Phân tích mô hình hồi quy nhị phân Nghiên cứu triển khai ba mô hình hồi quy nhị phân nhằm dự báo và đánh giá xác suất khách hàng có hành vi vay tiêu dùng, bao gồm: hồi quy logistic, hồi quy probit, mô hình cloglog ). Mỗi mô hình được ước lượng theo hai cấp độ:
Hồi quy đa biến, nhằm xác định tác động tổng hợp và kiểm soát ảnh hưởng lẫn nhau giữa các biến.
Bước 4: Đánh giá và so sánh mô hình
Hiệu quả của các mô hình được so sánh thông qua các tiêu chí phổ biến trong phân tích dự báo: chỉ số AIC (Akaike Information Criterion) nhằm đo lường mức độ phù hợp mô hình;
Bước 5: Dự báo
Trong bối cảnh tài chính hiện đại, vay tiêu dùng đóng vai trò quan trọng đối với quá trình kích thích chi tiêu hộ gia đình và thúc đẩy tăng trưởng kinh tế. Hành vi vay tiêu dùng, xét về bản chất, là kết quả của quá trình ra quyết định chịu tác động bởi nhiều yếu tố kinh tế – xã hội và nhân khẩu học. Theo khung lý thuyết lựa chọn hợp lý (Rational Choice Theory), cá nhân sẽ cân nhắc giữa lợi ích kỳ vọng và chi phí tiềm ẩn trước khi đưa ra quyết định vay vốn. Do đó, đặc điểm cá nhân như tuổi tác, trình độ học vấn, tình trạng hôn nhân, nghề nghiệp hay mức thu nhập có thể đóng vai trò quan trọng trong việc hình thành hành vi vay.
Các nghiên cứu trước đây cũng chỉ ra rằng:
Độ tuổi có liên hệ mật thiết đến hành vi tài chính: Nhóm người trẻ tuổi thường có xu hướng vay để phục vụ nhu cầu tiêu dùng cao và đầu tư cho tương lai, trong khi nhóm lớn tuổi thường thận trọng và ưu tiên tiết kiệm.
Trình độ học vấn phản ánh năng lực tiếp cận thông tin và hiểu biết về sản phẩm tài chính, từ đó ảnh hưởng đến khả năng đánh giá và chấp nhận rủi ro khi vay.
Tình trạng hôn nhân liên quan đến cấu trúc tài chính hộ gia đình và mức độ ổn định kinh tế, từ đó chi phối động cơ vay vốn.
Nghề nghiệp và thu nhập là chỉ báo về khả năng tài chính và mức độ tín nhiệm của khách hàng trong mắt tổ chức tín dụng.
Những yếu tố này, khi được phân tích một cách hệ thống và định lượng, có thể cung cấp những hiểu biết sâu sắc về động lực và khuynh hướng vay tiêu dùng trong các nhóm khách hàng khác nhau.
Trong lĩnh vực nghiên cứu hành vi tài chính cá nhân, dữ liệu định tính – bao gồm các biến phân loại như nghề nghiệp, trình độ học vấn hay tình trạng hôn nhân – có giá trị lớn trong việc lý giải các xu hướng vay tiêu dùng. Mặc dù không mang tính định lượng trực tiếp, các biến này phản ánh đặc điểm xã hội và cấu trúc nhân khẩu học của người tiêu dùng tài chính, từ đó giúp hình thành các mô hình hành vi đặc thù.
Việc phân tích dữ liệu định tính trong nghiên cứu định lượng thường được triển khai thông qua các kỹ thuật thống kê mô tả, phân tích bảng chéo và kiểm định Chi-bình phương để xác định sự khác biệt có ý nghĩa giữa các nhóm. Sau đó, dữ liệu được mã hóa thích hợp để đưa vào các mô hình hồi quy nhị phân, qua đó đo lường ảnh hưởng và dự báo khả năng xảy ra của hành vi vay tiêu dùng.
Hồi quy logistic là phương pháp phổ biến nhất khi biến phụ thuộc là nhị phân, đặc biệt trong các nghiên cứu về hành vi tài chính. Mô hình này cho phép ước lượng xác suất xảy ra của sự kiện (ví dụ: quyết định vay), đồng thời kiểm định ảnh hưởng của các biến độc lập lên xác suất đó.
Hai mô hình này là những biến thể mở rộng của hồi quy nhị phân, với giả định khác nhau về phân phối sai số. Mô hình probit sử dụng phân phối chuẩn tích lũy, phù hợp khi dữ liệu có xu hướng trung bình, trong khi cloglog được ưa chuộng khi mô hình hóa các sự kiện hiếm hoặc phân phối lệch mạnh.
Hành vi vay tiêu dùng đã trở thành chủ đề thu hút nhiều sự quan tâm trong các nghiên cứu định tính và định lượng trong lĩnh vực tài chính, kinh tế học hành vi và ngân hàng vi mô. Các công trình trước đây đã tập trung khám phá mối quan hệ giữa đặc điểm nhân khẩu học, điều kiện tài chính cá nhân và khả năng tiếp cận tín dụng với quyết định vay của cá nhân hoặc hộ gia đình.
Nghiên cứu của Moro et al. (2014) sử dụng mô hình hồi quy logistic để phân tích dữ liệu khách hàng ngân hàng nhằm xác định các yếu tố ảnh hưởng đến việc tiếp nhận các chiến dịch marketing liên quan đến sản phẩm tiền gửi có kỳ hạn. Mặc dù không trực tiếp phân tích hành vi vay tiêu dùng, nghiên cứu này cho thấy vai trò quan trọng của các biến như độ tuổi, nghề nghiệp, trình độ học vấn và tình trạng hôn nhân trong việc dự đoán hành vi tài chính của khách hàng. Dữ liệu được thu thập từ một ngân hàng Bồ Đào Nha và có cấu trúc tương tự như bộ dữ liệu được sử dụng trong nghiên cứu này.
Nguyen & Le (2020) trong nghiên cứu tại Việt Nam đã áp dụng mô hình probit và logistic để đánh giá ảnh hưởng của các yếu tố nhân khẩu học như giới tính, thu nhập, và vị trí địa lý đến hành vi tiếp cận tín dụng tiêu dùng. Kết quả cho thấy, khách hàng trẻ tuổi, có thu nhập ổn định và trình độ học vấn cao có xu hướng vay nhiều hơn, đặc biệt trong các sản phẩm tín dụng không có tài sản đảm bảo.
Kotzé và Smit (2008) tại Nam Phi nhấn mạnh vai trò của các yếu tố tâm lý – xã hội như thái độ với nợ, xu hướng tiêu dùng và ảnh hưởng của xã hội trong quyết định vay. Mặc dù được triển khai theo hướng định tính, nghiên cứu này cung cấp nền tảng lý luận hữu ích để giải thích những khác biệt trong hành vi vay vốn giữa các nhóm dân cư có đặc điểm xã hội khác nhau.
Ngoài ra, các nghiên cứu của Bhattacharjee & Rajeev (2013) tại Ấn Độ và Ghosh (2013) tại Bangladesh đã phân tích tác động của giới tính, nghề nghiệp, và lịch sử tín dụng đến khả năng tiếp cận tín dụng cá nhân và hành vi vay nợ trong môi trường thu nhập thấp và khu vực phi chính thức.
Trong nghiên cứu xã hội học, marketing hay tài chính tiêu dùng, hai chỉ số phổ biến dùng để đo lường mối quan hệ giữa đặc điểm cá nhân và hành vi (như vay tiêu dùng) là Relative Risk (RR) và Odds Ratio (OR). Các chỉ số này giúp đánh giá mức độ khác biệt về khả năng xảy ra hành vi giữa các nhóm khách hàng có hoặc không có một đặc điểm nhất định (ví dụ: có nhà ở hoặc không, đã kết hôn hoặc độc thân).
Relative Risk (RR) – hay còn gọi là nguy cơ tương đối – so sánh xác suất xảy ra hành vi vay tiêu dùng giữa hai nhóm:
\[ RR = \frac{P_1}{P_0} \]
Trong đó:
Diễn giải:
Odds Ratio (OR) đo lường tỷ lệ odds (khả năng xảy ra so với không xảy ra) giữa hai nhóm:
\[ OR = \frac{P_1 / (1 - P_1)}{P_0 / (1 - P_0)} = \frac{P_1 (1 - P_0)}{P_0 (1 - P_1)} \]
Trong mô hình hồi quy logistic, kết quả hồi quy chính là log(OR):
\[ \log(OR) = X\beta \]
Diễn giải:
Mô hình Logit được sử dụng phổ biến để phân tích mối quan hệ giữa một biến phụ thuộc nhị phân và một hoặc nhiều biến độc lập (liên tục hoặc định tính). Mục tiêu là ước lượng xác suất xảy ra sự kiện (ở đây là tái phát bệnh).
Xác suất tái phát của cá thể thứ \(i\) được mô hình hóa như sau:
\[ P_i = P(Y_i = 1 | X_i) = \frac{1}{1 + e^{-(\beta_0 + \beta_1 X_{1i} + \dots + \beta_k X_{ki})}} = \frac{e^{Z_i}}{1 + e^{Z_i}} \]
Trong đó:
Để tuyến tính hóa mô hình, người ta sử dụng hàm logit:
\[ L_i = \ln\left( \frac{P_i}{1 - P_i} \right) = \beta_0 + \beta_1 X_{1i} + \dots + \beta_k X_{ki} \]
Tỷ số \(\frac{P_i}{1 - P_i}\) được gọi là tỷ số chênh (odds), cho biết khả năng xảy ra sự kiện so với không xảy ra sự kiện. Mỗi hệ số \(\beta_k\) được diễn giải bằng tỷ số chênh lệch (Odds Ratio – OR):
\[ OR_k = e^{\beta_k} \]
Ý nghĩa: Khi biến \(X_k\) tăng một đơn vị (và các biến khác giữ nguyên), odds của việc tái phát bệnh sẽ thay đổi \(e^{\beta_k}\) lần.
Mô hình Probit là một lựa chọn thay thế cho Logit, với khác biệt chính nằm ở hàm liên kết. Probit sử dụng hàm phân phối tích lũy chuẩn \(\Phi(Z)\) thay vì hàm logistic.
Mô hình có dạng:
\[ P_i = P(Y_i = 1 | X_i) = \Phi(Z_i) = \int_{-\infty}^{Z_i} \frac{1}{\sqrt{2\pi}} e^{-t^2/2} dt \]
Trong đó:
\[ Z_i = \beta_0 + \beta_1 X_{1i} + \dots + \beta_k X_{ki} \]
Mặc dù Logit và Probit sử dụng các phân phối khác nhau (logistic vs chuẩn), trong thực tế hai mô hình thường cho kết quả khá tương đồng. Tuy nhiên, Logit được ưa chuộng hơn do khả năng diễn giải đơn giản thông qua Odds Ratio.
Mô hình Cloglog là một dạng của hồi quy nhị phân, trong đó hàm liên kết là:
\[ \log(-\log(1 - p)) = \eta = \beta_0 + \beta_1 x_1 + \cdots + \beta_k x_k \]
Từ đó, xác suất xảy ra sự kiện là:
\[ p = 1 - \exp(-\exp(\eta)) \]
Để ước lượng các tham số \(\beta\), mô hình sử dụng phương pháp ước lượng hợp lý tối đa (MLE), thông qua việc cực đại hóa hàm log-likelihood:
\[ \ell(\beta) = \sum_{i=1}^{n} \left[ y_i \log(1 - \exp(-\exp(\eta_i))) + (1 - y_i)( -\exp(\eta_i)) \right] \]
Phương pháp này đặc biệt phù hợp khi xác suất xảy ra sự kiện không đối xứng hoặc sự kiện hiếm. Hàm liên kết cloglog giúp mô hình phản ánh tốt hơn sự thay đổi nhanh chóng về xác suất gần ngưỡng 1.
Để đánh giá mức độ phù hợp của mô hình hồi quy nhị phân (logit, probit, cloglog), các chỉ số được dùng để đánh giá phổ biến như:
Công thức:
\[ AIC = -2 \cdot \log(L) + 2k \]
Trong đó:
\(L\) là giá trị hàm hợp lý tối đa (likelihood),
\(k\) là số lượng tham số ước lượng trong mô hình.
Ý nghĩa: AIC là thước đo cân bằng giữa độ phù hợp của mô hình và độ phức tạp của nó. Mô hình có AIC thấp hơn được xem là phù hợp hơn, tránh được hiện tượng overfitting.
Do hàm Likelihood là một tích phức tạp, người ta thường sử dụng logarit của nó để dễ tính toán:
\[ \ln L = \sum_{i=1}^{n} \left[ Y_i \ln(P_i) + (1 - Y_i) \ln(1 - P_i) \right] \]
Quá trình ước lượng sẽ tìm các giá trị \(\hat{\beta}_0, \hat{\beta}_1, \dots, \hat{\beta}_k\) sao cho hàm log-likelihood đạt cực đại. Việc tối ưu hóa này thường được thực hiện bằng các thuật toán số như Newton-Raphson, Fisher scoring, hay Gradient ascent.
Bộ dữ liệu ngân hàng được công khai trên nền tảng Kaggle, bao gồm 11.162 quan sát (observations) và 17 phản ánh thông tin về biến (variables) khách hàng từ một chiến dịch tiếp thị qua điện thoại tại một ngân hàng ở châu Âu. Dữ liệu phản ánh các đặc điểm nhân khẩu học, tài chính, lịch sử vay và thông tin tiếp thị của khách hàng.
library(readr)
library(dplyr)
library(rsample)
library(kableExtra)
# Đọc dữ liệu vào biến data
data <- read.csv(file.choose(), header = TRUE, sep = ",")
# Chuyển các biến định tính sang kiểu factor
data <- data %>%
mutate(
loan = as.factor(loan),
housing = as.factor(housing),
marital = as.factor(marital),
education = as.factor(education)
)
# Hiển thị số quan sát và biến
cat(paste0("Bộ dữ liệu gồm ", nrow(data), " quan sát và ", ncol(data), " biến.\n\n"))
## Bộ dữ liệu gồm 11162 quan sát và 17 biến.
# Hiển thị 5 dòng đầu tiên của dữ liệu
data %>%
head(5) %>%
kable(
caption = "<b style='display:block; text-align:center;'>Bảng 1: Năm dòng đầu tiên của dữ liệu</b>",
escape = FALSE, align = 'c'
) %>%
kable_styling(
position = "center",
font_size = 13,
full_width = TRUE,
bootstrap_options = c("striped", "hover")
) %>%
scroll_box(width = "100%")
age | job | marital | education | default | balance | housing | loan | contact | day | month | duration | campaign | pdays | previous | poutcome | deposit |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
59 | admin. | married | secondary | no | 2343 | yes | no | unknown | 5 | may | 1042 | 1 | -1 | 0 | unknown | yes |
56 | admin. | married | secondary | no | 45 | no | no | unknown | 5 | may | 1467 | 1 | -1 | 0 | unknown | yes |
41 | technician | married | secondary | no | 1270 | yes | no | unknown | 5 | may | 1389 | 1 | -1 | 0 | unknown | yes |
55 | services | married | secondary | no | 2476 | yes | no | unknown | 5 | may | 579 | 1 | -1 | 0 | unknown | yes |
54 | admin. | married | tertiary | no | 184 | no | no | unknown | 5 | may | 673 | 2 | -1 | 0 | unknown | yes |
Dựa trên tổng quan các nghiên cứu trước về các yếu tố tác động đến quyết định vay tiêu dùng của khách hàng cá nhân trong lĩnh vực tài chính – ngân hàng, đề tài này đề xuất một mô hình nghiên cứu nhằm phân tích mối quan hệ giữa đặc điểm nhân khẩu học và tài chính của khách hàng với khả năng tham gia vay tiêu dùng tại ngân hàng.
Cụ thể, các biến độc lập được đưa vào mô hình bao gồm: tình trạng hôn nhân (marital), trình độ học vấn (education), tuổi (age) và số dư tài khoản ngân hàng (balance). Biến phụ thuộc là quyết định vay tiêu dùng, được thể hiện dưới dạng nhị phân (có hoặc không).
library(DiagrammeR)
grViz("
digraph loan_model {
graph [layout = dot, rankdir = LR]
node [shape = box, style = filled, fillcolor = darkgreen, fontcolor = white]
X1 [label = 'Marital Status']
X2 [label = 'Education']
X3 [label = 'Age']
X4 [label = 'Account Balance']
Y [label = 'Loan (Yes/No)', shape = box, fillcolor = darkgreen]
X1 -> Y
X2 -> Y
X3 -> Y
X4 -> Y
}
")
library(dplyr)
library(knitr)
library(kableExtra)
# Lọc các biến cần thiết
data1 <- data %>%
select(age, balance, housing, marital, education, loan)
# Xem cấu trúc và 5 dòng đầu
data1 %>%
head(5) %>%
kable(
caption = "<b style='display:block; text-align:center;'>Bảng 1: Năm dòng đầu tiên của bộ dữ liệu nghiên cứu</b>",
escape = FALSE, align = 'c'
) %>%
kable_styling(
position = "center",
font_size = 13,
full_width = TRUE,
bootstrap_options = c("striped", "hover")
) %>%
scroll_box(width = "100%")
age | balance | housing | marital | education | loan |
---|---|---|---|---|---|
59 | 2343 | yes | married | secondary | no |
56 | 45 | no | married | secondary | no |
41 | 1270 | yes | married | secondary | no |
55 | 2476 | yes | married | secondary | no |
54 | 184 | no | married | tertiary | no |
loan: Biến phản ánh hành vi vay tiêu dùng của khách hàng.
yes: Khách hàng có vay tiêu dùng
no: Khách hàng không vay tiêu dùng
a) Biến định tính:
marital: Tình trạng hôn nhân (gồm married, single, divorced). Biến này cho phép xem xét ảnh hưởng của ràng buộc gia đình đến hành vi tài chính.
education: Trình độ học vấn (gồm primary, secondary, tertiary, unknown). Trình độ học vấn là một yếu tố tiềm năng ảnh hưởng đến hiểu biết tài chính và quyết định vay.
b) Biến định lượng:
age: Tuổi của khách hàng (tính theo đơn vị năm). Đây là biến số liên tục đại diện cho vòng đời kinh tế của cá nhân.
balance: Số dư trung bình trong tài khoản ngân hàng. Biến này có thể mang giá trị âm (nợ), phản ánh tình hình tài chính cá nhân và khả năng thanh toán của khách hàng.
# Tạo bảng tần số và tần suất cho biến loan
loan_table <- as.data.frame(table(data1$loan))
colnames(loan_table) <- c("Loan", "Frequency")
loan_table$Proportion <- prop.table(loan_table$Frequency)
# Hiển thị bảng tần số và tần suất
loan_table
## Loan Frequency Proportion
## 1 no 9702 0.8691991
## 2 yes 1460 0.1308009
# Thêm thư viện
library(ggplot2)
library(gridExtra)
library(dplyr)
# Tính % để hiển thị lên biểu đồ tròn
loan_table$Percent <- paste0(round(loan_table$Proportion * 100, 1), "%")
# Biểu đồ cột
p1 <- ggplot(loan_table, aes(x = Loan, y = Frequency)) +
geom_col(fill = "#9370DB", color = "black") +
geom_text(aes(label = Frequency), vjust = -0.5) +
labs(title = "Tần số vay tiêu dùng", x = "Vay tiêu dùng", y = "Số lượng") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
# Biểu đồ tròn
p2 <- ggplot(loan_table, aes(x = "", y = Proportion, fill = Loan)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = Percent), position = position_stack(vjust = 0.5)) +
labs(title = "Tỷ lệ vay tiêu dùng", x = NULL, y = NULL) +
theme_void() +
theme(plot.title = element_text(hjust = 0.5))
# Hiển thị 2 biểu đồ cạnh nhau
grid.arrange(p1, p2, ncol = 2)
Nhận xét:
Phân tích mô tả định tính đối với biến Loan – đại diện cho hành vi vay tiêu dùng của khách hàng – cho thấy sự phân bố không đồng đều rõ rệt giữa hai nhóm: “có vay tiêu dùng” (yes) và “không vay tiêu dùng” (no).
Cụ thể:
Trong tổng số 11.162 khách hàng, có đến 9.702 người (chiếm 86.9%) không có khoản vay tiêu dùng, trong khi chỉ có 1.460 người (tương đương 13.1%) có vay tiêu dùng.
Biểu đồ tần số minh họa trực quan cho thấy sự vượt trội về số lượng ở nhóm không vay, trong khi nhóm có vay chỉ chiếm một phần nhỏ trong tổng thể dữ liệu. Biểu đồ tròn càng củng cố điều này khi cho thấy phần lớn diện tích hình tròn được bao phủ bởi nhóm “no”.
# Tạo bảng tần số và tần suất cho biến marital
marital_table <- as.data.frame(table(data1$marital))
colnames(marital_table) <- c("Marital", "Frequency")
marital_table$Proportion <- prop.table(marital_table$Frequency)
marital_table
## Marital Frequency Proportion
## 1 divorced 1293 0.1158395
## 2 married 6351 0.5689841
## 3 single 3518 0.3151765
# Thêm cột phần trăm dạng chuỗi
marital_table$Percent <- paste0(round(marital_table$Proportion * 100, 1), "%")
# Biểu đồ cột
p1 <- ggplot(marital_table, aes(x = Marital, y = Frequency)) +
geom_col(fill = "#6495ED", color = "black") +
geom_text(aes(label = Frequency), vjust = -0.5) +
labs(title = "Tần số theo tình trạng hôn nhân", x = "Tình trạng hôn nhân", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
# Biểu đồ tròn
p2 <- ggplot(marital_table, aes(x = "", y = Proportion, fill = Marital)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = Percent), position = position_stack(vjust = 0.5), size = 4) +
labs(title = "Tỷ lệ tình trạng hôn nhân", x = NULL, y = NULL) +
theme_void() +
theme(plot.title = element_text(hjust = 0.5))
# Hiển thị 2 biểu đồ cạnh nhau
grid.arrange(p1, p2, ncol = 2)
Nhận xét:
Cấu trúc phân bố tình trạng hôn nhân – Chiếm ưu thế là nhóm đã kết hôn Married (Đã kết hôn): 56.9% – Đây là nhóm chiếm tỷ trọng lớn nhất trong tập dữ liệu, phản ánh phần lớn khách hàng là người trưởng thành, có cuộc sống ổn định và thường có trách nhiệm tài chính đối với gia đình. Điều này gợi ý rằng các sản phẩm tài chính dài hạn (như tiết kiệm, đầu tư cho con cái, bảo hiểm…) sẽ phù hợp với nhóm này.
Single (Độc thân): 31.5% – Là nhóm lớn thứ hai. Họ có thể có thu nhập tự do hơn, ít ràng buộc tài chính và có xu hướng chi tiêu linh hoạt, đầu tư vào bản thân hoặc tiêu dùng cá nhân. Đây là nhóm tiềm năng cho các sản phẩm như thẻ tín dụng, vay tiêu dùng hoặc ưu đãi du lịch, giáo dục.
Hai nhóm này chiếm tổng cộng hơn 88%, cho thấy rằng phần lớn khách hàng thuộc độ tuổi lao động và có khả năng tài chính độc lập – một dấu hiệu thuận lợi cho việc phân phối các sản phẩm ngân hàng.
Nhóm ly hôn – Tỷ lệ thấp nhưng mang ý nghĩa riêng biệt Divorced (Ly hôn): 11.6% – Mặc dù chiếm tỷ trọng nhỏ nhất, đây là nhóm có đặc điểm tài chính và tâm lý đặc thù. Họ có thể vừa trải qua biến động lớn về tài chính, thu nhập có thể giảm, hoặc thay đổi mục tiêu tiêu dùng. Các sản phẩm tài chính cần cá nhân hóa hơn, như hỗ trợ tài chính linh hoạt hoặc tư vấn tiết kiệm lại, có thể phù hợp với nhóm này.
# Tạo bảng tần số và tần suất cho biến education
edu_table <- as.data.frame(table(data1$education))
colnames(edu_table) <- c("Education", "Frequency")
edu_table$Proportion <- prop.table(edu_table$Frequency)
edu_table$Percent <- paste0(round(edu_table$Proportion * 100, 1), "%")
edu_table
## Education Frequency Proportion Percent
## 1 primary 1500 0.13438452 13.4%
## 2 secondary 5476 0.49059308 49.1%
## 3 tertiary 3689 0.33049633 33%
## 4 unknown 497 0.04452607 4.5%
# Biểu đồ cột
p1 <- ggplot(edu_table, aes(x = Education, y = Frequency)) +
geom_col(fill = "#FF9966", color = "black") +
geom_text(aes(label = Frequency), vjust = -0.5) +
labs(title = "Tần số theo trình độ học vấn", x = "Trình độ", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
# Biểu đồ tròn
p2 <- ggplot(edu_table, aes(x = "", y = Proportion, fill = Education)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = Percent), position = position_stack(vjust = 0.5), size = 4) +
labs(title = "Tỷ lệ trình độ học vấn", x = NULL, y = NULL) +
theme_void() +
theme(plot.title = element_text(hjust = 0.5))
# Gộp 2 biểu đồ
grid.arrange(p1, p2, ncol = 2)
Nhận xét:
Trình độ học vấn phổ biến – Nhóm học vấn trung học (secondary) chiếm ưu thế Secondary (Trung học phổ thông): Chiếm 49.1%, là nhóm có tỷ lệ cao nhất trong tập dữ liệu. Đây là một tín hiệu cho thấy phần lớn khách hàng đã hoàn tất giáo dục cơ bản và có khả năng tiếp cận các dịch vụ tài chính cơ bản đến trung cấp. Họ thường là lực lượng lao động phổ thông, ổn định, và có khả năng chi tiêu đều đặn – một nhóm khách hàng tiềm năng cho các sản phẩm tín dụng tiêu dùng, vay mua xe hoặc các gói tiết kiệm linh hoạt.
Tertiary (Đại học, sau đại học): Đứng thứ hai với 33%. Nhóm này thường có trình độ chuyên môn cao, thu nhập tốt hơn và tư duy tài chính dài hạn. Đây là đối tượng lý tưởng cho các sản phẩm tài chính như đầu tư, tiết kiệm lãi suất cao, bảo hiểm hoặc sản phẩm ngân hàng số tích hợp.
→ Hai nhóm này kết hợp lại chiếm tới 82.1%, cho thấy rằng phần lớn khách hàng có trình độ học vấn từ trung học trở lên, điều này thuận lợi cho các chiến lược truyền thông, tiếp thị tài chính phức tạp hơn vì nhóm này có khả năng tiếp nhận thông tin tốt.
Nhóm trình độ thấp và không xác định Primary (Tiểu học): Chiếm 13.4%. Mặc dù không phải là nhóm lớn, nhưng đây là nhóm dễ bị tổn thương tài chính và có thể hạn chế trong việc tiếp cận hoặc hiểu các sản phẩm ngân hàng phức tạp. Cần thiết kế các gói dịch vụ đơn giản, hỗ trợ tư vấn rõ ràng hoặc cung cấp qua các kênh trực tiếp, truyền thống để đảm bảo tính bao trùm tài chính. Unknown (Không xác định): Chiếm 4.5%. Đây là một tỷ lệ tương đối nhỏ
library(ggplot2)
library(dplyr)
library(gridExtra)
# Mô tả thống kê cho biến age
age_summary <- data %>%
summarise(
Min = min(age, na.rm = TRUE),
Q1 = quantile(age, 0.25, na.rm = TRUE),
Median = median(age, na.rm = TRUE),
Mean = mean(age, na.rm = TRUE),
Q3 = quantile(age, 0.75, na.rm = TRUE),
Max = max(age, na.rm = TRUE),
SD = sd(age, na.rm = TRUE)
)
# Hiển thị bảng thống kê
knitr::kable(age_summary, caption = "Bảng mô tả thống kê biến độ tuổi (age)")
Min | Q1 | Median | Mean | Q3 | Max | SD |
---|---|---|---|---|---|---|
18 | 32 | 39 | 41.23195 | 49 | 95 | 11.91337 |
# Histogram
p1 <- ggplot(data, aes(x = age)) +
geom_histogram(binwidth = 5, fill = "#6495ED", color = "black") +
labs(title = "Biểu đồ histogram độ tuổi", x = "Tuổi", y = "Tần số") +
theme_minimal()
# Density plot (thay cho boxplot)
p2 <- ggplot(data, aes(x = age)) +
geom_density(fill = "#FF9966", alpha = 0.7) +
labs(title = "Biểu đồ mật độ (density) độ tuổi", x = "Tuổi", y = "Mật độ") +
theme_minimal()
# Hiển thị 2 biểu đồ cạnh nhau
grid.arrange(p1, p2, ncol = 2)
Nhận xét:
Thống kê | Giá trị | Diễn giải ý nghĩa |
---|---|---|
Min | 18 | Tuổi nhỏ nhất – nhóm vừa trưởng thành, bắt đầu tham gia lực lượng lao động. |
Q1 (25%) | 32 | 25% dân số có độ tuổi ≤ 32. Cho thấy có một nhóm tương đối trẻ. |
Median | 39 | 50% dân số nhỏ hơn hoặc bằng 39 tuổi. Đây là tuổi trung vị – giá trị chính giữa phân phối. |
Mean | 41.23 | Tuổi trung bình, cao hơn median → chỉ ra phân phối có xu hướng lệch phải (nhiều người trẻ hơn độ tuổi trung bình). |
Q3 (75%) | 49 | 75% dân số có độ tuổi ≤ 49. Nhóm lớn nhất rơi vào độ tuổi lao động chính. |
Max | 95 | Tuổi lớn nhất – cho thấy có sự hiện diện của người cao tuổi, có thể là nhóm nghỉ hưu. |
SD | 11.91 | Độ lệch chuẩn – mức độ phân tán quanh giá trị trung bình. Ở mức ~12 năm, điều này phản ánh sự đa dạng tuổi tương đối trong mẫu. |
Biểu đồ
Biểu đồ histogram (tần số) Dạng phân phối lệch phải: Tần suất người có tuổi dưới trung bình (dưới 40) cao hơn nhóm còn lại.
Đỉnh tần suất rơi vào độ tuổi khoảng 30–35, chiếm phần lớn mẫu.
Từ độ tuổi 50 trở đi, số lượng giảm nhanh chóng, đặc biệt sau 60 tuổi.
Giải thích: Đây là biểu hiện thường thấy trong các dữ liệu dân số, nơi lực lượng lao động tập trung ở độ tuổi trung niên, trong khi người cao tuổi chiếm tỷ lệ thấp hơn do nghỉ hưu hoặc giảm hoạt động xã hội.
Biểu đồ mật độ (density) Đường cong mật độ thể hiện sự phân bố mượt hơn và trực quan hóa xác suất xuất hiện các độ tuổi.
Mật độ cao nhất (~0.045) tại nhóm tuổi khoảng 30–35, khẳng định tính chất tập trung của mẫu dữ liệu ở nhóm lao động trung niên.
Mật độ suy giảm nhanh từ 50 tuổi trở đi, và gần như bằng 0 sau tuổi 75.
Giải thích: Mật độ giảm cho thấy người ở độ tuổi cao hơn ít xuất hiện trong mẫu hơn, có thể vì các yếu tố như hưu trí, sức khỏe hoặc đặc điểm dân số.
library(ggplot2)
library(dplyr)
library(gridExtra)
# Thống kê mô tả cho biến balance
balance_summary <- data %>%
summarise(
Min = min(balance, na.rm = TRUE),
Q1 = quantile(balance, 0.25, na.rm = TRUE),
Median = median(balance, na.rm = TRUE),
Mean = mean(balance, na.rm = TRUE),
Q3 = quantile(balance, 0.75, na.rm = TRUE),
Max = max(balance, na.rm = TRUE),
SD = sd(balance, na.rm = TRUE)
)
# Hiển thị bảng thống kê
knitr::kable(balance_summary, caption = "Bảng mô tả thống kê biến số dư tài khoản (balance)")
Min | Q1 | Median | Mean | Q3 | Max | SD |
---|---|---|---|---|---|---|
-6847 | 122 | 550 | 1528.539 | 1708 | 81204 | 3225.413 |
# Density plot
p3 <- ggplot(data, aes(x = balance)) +
geom_density(fill = "#90EE90", alpha = 0.7) +
labs(title = "Biểu đồ mật độ (density) số dư tài khoản", x = "Số dư", y = "Mật độ") +
theme_minimal()
# Jitter plot
p4 <- ggplot(data, aes(x = "", y = balance)) +
geom_jitter(width = 0.1, color = "#FF5733", alpha = 0.5) +
labs(title = "Biểu đồ jitter (phân tán điểm) số dư", y = "Số dư", x = "") +
theme_minimal()
# Hiển thị 2 biểu đồ cạnh nhau
grid.arrange(p3, p4, ncol = 2)
Nhận xét:
Thống kê | Giá trị | Diễn giải ý nghĩa |
---|---|---|
Min | -6847 | Số dư nhỏ nhất – có thể là do nợ tín dụng hoặc tài khoản bị âm, phản ánh tình trạng tài chính không lành mạnh ở một số khách hàng. |
Q1 (25%) | 122 | 25% khách hàng có số dư ≤ 122 – cho thấy một tỷ lệ lớn có số dư rất thấp, có thể là nhóm ít sử dụng dịch vụ tài chính hoặc có thu nhập thấp. |
Median | 550 | 50% khách hàng có số dư ≤ 550 – số dư trung vị tương đối thấp, phản ánh rằng phần lớn khách hàng có mức tài chính khiêm tốn. |
Mean | 1528.54 | Số dư trung bình cao hơn trung vị gần 3 lần → phân phối lệch phải mạnh: một số ít khách hàng có số dư rất cao kéo trung bình lên. |
Q3 (75%) | 1708 | 75% khách hàng có số dư ≤ 1708 – nhóm khách hàng phổ thông. Chỉ 25% có số dư trên mức này, đại diện cho nhóm có tiềm lực tài chính lớn hơn. |
Max | 81204 | Số dư cao nhất – cho thấy tồn tại một số khách hàng cực kỳ giàu có, có khả năng ảnh hưởng đáng kể đến lợi nhuận ngân hàng. |
SD | 3225.41 | Độ lệch chuẩn lớn cho thấy sự phân tán mạnh của số dư tài khoản giữa các khách hàng. Dữ liệu có độ bất đối xứng và có nhiều ngoại lệ (outliers). |
Biểu đồ
Phân phối lệch phải mạnh (Right-skewed Distribution) Mean (1,528.54) lớn hơn đáng kể so với Median (550) cho thấy phân phối lệch phải rất mạnh.
Số dư cực đại (Max = 81,204) gấp gần 150 lần trung vị cho thấy tồn tại những khách hàng có số dư cực lớn (outliers).
Ngược lại, giá trị nhỏ nhất (Min = -6,847) phản ánh một số khách có thể đang nợ hoặc có tài khoản âm (tùy quy định hệ thống ngân hàng).
Độ phân tán lớn và có nhiều ngoại lệ Độ lệch chuẩn cao (SD = 3,225.41) so với Mean cho thấy số dư giữa các khách hàng không đồng đều – nhóm khách hàng rất giàu kéo trung bình lên cao.
Biểu đồ jitter plot thể hiện các điểm nằm rải rác trên trục tung, nhiều điểm nằm xa tâm phân phối – điều này xác nhận sự hiện diện của nhiều giá trị ngoại lệ (outliers).
Biểu đồ mật độ (density) Phần lớn mật độ tập trung quanh mốc gần 0, có đỉnh sắc nhọn → chứng tỏ đa số khách hàng có số dư thấp.
Tần suất giảm mạnh về bên phải, nghĩa là chỉ một số ít khách hàng nắm giữ phần lớn số dư tài khoản → đây là biểu hiện kinh điển của nguyên lý Pareto 80/20.
table_loan_edu <- table(data1$loan, data1$education)
chisq_edu <- chisq.test(table_loan_edu)
chisq_edu
##
## Pearson's Chi-squared test
##
## data: table_loan_edu
## X-squared = 97.458, df = 3, p-value < 2.2e-16
Nhận xét:
Với p-value < 0.05 (cụ thể là < 2.2e-16, rất nhỏ), ta bác bỏ giả thuyết H0 với độ tin cậy rất cao. Điều này có nghĩa là:
Có mối liên hệ có ý nghĩa thống kê giữa hành vi vay tiêu dùng và trình độ học vấn.
Việc tìm thấy mối liên hệ này không chỉ có giá trị thống kê, mà còn phản ánh các yếu tố xã hội học, tài chính và hành vi người tiêu dùng, cụ thể:
Người có trình độ học vấn khác nhau có xu hướng tài chính khác nhau:
Nhóm học vấn trung bình (secondary) có tỷ lệ vay cao nhất → có thể do nhu cầu cấp thiết hoặc thiếu công cụ tài chính thay thế.
Nhóm học vấn cao (tertiary) có tỷ lệ vay thấp hơn → phản ánh khả năng tự chủ tài chính, hoặc được tiếp cận với các công cụ tín dụng tốt hơn (thẻ tín dụng, vay tín chấp lãi thấp…).
Giáo dục ảnh hưởng đến nhận thức tài chính: Những người học cao thường được trang bị kỹ năng quản lý tài chính tốt hơn, từ đó hạn chế vay tiêu dùng nếu không thực sự cần thiết.
table_loan_marital <- table(data1$loan, data1$marital)
chisq_edu <- chisq.test(table_loan_marital)
chisq_edu
##
## Pearson's Chi-squared test
##
## data: table_loan_marital
## X-squared = 48.87, df = 2, p-value = 2.443e-11
Nhận xét
Kết quả kiểm định Chi-squared cho thấy:
Giá trị thống kê Chi-squared: 48.87
Bậc tự do (df): 2
Giá trị p (p-value): 2.443e-11
Với p-value rất nhỏ (gần bằng 0 và nhỏ hơn 0.05), ta bác bỏ giả thuyết H₀, tức là bác bỏ giả thuyết rằng không có mối liên hệ giữa tình trạng hôn nhân và việc vay tiêu dùng.
Kết quả kiểm định thống kê cho thấy có mối liên hệ có ý nghĩa thống kê giữa tình trạng hôn nhân và hành vi vay tiêu dùng của khách hàng. Nói cách khác, tình trạng hôn nhân không phải là yếu tố độc lập với việc vay tiêu dùng — nó có ảnh hưởng rõ rệt đến khả năng hoặc xu hướng vay.
Thống kê mô tả giữa hai biến
Tạo bảng tần số
##
## no yes
## primary 1295 205
## secondary 4610 866
## tertiary 3326 363
## unknown 471 26
Trực quan hoá bằng biểu đồ
df_edu_grouped <- as.data.frame(table_edu1)
colnames(df_edu_grouped) <- c("Loan", "Education", "Count")
ggplot(df_edu_grouped, aes(x = Education, y = Count, fill = Loan)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Phân bố vay tiêu dùng theo trình độ học vấn",
x = "Vay tiêu dùng",
y = "Số lượng",
fill = "Trình độ học vấn"
) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Nhận xét
Phần lớn khách hàng không vay tiêu dùng, bất kể trình độ học vấn của họ. Trong cả bốn nhóm primary, secondary, tertiary và unknown, số lượng người không vay tiêu dùng (loan = no) đều vượt trội so với nhóm có vay.
Nhóm secondary (trung học) chiếm số lượng khách hàng lớn nhất trong toàn bộ mẫu với 5.476 người, trong đó 4.610 người không vay và 866 người có vay. Đây cũng là nhóm có số khách vay tiêu dùng nhiều nhất về mặt tuyệt đối. Điều này có thể phản ánh rằng nhóm có trình độ trung học thường thuộc lực lượng lao động phổ thông, thu nhập ở mức trung bình và nhu cầu vay tiêu dùng cao để đáp ứng các khoản chi tiêu lớn hoặc cải thiện chất lượng cuộc sống.
Xét về tỷ lệ vay tiêu dùng nội bộ trong từng nhóm:
Secondary: 866/5.476 ≈ 15,8% có vay, 84,2% không vay.
Primary: 205/1.500 ≈ 13,7% có vay, 86,3% không vay.
Tertiary: 363/3.689 ≈ 9,8% có vay, 90,2% không vay.
Unknown: 26/497 ≈ 5,2% có vay, 94,8% không vay.
Kết quả này cho thấy nhóm secondary là đối tượng tiềm năng nhất cho các sản phẩm vay tiêu dùng, vừa đông đảo vừa có tỷ lệ vay cao. Ngược lại, nhóm tertiary có tỷ lệ vay thấp hơn dù quy mô dân số lớn, có thể vì khả năng tự chủ tài chính cao hoặc sử dụng các hình thức tín dụng khác. Nhóm unknown có tỷ lệ vay thấp nhất, nhiều khả năng do hạn chế tiếp cận tín dụng hoặc bị ngân hàng đánh giá rủi ro cao.
Phân tích thông qua Relative Risk và Odd Ratio
Tính Relative Risk và Odd Ratio
# Gộp nhóm học vấn: low (primary, secondary, unknown) và high (tertiary)
data1$edu_group <- ifelse(data1$education %in% c("primary", "secondary", "unknown"), "low", "high")
# Tạo bảng tần số
table_edu <- table(data1$loan, data1$edu_group)
table_edu
##
## high low
## no 3326 6376
## yes 363 1097
# Tạo ma trận với 'no' (không vay tiêu dùng) làm dòng tham chiếu
mat_edu_grouped <- matrix(c(
sum(data1$loan == "no" & data1$edu_group == "low"),
sum(data1$loan == "no" & data1$edu_group== "high"),
sum(data1$loan == "yes" & data1$edu_group == "low"),
sum(data1$loan == "yes" & data1$edu_group == "high")
),
byrow = TRUE, nrow = 2,
dimnames = list(Loan = c("no", "yes"), Education = c("low", "high")))
# Hiển thị ma trận
mat_edu_grouped
## Education
## Loan low high
## no 6376 3326
## yes 1097 363
# Tính Risk Ratio (RR) với nhóm 'no' là tham chiếu
rr_edu_grouped <- riskratio(mat_edu_grouped)
rr_edu_grouped$measure
## risk ratio with 95% C.I.
## Loan estimate lower upper
## no 1.0000000 NA NA
## yes 0.7252584 0.660633 0.7962058
# Tính Odds Ratio (OR) với nhóm 'no' là tham chiếu
or_edu_grouped <- oddsratio(mat_edu_grouped)
or_edu_grouped$measure
## odds ratio with 95% C.I.
## Loan estimate lower upper
## no 1.0000000 NA NA
## yes 0.6345435 0.5588703 0.7189472
Nhận xét
Kết quả phân tích Relative Risk (RR) và Odds Ratio (OR) giữa trình độ học vấn và hành vi vay tiêu dùng cho thấy:
Risk Ratio (RR) của nhóm trình độ học vấn cao (high) so với nhóm trình độ thấp (low) là 0,7253 (khoảng tin cậy 95%: 0,6606 – 0,7962). → Xác suất vay tiêu dùng của nhóm học vấn cao chỉ bằng khoảng 72,53% so với nhóm học vấn thấp. Khoảng tin cậy không chứa 1, nên sự khác biệt này có ý nghĩa thống kê.
Odds Ratio (OR) của nhóm học vấn cao so với nhóm học vấn thấp là 0,6345 (khoảng tin cậy 95%: 0,5589 – 0,7189). → Xác suất tương đối (odds) vay tiêu dùng của nhóm học vấn cao chỉ bằng 63,45% so với nhóm học vấn thấp. Khoảng tin cậy cũng không chứa 1, cho thấy kết quả có ý nghĩa thống kê.
Nhận xét: Những người có trình độ học vấn cao có khả năng vay tiêu dùng thấp hơn đáng kể so với nhóm có học vấn thấp, cả về xác suất tuyệt đối (RR) lẫn odds tương đối (OR). Điều này có thể phản ánh rằng nhóm học vấn cao thường có thu nhập ổn định hơn, khả năng lập kế hoạch tài chính và tích lũy tốt hơn, hoặc lựa chọn các hình thức tín dụng khác phù hợp hơn với nhu cầu của họ. Ngược lại, nhóm học vấn thấp có thể có nhu cầu vay tiêu dùng cao hơn để đáp ứng các chi tiêu thiết yếu hoặc cải thiện điều kiện sống.
Thống kê mô tả giữa hai biến
Tạo bảng tần số
##
## no yes
## divorced 1092 201
## married 5438 913
## single 3172 346
Trực quan hoá bằng biểu đồ
df_marital <- as.data.frame(table_marital1)
colnames(df_marital) <- c("Loan", "Marital", "Count")
ggplot(df_marital, aes(x = Marital , y = Count, fill = Loan)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Phân bố vay tiêu dùng theo tình trạng hôn nhân",
x = "Vay tiêu dùng",
y = "Số lượng",
fill = "Tình trạng hôn nhân"
) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Nhận xét
Phần lớn khách hàng không vay tiêu dùng, bất kể tình trạng hôn nhân của họ. Trong cả ba nhóm divorced, married và single, số lượng người không vay tiêu dùng (loan = no) đều vượt trội so với nhóm có vay.
Nhóm married (đã kết hôn) chiếm số lượng khách hàng lớn nhất trong toàn bộ mẫu với 6.351 người, trong đó 5.438 người không vay và 913 người có vay. Đây cũng là nhóm có số khách vay tiêu dùng nhiều nhất về mặt tuyệt đối. Điều này có thể phản ánh rằng người đã kết hôn thường có nhiều trách nhiệm tài chính hơn, như chi phí gia đình, con cái hoặc các khoản đầu tư lớn, từ đó nhu cầu vay tiêu dùng cao hơn so với các nhóm khác.
Xét về tỷ lệ vay tiêu dùng nội bộ trong từng nhóm:
Divorced: 201/1.293 ≈ 15,5% có vay, 84,5% không vay.
Married: 913/6.351 ≈ 14,4% có vay, 85,6% không vay.
Single: 346/3.518 ≈ 9,8% có vay, 90,2% không vay.
Kết quả này cho thấy nhóm divorced có tỷ lệ vay tiêu dùng cao nhất, dù quy mô dân số nhỏ hơn nhiều so với nhóm đã kết hôn. Điều này có thể do họ thiếu nguồn hỗ trợ tài chính từ bạn đời hoặc gặp khó khăn kinh tế sau ly hôn, dẫn đến nhu cầu vay cao hơn. Ngược lại, nhóm single có tỷ lệ vay thấp nhất, có thể vì chưa có nhiều gánh nặng tài chính hoặc có xu hướng tiêu dùng thận trọng hơn.
Mặc dù số lượng tuyệt đối vay tiêu dùng cao nhất thuộc nhóm married, nhưng xét về tỷ lệ thì nhóm divorced vẫn là đối tượng có xu hướng vay tiêu dùng cao nhất, gợi ý rằng tình trạng hôn nhân là một yếu tố quan trọng ảnh hưởng đến hành vi vay vốn.
Phân tích thông qua Relative Risk và Odd Ratio
# Tạo nhóm "married" và "others"
data1$marital_grouped <- ifelse(data1$marital == "married", "married", "others")
# Tạo bảng tần số
table_marital1 <- table(data1$loan, data1$marital_grouped)
# Lọc nhóm "married"
married_data <- subset(data1, marital_grouped == "married")
n_married <- nrow(married_data)
n_loan_yes_married <- sum(married_data$loan == "yes")
# Tạo ma trận với nhóm "no" (không vay) làm tham chiếu
mat_marital <- matrix(c(
sum(data1$loan == "no" & data1$marital_grouped == "married"), #a
sum(data1$loan == "no" & data1$marital_grouped == "others"), #b
sum(data1$loan == "yes" & data1$marital_grouped == "married"), #c
sum(data1$loan == "yes" & data1$marital_grouped == "others") #d
),
byrow = TRUE, nrow = 2,
dimnames = list(Loan = c("no", "yes"), Marital = c("married", "others")))
# Hiển thị bảng
mat_marital
## Marital
## Loan married others
## no 5438 4264
## yes 913 547
# Tính Risk Ratio và Odds Ratio
library(epitools)
rr_marital <- riskratio(mat_marital)
rr_marital$measure
## risk ratio with 95% C.I.
## Loan estimate lower upper
## no 1.0000000 NA NA
## yes 0.8524689 0.794856 0.9142577
## odds ratio with 95% C.I.
## Loan estimate lower upper
## no 1.0000000 NA NA
## yes 0.7641791 0.682012 0.855549
Nhận xét
Risk Ratio: Tỷ lệ vay tiêu dùng của nhóm “Married” là 85.2% so với nhóm “Others” (tức là nhóm không kết hôn hoặc đã ly hôn).
Vì risk ratio < 1, nên người đã kết hôn có xác suất vay thấp hơn so với người chưa kết hôn hoặc đã ly hôn.
Khoảng tin cậy 95% (0.7949 – 0.9143) không chứa giá trị 1 ⇒ sự khác biệt có ý nghĩa thống kê.
Odds Ratio:
Xác suất vay tiêu dùng tương đối (odds) ở nhóm đã kết hôn chỉ bằng 76.4% so với nhóm còn lại.
Khoảng tin cậy 95% cũng không chứa 1, nên kết luận cũng có ý nghĩa thống kê.
Có thể kết luận rằng tình trạng hôn nhân có ảnh hưởng đáng kể đến khả năng vay tiêu dùng. Cả hai chỉ số RR và OR đều cho thấy những người đã kết hôn có khả năng vay tiêu dùng thấp hơn một cách có ý nghĩa thống kê so với nhóm còn lại.
Về phía người tiêu dùng: Những người đã kết hôn có thể có xu hướng quản lý tài chính chặt chẽ hơn, thận trọng hơn trong việc vay tiêu dùng, hoặc có thu nhập ổn định nên ít cần sử dụng đến tín dụng tiêu dùng ngắn hạn.
Về phía tổ chức tín dụng: Đây là một thông tin hữu ích trong việc phân khúc khách hàng và thiết kế các sản phẩm tín dụng phù hợp.
Ví dụ, có thể thiết kế các sản phẩm vay đặc thù cho nhóm chưa kết hôn hoặc ly hôn, vốn có xu hướng sử dụng tín dụng tiêu dùng nhiều hơn.
Mục tiêu phân tích
Biểu đồ và phép kiểm định nhằm so sánh độ tuổi trung vị giữa hai nhóm:
“no”: không vay tiêu dùng,
“yes”: có vay tiêu dùng.
Dữ liệu được phân tích bằng kiểm định Wilcoxon rank-sum
Giả thuyết kiểm định:
Giả thuyết không (H₀):
Phân phối độ tuổi của hai nhóm (vay và không vay) là giống nhau về vị trí trung tâm — tức là không có sự khác biệt về độ tuổi giữa người vay và người không vay.
Giả thuyết đối (H₁):
Có sự khác biệt về vị trí trung tâm của độ tuổi giữa hai nhóm — tức là độ tuổi trung vị của người vay và người không vay khác nhau.
Biểu đồ so sánh và kiểm định Wilcoxon
# install.packages("ggpubr")
# install.packages("ggplot2")
# install.packages("dplyr")
# install.packages("ggprism")
library(ggplot2)
library(dplyr)
library(ggpubr)
library(ggprism)
# Lọc dữ liệu
data_filtered <- data %>% filter(!is.na(loan) & !is.na(age))
# Thực hiện kiểm định Wilcoxon
wilcox_result <- wilcox.test(age ~ loan, data = data_filtered)
# In kết quả chi tiết
print(wilcox_result)
##
## Wilcoxon rank sum test with continuity correction
##
## data: age by loan
## W = 7226308, p-value = 0.21
## alternative hypothesis: true location shift is not equal to 0
# Tạo label cho biểu đồ
p_value_text <- paste0("Kiểm định Wilcoxon:\nW = ", round(wilcox_result$statistic, 2),
", p = ", signif(wilcox_result$p.value, 3))
# Vẽ biểu đồ
ggplot(data_filtered, aes(x = loan, y = age, fill = loan)) +
geom_violin(trim = FALSE, alpha = 0.2, color = NA) +
geom_boxplot(width = 0.15, outlier.shape = NA, alpha = 0.6) +
geom_jitter(aes(color = loan), width = 0.1, alpha = 0.5, size = 1) +
stat_summary(fun = mean, geom = "point", shape = 23, size = 3, fill = "red") +
scale_fill_brewer(palette = "Set2") +
scale_color_brewer(palette = "Dark2") +
labs(
title = "So sánh độ tuổi theo trạng thái vay (loan)",
subtitle = p_value_text,
x = "Trạng thái vay",
y = "Độ tuổi"
) +
theme_prism(base_size = 13) +
theme(legend.position = "none")
Nhận xét
Kết quả kiểm định Wilcoxon W = 7,226,308
p-value = 0.21
Với mức ý nghĩa thông thường (α = 0.05), p-value = 0.21 > 0.05 → không có đủ bằng chứng để bác bỏ giả thuyết không (H₀). → Kết luận: Không có sự khác biệt có ý nghĩa thống kê về độ tuổi giữa nhóm vay và không vay tiêu dùng.
Phân tích biểu đồ Biểu đồ cho thấy phân bố độ tuổi khá tương đồng giữa hai nhóm.
Cả hai nhóm đều có trung vị (hình thoi đỏ) gần nhau và độ phân tán tuổi trải rộng từ khoảng 20 đến hơn 70 tuổi.
Không có dấu hiệu rõ ràng về sự chênh lệch đáng kể nào giữa hai nhóm về mặt tuổi tác.
Mặc dù có thể có những khác biệt nhỏ về trung bình hoặc phân phối độ tuổi giữa hai nhóm, nhưng kiểm định thống kê cho thấy những khác biệt đó không đáng kể về mặt thống kê. → Biến tuổi (age) không phải là yếu tố ảnh hưởng rõ rệt đến khả năng vay tiêu dùng trong tập dữ liệu này.
Mục tiêu phân tích
Biểu đồ và phép kiểm định nhằm so sánh số dư tài khoản (balance) giữa hai nhóm:
“no”: không vay tiêu dùng,
“yes”: có vay tiêu dùng.
Dữ liệu được phân tích bằng kiểm định Wilcoxon rank-sum
Giả thuyết kiểm định:
Giả thuyết không (H₀):
Phân phối số dư tài khoản của hai nhóm (vay và không vay) là giống nhau về vị trí trung tâm — tức là không có sự khác biệt về số dư tài khoản giữa người vay và người không vay.
Giả thuyết đối (H₁):
Có sự khác biệt về vị trí trung tâm của số dư tài khoản giữa hai nhóm — tức là số dư trung vị của người vay và người không vay khác nhau.
Biểu đồ so sánh và kiểm định Wilcoxon
library(ggplot2)
library(dplyr)
# Lọc dữ liệu
data_filtered <- data %>% filter(!is.na(loan) & !is.na(balance))
# Kiểm định Wilcoxon
wilcox_result <- wilcox.test(balance ~ loan, data = data_filtered)
# In kết quả chi tiết
print(wilcox_result)
##
## Wilcoxon rank sum test with continuity correction
##
## data: balance by loan
## W = 8753197, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
# Tạo nhãn kết quả kiểm định
label_text <- "Kiểm định Wilcoxon:\nW = 8753197, p < 2.2e-16"
# Vẽ biểu đồ
p <- ggplot(data_filtered, aes(x = loan, y = balance, fill = loan)) +
geom_violin(alpha = 0.4, trim = FALSE, color = NA) +
geom_jitter(width = 0.15, alpha = 0.3, size = 1.2) +
stat_summary(fun = mean, geom = "point", shape = 18, size = 4, color = "red") +
scale_fill_brewer(palette = "Pastel1") +
labs(
title = "So sánh số dư tài khoản theo trạng thái vay (loan)",
x = "Trạng thái vay",
y = "Balance"
) +
# Chèn kết quả kiểm định vào biểu đồ
annotate("text", x = 1.5, y = max(data_filtered$balance, na.rm = TRUE)*0.95,
label = label_text, size = 5, fontface = "bold", color = "black") +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 16, hjust = 0.5),
legend.position = "none"
)
# Hiển thị
print(p)
Nhận xét
Kết quả kiểm định Wilcoxon W = 8,753,197
p-value < 2.2e-16
→ Với p-value rất nhỏ (gần như bằng 0), nhỏ hơn nhiều so với ngưỡng ý nghĩa thông thường (0.05), ta có thể bác bỏ giả thuyết không (H₀).
Kết luận: Có sự khác biệt có ý nghĩa thống kê giữa số dư tài khoản của hai nhóm khách hàng (vay và không vay)..
Phân tích biểu đồ Nhóm không vay (“no”) có xu hướng có số dư tài khoản cao hơn đáng kể so với nhóm có vay (“yes”).
Phân bố số dư ở nhóm không vay rộng và có nhiều giá trị cao hơn (nhiều điểm nằm xa về phía trên).
Trung vị (hình thoi đỏ) ở nhóm không vay cao hơn rõ rệt.
Nhóm có vay tập trung phần lớn ở mức số dư thấp hơn và phân tán ít hơn.
Sự khác biệt này cho thấy rằng những khách hàng có vay tiêu dùng thường có số dư tài khoản thấp hơn so với những người không vay. Điều này phù hợp với giả định kinh tế học rằng những người có tình hình tài chính eo hẹp hơn thường có nhu cầu vay để bù đắp dòng tiền.
Một số nghiên cứu trước như Nguyen (2020) và Tran & Le (2021) đã lựa chọn sử dụng mô hình hồi quy đa biến thay vì thực hiện lần lượt hồi quy đơn biến. Cách tiếp cận này cho phép phân tích tác động tổng hợp và tương đối của nhiều yếu tố độc lập đến hành vi tài chính của người tiêu dùng, đồng thời giảm thiểu nguy cơ đưa ra kết luận sai lệch do không kiểm soát được ảnh hưởng đồng thời giữa các biến.
Chẳng hạn, Nguyen (2020) trong nghiên cứu về hành vi sử dụng thẻ tín dụng đã chỉ ra rằng một số biến như thu nhập, độ tuổi và trình độ học vấn khi phân tích riêng lẻ có thể cho kết quả đáng kể về mặt thống kê, nhưng khi đưa vào mô hình đa biến thì mức độ ảnh hưởng thay đổi rõ rệt.
Tương tự, Tran & Le (2021) trong nghiên cứu về hành vi vay tiêu dùng tại TP.HCM cũng lựa chọn tiếp cận mô hình hồi quy đa biến từ đầu, với lý do rằng hành vi tài chính thường là kết quả của sự tương tác phức tạp giữa nhiều yếu tố. Vì vậy, việc chỉ xét từng yếu tố riêng lẻ có thể làm mất đi bức tranh toàn diện.
Trên cơ sở đó, luận văn này tiếp cận trực tiếp bằng hồi quy đa biến, sau khi đã mô tả và kiểm định mối quan hệ sơ bộ giữa các biến qua phân tích định tính và thống kê mô tả.
Biến | Loại biến | Kiểm định sơ bộ | Kết quả kiểm định | Đưa vào mô hình |
---|---|---|---|---|
loan |
Định tính | — | — | Biến phụ thuộc |
marital |
Định tính | Chi-squared | Có ý nghĩa | ✓ |
education |
Định tính | Chi-squared | Có ý nghĩa | ✓ |
balance |
Định lượng | Wilcoxon | Có ý nghĩa | ✓ |
age |
Định lượng | Wilcoxon | Không ý nghĩa (> 0.05) | Không đưa vào |
Mô hình có dạng
\[ \log\ = \beta_0 + \beta_1 \cdot \text{education} + \beta_2 \cdot \text{marital} + \beta_3 \cdot \text{balance} \]
# Xây dựng mô hình hồi quy logistic
logit_model <- glm(loan ~ marital + education + balance, data = data1, family = binomial(link = "logit"))
# Hiển thị kết quả tóm tắt của mô hình
summary(logit_model)
##
## Call:
## glm(formula = loan ~ marital + education + balance, family = binomial(link = "logit"),
## data = data1)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.530e+00 1.054e-01 -14.525 < 2e-16 ***
## maritalmarried -5.315e-02 8.558e-02 -0.621 0.53456
## maritalsingle -4.834e-01 9.667e-02 -5.000 5.72e-07 ***
## educationsecondary 2.194e-01 8.499e-02 2.581 0.00984 **
## educationtertiary -2.348e-01 9.503e-02 -2.470 0.01350 *
## educationunknown -9.539e-01 2.160e-01 -4.416 1.01e-05 ***
## balance -1.935e-04 2.017e-05 -9.595 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8659.6 on 11161 degrees of freedom
## Residual deviance: 8374.1 on 11155 degrees of freedom
## AIC: 8388.1
##
## Number of Fisher Scoring iterations: 6
Biến | Nhóm so sánh | Hệ số (β) | p-value | Odds Ratio (e^β) | Diễn giải chi tiết |
---|---|---|---|---|---|
maritalsingle | So với divorced | -0.4834 | 5.72e-07 *** | 0.617 | Người độc thân có tỷ số khả năng vay bằng 0.62 lần so với người đã ly hôn. |
educationsecondary | So với primary | 0.2194 | 0.00984 ** | 1.245 | Người học trung học có tỷ số khả năng vay bằng 1.25 lần so với người học tiểu học. |
educationtertiary | So với primary | -0.2348 | 0.01350 * | 0.791 | Người học đại học có tỷ số khả năng vay bằng 0.79 lần so với người học tiểu học. |
educationunknown | So với primary | -0.9539 | 1.01e-05 *** | 0.385 | Người không rõ trình độ học vấn có tỷ số khả năng vay bằng 0.39 lần so với người học tiểu học. |
balance | - | -0.0001935 | <2e-16 *** | 0.9998* | Mỗi đơn vị tăng số dư tài khoản làm giảm nhẹ khả năng vay (OR gần 1 do hệ số rất nhỏ). |
Ghi chú
Ký hiệu | Mức ý nghĩa (p-value) | Diễn giải ngắn gọn |
---|---|---|
*** |
p < 0.001 | Rất có ý nghĩa thống kê (rất mạnh) |
** |
0.001 ≤ p < 0.01 | Có ý nghĩa thống kê (mạnh) |
* |
0.01 ≤ p < 0.05 | Có ý nghĩa thống kê (vừa phải) |
Nhận xét
balance là số dư trung bình trong tài khoản ngân hàng của khách hàng, được tính bằng USD.
Kết quả mô hình:
Hệ số hồi quy (β): –0.0001935
Giá trị p: < 0.0001 Biến này có ý nghĩa thống kê rất cao
Odds ratio: 0.9998 cho mỗi 1 USD tăng thêm
“Kết quả cho thấy rằng khi số dư tài khoản của khách hàng tăng thêm 1 USD, khả năng được ngân hàng chấp nhận cho vay có xu hướng giảm nhẹ. Cụ thể, mỗi khi khách hàng có thêm 1000 USD trong tài khoản, khả năng được vay của họ giảm khoảng 17.6% so với người có số dư thấp hơn.”
Giải thích hợp lý (theo thực tiễn ngân hàng):
Những người có số dư cao thường ít có nhu cầu vay vốn, vì họ đã có đủ tiền mặt.
Trong khi đó, những người số dư thấp hơn lại thường cần vay để chi tiêu hoặc đầu tư.
Vì vậy, ngân hàng ít khi ưu tiên hoặc ít tiếp cận các khách hàng đã có tài chính dư dả.
Tình trạng hôn nhân: maritalsingle
Kết quả: Người độc thân có odds được vay chỉ bằng khoảng 62% so với người đã ly hôn (p < 0.001).
Giải thích thực tiễn: Có thể do người độc thân bị xem là nhóm có thu nhập không ổn định hoặc ít ràng buộc tài chính, từ đó ngân hàng đánh giá rủi ro tín dụng cao hơn so với người đã có gia đình hoặc từng kết hôn.
Trình độ học vấn:
educationsecondary (trung học): Odds cao hơn nhóm tiểu học, tăng khoảng 24.5% khả năng được vay (p < 0.01).
educationtertiary (đại học): Ngược lại, odds giảm khoảng 21% so với nhóm tiểu học (p < 0.05).
educationunknown: Odds giảm rất mạnh (giảm khoảng 61.5%, p < 0.001).
Giải thích thực tiễn:
Khách hàng có trình độ trung học có thể nằm trong nhóm lao động ổn định, dễ tiếp cận gói vay tiêu dùng.
Ngạc nhiên là nhóm đại học có khả năng vay thấp hơn tiểu học — điều này có thể là do thu nhập chưa ổn định (sinh viên mới ra trường), hoặc vì họ ít nhu cầu vay nhỏ hơn.
Khách hàng không khai báo trình độ học vấn thường bị đánh giá thiếu minh bạch, làm giảm cơ hội được chấp thuận.
Tổng kết
Kết quả mô hình cho thấy các yếu tố như tình trạng hôn nhân, trình độ học vấn, và số dư tài khoản đều có ảnh hưởng đáng kể đến xác suất khách hàng được ngân hàng chấp thuận cho vay. Những biến này phản ánh phần nào cách ngân hàng đánh giá rủi ro tín dụng dựa trên thông tin cá nhân và tài chính của khách hàng.
Mô hình có dạng \[ P= \Phi\left( \beta_0 + \beta_1 \cdot \text{education}_i + \beta_2 \cdot \text{marital}_i + \beta_3 \cdot \text{balance}_i \right) \]
probit_model <- glm(loan ~ education + marital + balance,
data = data1,
family = binomial(link = "probit"))
summary(probit_model)
##
## Call:
## glm(formula = loan ~ education + marital + balance, family = binomial(link = "probit"),
## data = data1)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.542e-01 5.750e-02 -16.594 < 2e-16 ***
## educationsecondary 1.232e-01 4.611e-02 2.673 0.00752 **
## educationtertiary -1.221e-01 5.052e-02 -2.417 0.01565 *
## educationunknown -4.875e-01 1.035e-01 -4.711 2.47e-06 ***
## maritalmarried -2.921e-02 4.706e-02 -0.621 0.53478
## maritalsingle -2.604e-01 5.211e-02 -4.997 5.83e-07 ***
## balance -7.357e-05 8.812e-06 -8.349 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8659.6 on 11161 degrees of freedom
## Residual deviance: 8398.1 on 11155 degrees of freedom
## AIC: 8412.1
##
## Number of Fisher Scoring iterations: 7
Bảng tổng hợp các biến có ý nghĩa thống kê và diễn giải
Biến | Nhóm so sánh | Hệ số (β) | p-value | Diễn giải chi tiết |
---|---|---|---|---|
educationsecondary | So với primary | +0.123 | 0.00752 ** | Khách hàng học trung học có khả năng được vay cao hơn đáng kể so với nhóm học tiểu học. |
educationtertiary | So với primary | –0.122 | 0.01565 * | Khách hàng học đại học có khả năng được vay thấp hơn so với nhóm học tiểu học. |
educationunknown | So với primary | –0.488 | 2.47e-06 *** | Khách hàng không khai báo trình độ học vấn có xác suất được vay giảm mạnh so với nhóm tiểu học. |
maritalsingle | So với divorced | –0.260 | 5.83e-07 *** | Khách hàng độc thân có khả năng được vay thấp hơn đáng kể so với nhóm đã ly hôn. |
balance | – | –0.0000736 | <2e-16 *** | Mỗi 1000 USD tăng thêm trong tài khoản làm giảm đáng kể xác suất được vay (hệ số âm rất có ý nghĩa). |
Nhận xét
Tình độ học vấn:
Trung học: Tăng khả năng được vay.
Đại học: Giảm nhẹ khả năng được vay.
Không khai báo: Giảm rất mạnh khả năng được vay.
Tình trạng hôn nhân:
Người độc thân: Khả năng được vay thấp hơn người ly hôn.
Số dư tài khoản:
Số dư càng cao, xác suất được vay càng thấp (có thể vì nhóm này ít nhu cầu vay).
Mô hình Probit của bạn đã xác định rõ ràng các yếu tố ảnh hưởng đến khả năng được vay, với nhiều biến có ý nghĩa thống kê cao. Những kết quả này hoàn toàn nhất quán với hồi quy Logistic
Mô hình có dạng
\[ cloglog = 1 - \exp\left( -\exp\left( \beta_0 + \beta_1 \cdot \text{education}_i + \beta_2 \cdot \text{marital}_i + \beta_3 \cdot \text{balance}_i \right) \right) \]
cloglog_model <- glm(loan ~ education + marital + balance,
data = data1,
family = binomial(link = "cloglog"))
summary(cloglog_model)
##
## Call:
## glm(formula = loan ~ education + marital + balance, family = binomial(link = "cloglog"),
## data = data1)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.622e+00 9.658e-02 -16.793 < 2e-16 ***
## educationsecondary 2.000e-01 7.827e-02 2.555 0.0106 *
## educationtertiary -2.190e-01 8.838e-02 -2.478 0.0132 *
## educationunknown -9.064e-01 2.082e-01 -4.354 1.33e-05 ***
## maritalmarried -4.915e-02 7.804e-02 -0.630 0.5288
## maritalsingle -4.473e-01 8.912e-02 -5.019 5.19e-07 ***
## balance -1.877e-04 1.934e-05 -9.701 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8659.6 on 11161 degrees of freedom
## Residual deviance: 8371.2 on 11155 degrees of freedom
## AIC: 8385.2
##
## Number of Fisher Scoring iterations: 6
Biến | Nhóm so sánh so với nhóm tham chiếu | Hệ số β | Diễn giải chi tiết |
---|---|---|---|
educationsecondary | Trung học vs. Tiểu học | +0.200 | Khách hàng học trung học có xác suất được vay cao hơn, phản ánh mức độ ổn định tài chính nhất định. |
educationtertiary | Đại học vs. Tiểu học | –0.219 | Khách hàng học đại học có xác suất được vay thấp hơn nhóm học tiểu học, có thể do thu nhập chưa ổn định. |
educationunknown | Không khai báo học vấn vs. Tiểu học | –0.906 | Khách hàng không khai báo trình độ học vấn có xác suất được vay thấp hơn rõ rệt, phản ánh rủi ro tín dụng. |
maritalsingle | Độc thân vs. Ly hôn | –0.447 | Khách hàng độc thân có xác suất được vay giảm đáng kể, có thể do thu nhập hoặc rủi ro thanh toán cao hơn. |
balance | – | –0.000188 | Mỗi 1000 USD tăng thêm trong tài khoản làm giảm xác suất được vay, cho thấy nhóm này ít nhu cầu vay. |
Nhận xét
Trình độ học vấn
Học trung học (educationsecondary):
Có hệ số dương, ý nghĩa thống kê (p=0.0106).
Xác suất được vay cao hơn nhóm học tiểu học.
Thực tiễn: Nhóm trung học thường có công việc ổn định và nhu cầu tín dụng tiêu dùng, được ngân hàng ưu tiên.
Học đại học (educationtertiary):
Hệ số âm, ý nghĩa thống kê (p=0.0132).
Xác suất được vay giảm so với nhóm tiểu học.
Thực tiễn: Có thể do nhóm này mới ra trường, thu nhập chưa ổn định, hoặc ít sử dụng khoản vay nhỏ lẻ.
Không khai báo trình độ học vấn (educationunknown):
Hệ số âm mạnh, ý nghĩa rất cao (p<0.001).
Xác suất được vay giảm đáng kể.
Thực tiễn: Việc không minh bạch thông tin học vấn thường bị đánh giá rủi ro tín dụng cao.
Tình trạng hôn nhân
Độc thân (maritalsingle):
Hệ số âm rõ rệt, ý nghĩa thống kê cao (p<0.001).
Xác suất được vay thấp hơn đáng kể so với nhóm đã ly hôn.
Thực tiễn: Khách hàng độc thân có thể bị xem là ít ràng buộc trách nhiệm tài chính, từ đó bị đánh giá rủi ro thanh toán cao hơn.
Đã kết hôn (maritalmarried):
Không có ý nghĩa thống kê (p=0.5288).
Thực tiễn: Không có sự khác biệt đáng kể giữa khách hàng đã kết hôn và đã ly hôn về khả năng được vay.
Số dư tài khoản (balance)
Hệ số âm rất nhỏ nhưng ý nghĩa thống kê cực cao (p<0.001).
Mỗi 1000 USD tăng thêm trong tài khoản làm giảm đáng kể xác suất được vay.
Thực tiễn: Khách hàng có số dư cao thường ít nhu cầu vay tiêu dùng, hoặc sử dụng các kênh tín dụng khác, nên ngân hàng không ưu tiên duyệt vay.
Chỉ số AIC
# So sánh AIC giữa các mô hình
aic <- data.frame(
Model = c("Logit_model", "Probit_model", "Cloglog_model"),
AIC = c(
AIC(logit_model),
AIC(probit_model),
AIC(cloglog_model)
)
)
print(aic)
## Model AIC
## 1 Logit_model 8388.086
## 2 Probit_model 8412.122
## 3 Cloglog_model 8385.224
Chỉ số BIC
# So sánh bIC giữa các mô hình
bic <- data.frame(
Model = c("Logit_model", "Probit_model", "Cloglog_model"),
BIC = c(
BIC(logit_model),
BIC(probit_model),
BIC(cloglog_model)
)
)
print(bic)
## Model BIC
## 1 Logit_model 8439.328
## 2 Probit_model 8463.364
## 3 Cloglog_model 8436.466
if (!require(DT)) install.packages("DT")
library(DT)
# Tạo bảng dữ liệu mô hình
model_comparison <- data.frame(
`Mô hình` = c(
"Hồi quy logistic (Logit)",
"Hồi quy probit",
"Hồi quy cloglog"
),
`Hàm liên kết (Link function)` = c(
"Logit",
"Probit",
"Complementary log-log"
),
`AIC` = c(8388.086, 8412.122, 8385.224),
`BIC` = c(8439.328, 8463.364, 8436.466),
`Lựa chọn mô hình` = c(
"Không chọn",
"Không chọn",
"Chọn"
),
check.names = FALSE
)
# Hiển thị bảng đẹp
datatable(
model_comparison,
rownames = FALSE,
caption = htmltools::tags$caption(
style = "caption-side: top; text-align: left; font-style: italic;",
"Bảng tổng hợp các mô hình hồi quy đa biến dựa trên tiêu chí AIC và BIC"
),
options = list(
pageLength = 5,
dom = 't',
autoWidth = TRUE
)
)
Nhận xét
Trong quá trình đánh giá mức độ phù hợp của ba mô hình hồi quy nhị phân – bao gồm hồi quy logistic (logit), probit và complementary log-log (cloglog), nghiên cứu đã sử dụng hai tiêu chí phổ biến là AIC (Akaike Information Criterion) và BIC (Bayesian Information Criterion) nhằm lựa chọn mô hình có tính dự báo tốt và tránh hiện tượng overfitting.
Kết quả cho thấy mô hình cloglog có chỉ số AIC và BIC lần lượt là 8385.224 và 8436.466, thấp hơn so với hai mô hình còn lại (logit: AIC = 8388.086, BIC = 8439.328; probit: AIC = 8412.122, BIC = 8463.364). Điều này cho thấy mô hình cloglog đạt được sự cân bằng tốt nhất giữa độ phù hợp và độ phức tạp mô hình.
Hơn nữa, trong bối cảnh biến phụ thuộc là nhị phân và phân phối không đối xứng (với tỷ lệ khách hàng có vay tiêu dùng chỉ chiếm khoảng 13.1%), việc lựa chọn mô hình cloglog là hoàn toàn phù hợp về mặt lý thuyết. Hàm liên kết log-log có khả năng mô hình hóa tốt hơn các sự kiện hiếm hoặc các xác suất gần 0 hoặc 1.
# Tạo dự đoán xác suất từ mô hình cloglog
pred_cloglog <- predict(cloglog_model, type = "response")
# Tính ROC curve
library(pROC)
roc_cloglog <- roc(data1$loan, pred_cloglog)
# Vẽ ROC
ggroc(list(
Cloglog = roc_cloglog
)) +
geom_segment(aes(x = 1, y = 0, xend = 0, yend = 1),
color = "gray", linetype = "dashed") +
labs(
title = "Đường cong ROC",
subtitle = paste0(
"AUC Cloglog = ", round(auc(roc_cloglog), 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("#00BFFF"))
Nhận xét
Dựa trên đường cong ROC của mô hình Cloglog, ta thu được giá trị AUC là 0.6396. Mức AUC này cho thấy mô hình có khả năng phân biệt nhất định giữa hai nhóm khách hàng (có vay và không vay), đạt hiệu quả dự báo ở mức tương đối chấp nhận được.
Mặc dù chưa đạt đến ngưỡng đánh giá cao (trên 0.7), nhưng kết quả này phù hợp trong bối cảnh mô hình tuyến tính đơn giản như Cloglog và tập dữ liệu có thể chưa được tối ưu hoàn toàn về mặt biến đầu vào.
Điều này gợi ý rằng mô hình đã bắt được một phần quan trọng của mối quan hệ giữa các biến giải thích và hành vi vay tiêu dùng
library(pROC)
library(caret)
library(ggplot2)
library(dplyr)
library(kableExtra)
# Bước 1: Tạo biến nhị phân nếu chưa có
data1$loan_bin <- ifelse(data1$loan == "yes", 1, 0)
# Bước 2: Dự đoán xác suất từ mô hình cloglog
pred_cloglog <- predict(cloglog_model, type = "response")
# Bước 3: Tính ROC và tìm ngưỡng phân loại tối ưu
roc_cloglog <- roc(data1$loan_bin, pred_cloglog)
thresh_cloglog <- coords(roc_cloglog, "best", ret = "threshold")
# Bước 4: Chuyển xác suất thành nhãn phân loại
pred_cloglog_label <- ifelse(pred_cloglog >= as.numeric(thresh_cloglog), 1, 0)
# Bước 5: Ép kiểu factor có cùng levels "0", "1"
pred_factor <- factor(pred_cloglog_label, levels = c(0,1))
actual_factor <- factor(data1$loan_bin, levels = c(0,1))
# Bước 6: Tính confusion matrix
cm_cloglog <- confusionMatrix(pred_factor, actual_factor, positive = "1")
# Bước 7: Chuyển sang dataframe để vẽ
cm_cloglog_tb <- as.data.frame(cm_cloglog$table)
# Bước 8: Vẽ ma trận nhầm lẫn
ggplot(cm_cloglog_tb, aes(x = Reference, y = Prediction, fill = Freq)) +
geom_tile(color = "black") +
scale_fill_gradient(low = "blue", high = "red") +
geom_text(aes(label = Freq),
hjust = 0.5, colour = "black", size = 5) +
labs(
title = "Cloglog - Confusion Matrix",
x = "Reference",
y = "Prediction"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
axis.text.x = element_text(angle = 0, hjust = 1)
)
Nhận xét
Dựa vào ma trận nhầm lẫn của mô hình Cloglog, ta nhận thấy mô hình đã dự đoán đúng 4.409 trường hợp không vay (True Negative) và 483 trường hợp có vay (True Positive). Tổng số dự đoán đúng là 4.892 trên tổng 11.162 quan sát, tương ứng với độ chính xác (accuracy) khoảng 43.8%.
Ngoài ra, số lượng dự đoán sai dương tính (False Positive) là 977 và dự đoán sai âm tính (False Negative) là 5.293. Điều này phản ánh rằng mô hình có xu hướng thiên về việc dự đoán khách hàng không vay, dẫn đến bỏ sót một tỷ lệ đáng kể các khách hàng thực sự có vay.
if (!require(DT)) install.packages("DT")
if (!require(ggplot2)) install.packages("ggplot2")
library(DT)
library(ggplot2)
# 1. Dự báo xác suất vay từ mô hình cloglog
data$prob_vay <- predict(cloglog_model, type = "response")
# 2. Tạo bảng kết quả KHÔNG gồm 'housing' và 'du_bao_vay'
ket_qua <- data[, c("marital", "education", "balance", "prob_vay")]
# 3. Lấy top 10 khách có xác suất vay cao nhất
top10 <- head(ket_qua[order(-ket_qua$prob_vay), ], 10)
# 4. Hiển thị bảng top 10 bằng DT
datatable(
top10,
caption = htmltools::tags$caption(
style = "caption-side: top; text-align: left; font-weight: bold;",
"Top 10 khách hàng có xác suất vay tiêu dùng cao nhất (mô hình Cloglog)"
),
options = list(
pageLength = 10,
autoWidth = TRUE
)
)
Nhận xét
Bảng trên thể hiện top 10 khách hàng có xác suất vay tiêu dùng cao nhất theo mô hình Cloglog. Một số điểm có thể nhận thấy:
Đặc điểm nhân khẩu học nổi bật:
Hầu hết khách hàng trong top 10 đều có tình trạng hôn nhân là “married”, cho thấy yếu tố này có thể có ảnh hưởng nhất định đến xác suất vay theo mô hình.
Trình độ học vấn chủ yếu là “secondary”, ngoại trừ một trường hợp có trình độ tertiary (đại học), cho thấy mô hình dự đoán xác suất vay cao có thể liên quan nhiều đến nhóm khách hàng có trình độ phổ thông.
Giá trị balance âm:
Tất cả các khách hàng có số dư tài khoản (balance) âm — điều này phù hợp với giả định rằng những người có tài chính hạn chế hơn có xu hướng vay tiêu dùng cao hơn.
Đặc biệt, khách hàng có xác suất vay cao nhất (42.1%) cũng là người có balance âm sâu nhất (-6847), cho thấy mô hình phản ánh khá hợp lý về mặt tài chính.
Mức xác suất vừa phải:
Xác suất cao nhất chỉ ở mức khoảng 42%, cho thấy mô hình có xu hướng khá thận trọng trong việc ước lượng xác suất — một đặc điểm phù hợp với bản chất của liên kết cloglog (cloglog thường đưa ra các ước lượng phân biệt rõ nhưng không cực đoan).
Tính ổn định của mô hình:
Khoảng cách giữa xác suất cao nhất (~0.42) và thấp nhất trong top 10 (~0.25) không quá lớn, phản ánh mức độ phân biệt vừa phải giữa các cá nhân theo mô hình.
# Tạo bảng đánh giá cloglog
library(dplyr)
library(kableExtra)
data.frame(
Model = c("Cloglog"),
Accuracy = c(round(cm_cloglog[["overall"]][["Accuracy"]], 3)),
Precision = c(round(cm_cloglog[["byClass"]][["Precision"]], 3)),
Recall = c(round(cm_cloglog[["byClass"]][["Recall"]], 3)),
F1_Score = c(round(cm_cloglog[["byClass"]][["F1"]], 3))
) %>%
kableExtra::kable(
caption = "<b style='display:block; text-align:center;'>Các chỉ tiêu đánh giá kết quả dự báo – Mô hình Cloglog</b>",
escape = FALSE, align = 'c'
)
Model | Accuracy | Precision | Recall | F1_Score |
---|---|---|---|---|
Cloglog | 0.562 | 0.181 | 0.669 | 0.285 |
Nhân xét Các chỉ tiêu đánh giá hiệu quả dự báo của mô hình Cloglog, bao gồm: Accuracy, Precision, Recall và F1-Score. Kết quả cụ thể như sau: Accuracy đạt 56.2%, Precision đạt 18.1%, Recall đạt 66.9% và F1-Score đạt 28.5%.
Xét về độ chính xác tổng thể (Accuracy), mô hình đạt mức 56.2%, phản ánh khả năng phân loại đúng khoảng hơn một nửa số quan sát trong tập dữ liệu. Tuy nhiên, trong các bài toán phân loại nhị phân có sự mất cân bằng lớp (tức số lượng khách hàng không vay chiếm ưu thế so với khách hàng có vay), chỉ số Accuracy có thể gây hiểu nhầm và không phản ánh đầy đủ hiệu quả của mô hình.
Chỉ số Precision tương đối thấp, chỉ đạt 18.1%, cho thấy trong số những khách hàng được mô hình dự báo là có vay, tỷ lệ đúng thực sự là khá nhỏ. Điều này đồng nghĩa với việc mô hình tạo ra nhiều dự báo dương tính giả (false positives), tức là dự báo sai rằng khách hàng sẽ vay trong khi thực tế họ không vay.
Ngược lại, Recall đạt mức khá cao là 66.9%. Điều này cho thấy mô hình có khả năng nhận diện được phần lớn những khách hàng thực sự có khả năng vay tiêu dùng. Đây là một điểm mạnh của mô hình nếu mục tiêu là không bỏ sót khách hàng tiềm năng.
Tuy nhiên, do sự chênh lệch đáng kể giữa Precision và Recall, chỉ số F1-Score – thước đo hài hòa giữa hai chỉ số trên – chỉ đạt 28.5%. Điều này phản ánh rằng mô hình vẫn chưa cân bằng tốt giữa độ chính xác và khả năng bao phủ trong việc dự đoán khách hàng có vay tiêu dùng.
Trong khuôn khổ nghiên cứu này, đã khai thác bộ dữ liệu thực nghiệm từ hồ sơ khách hàng ngân hàng để phân tích một cách hệ thống các yếu tố ảnh hưởng đến hành vi vay tiêu dùng, thông qua lăng kính định tính và định lượng. Phương pháp nghiên cứu được triển khai theo hướng tiếp cận thực chứng, kết hợp giữa thống kê mô tả, kiểm định giả thuyết thống kê và xây dựng mô hình hồi quy nhị phân với ba hàm liên kết phổ biến: logistic (logit), chuẩn tắc (probit) và complementary log-log (cloglog).
Phân tích thống kê cho thấy một số biến định tính đóng vai trò then chốt trong việc giải thích sự khác biệt về hành vi tín dụng giữa các nhóm khách hàng. Cụ thể:
Tình trạng hôn nhân (marital) và trình độ học vấn (education) thể hiện mối quan hệ có ý nghĩa thống kê với hành vi vay tiêu dùng, được xác nhận thông qua kiểm định Chi-square với giá trị p rất nhỏ (p < 0.001), bác bỏ giả thuyết độc lập.
Nhóm khách hàng đã ly hôn ghi nhận tỷ lệ vay tiêu dùng cao vượt trội so với các nhóm còn lại, trong khi nhóm độc thân lại có xu hướng vay thấp nhất. Phát hiện này làm nổi bật vai trò của yếu tố xã hội và hoàn cảnh cá nhân trong việc hình thành nhu cầu tiếp cận tín dụng.
Đáng chú ý, khách hàng có trình độ học vấn cao (tertiary) lại có xác suất vay tiêu dùng thấp hơn so với nhóm có trình độ trung học hoặc dưới trung học. Kết quả này có thể phản ánh ảnh hưởng của năng lực quản lý tài chính cá nhân, mức độ tiếp cận thông tin tài chính, hoặc sự lựa chọn các hình thức tín dụng thay thế (ví dụ: thẻ tín dụng, vay ngang hàng…).
Biến số dư tài khoản (balance) cho thấy mức độ khác biệt rõ rệt giữa hai nhóm khách hàng có và không có khoản vay tiêu dùng, với mức ý nghĩa thống kê rất cao (p < 2.2e-16), cho thấy đây là một chỉ báo tài chính quan trọng trong dự báo hành vi vay. Ngược lại, biến tuổi (age) không cho thấy sự khác biệt có ý nghĩa, phản ánh tính trung tính của yếu tố nhân khẩu học này trong mô hình.
Khi tiến hành mô hình hóa hành vi vay tiêu dùng thông qua các mô hình hồi quy nhị phân, kết quả chỉ ra rằng mô hình cloglog mang lại hiệu năng vượt trội về mặt dự báo, với các chỉ số AIC và BIC thấp hơn so với hai mô hình còn lại. Đây là kết quả hợp lý trong bối cảnh biến phụ thuộc mang đặc trưng phân phối bất cân xứng, với tỷ lệ khách hàng có vay tiêu dùng chỉ chiếm khoảng 13%. Hàm liên kết cloglog với tính chất phi đối xứng giúp mô hình hóa hiệu quả các sự kiện hiếm (rare events), nâng cao độ chính xác và năng lực phân biệt của mô hình.
Về mặt lý luận, nghiên cứu đã bổ sung bằng chứng thực nghiệm cho lĩnh vực tài chính hành vi cá nhân, cụ thể là hành vi vay tiêu dùng dưới góc tiếp cận kết hợp định tính và định lượng. Nghiên cứu chứng minh rằng các yếu tố nhân khẩu học – mặc dù không mang tính định lượng kinh tế trực tiếp – nhưng lại giữ vai trò quan trọng trong việc lý giải và dự báo xu hướng vay vốn của khách hàng.
Về mặt thực tiễn, kết quả nghiên cứu cung cấp cơ sở khoa học cho các tổ chức tín dụng trong:
Phân loại và nhận diện nhóm khách hàng có xác suất vay cao,
Điều chỉnh chiến lược marketing tín dụng theo từng phân khúc xã hội,
Thiết kế sản phẩm tài chính phù hợp với đặc điểm và nhu cầu từng nhóm dân cư,
Và nâng cao hiệu quả quản trị rủi ro tín dụng cá nhân.
Mặc dù đạt được những kết quả thực nghiệm có ý nghĩa thống kê và giá trị ứng dụng rõ rệt, nghiên cứu này vẫn tồn tại một số giới hạn nhất định cần được thừa nhận và xem xét trong các công trình tiếp theo.
Thứ nhất, bộ dữ liệu sử dụng trong nghiên cứu có nguồn gốc từ một chiến dịch tiếp thị tại khu vực châu Âu, trong một bối cảnh kinh tế – xã hội đặc thù. Do đó, khả năng khái quát hóa kết quả cho các thị trường khác, đặc biệt là các nền kinh tế đang phát triển như Việt Nam, còn bị hạn chế. Những khác biệt về hành vi tiêu dùng, cơ cấu xã hội, và văn hóa tín dụng có thể ảnh hưởng đáng kể đến hiệu lực ngoại suy của mô hình.
Thứ hai, do giới hạn của bộ dữ liệu gốc, nghiên cứu chưa khai thác được một số biến tiềm năng có giá trị giải thích cao như thu nhập cá nhân, nghề nghiệp, lịch sử tín dụng, hay các yếu tố hành vi như kỳ vọng lãi suất, mục tiêu vay, hoặc tâm lý tài chính. Việc không bao gồm những biến này có thể dẫn đến tình trạng mô hình bị bỏ sót biến quan trọng (omitted variable bias), ảnh hưởng đến độ tin cậy của các ước lượng.
Thứ ba, bài toán dự báo hành vi vay tiêu dùng trong nghiên cứu có bản chất bất cân xứng dữ liệu nghiêm trọng, với tỷ lệ khách hàng không vay chiếm gần 87%. Tuy mô hình cloglog được lựa chọn có khả năng xử lý tương đối tốt các sự kiện hiếm, nghiên cứu vẫn chưa áp dụng các kỹ thuật điều chỉnh chuyên biệt cho class imbalance, dẫn đến nguy cơ mô hình bị thiên lệch về phía nhóm chiếm đa số.
Trên cơ sở đó, hướng phát triển nghiên cứu trong tương lai có thể triển khai theo các trục sau:
Mở rộng dữ liệu theo chiều không gian và chiều chiều sâu, thông qua thu thập bộ dữ liệu đa quốc gia hoặc dữ liệu thực tế từ các ngân hàng nội địa, đồng thời tích hợp thêm các biến định tính có giá trị cao như nghề nghiệp, giới tính, khu vực địa lý, lịch sử tín dụng và mức thu nhập cá nhân.
Áp dụng các phương pháp học máy hiện đại (machine learning) như cây quyết định (decision trees), rừng ngẫu nhiên (random forest), XGBoost hoặc mạng nơ-ron sâu, nhằm tăng cường khả năng dự báo phi tuyến và phát hiện các mẫu ẩn (latent patterns) trong dữ liệu.
Xử lý bài toán mất cân bằng dữ liệu bằng các kỹ thuật chuyên sâu, bao gồm tái phân bổ trọng số (class weighting), tổng hợp mẫu thiểu số có giám sát (SMOTE), hoặc oversampling có điều kiện, để đảm bảo mô hình không thiên lệch và nâng cao hiệu suất phân loại nhóm thiểu số.
Kết hợp các tiếp cận mô hình hóa cấu trúc như SEM (Structural Equation Modeling) hoặc mô hình phân cấp (hierarchical modeling) để đồng thời phân tích cả quan hệ nhân quả và mối quan hệ tiềm ẩn giữa các nhóm nhân tố ảnh hưởng.
Nguyen (2020) Factors Affecting the Intention to Use Credit Cards: Evidence from Vietnam” The Journal of Asian Finance, Economics and Business, 7(9), 505–514. Sử dụng mô hình hồi quy đa biến (multiple regression) để phân tích các yếu tố như thu nhập, độ tuổi, perceived ease of use… Link bài viết: https://doi.org/10.13106/jafeb.2020.vol7.no9.505
Tran & Le (2021) Tran, T. T. H., & Le, T. H. (2021). “Factors Influencing Consumers’ Borrowing Behavior in Ho Chi Minh City” International Journal of Financial Research, 12(1), 159–169. Sử dụng mô hình logistic hồi quy đa biến để đánh giá ảnh hưởng của trình độ học vấn, mức thu nhập, tình trạng hôn nhân đến hành vi vay tiêu dùng. Link bài viết: https://doi.org/10.5430/ijfr.v12n1p159 Bhattacharjee, M., & Rajeev, M. (2013). Access to credit and factors influencing borrowing decision of households in informal credit market of India. Institute for Social and Economic Change.
Ghosh, S. (2013). Determinants of household borrowing in Bangladesh: Evidence from household income and expenditure survey. Working Paper No. 393, Asian Development Bank Institute.
Kotzé, L., & Smit, E. v. d. M. (2008). Personal financial literacy and personal debt management: The potential relationship with new venture creation. South African Journal of Entrepreneurship and Small Business Management, 1(1), 35–50. https://doi.org/10.4102/sajesbm.v1i1.11
Moro, S., Cortez, P., & Rita, P. (2014). A data-driven approach to predict the success of bank telemarketing. Decision Support Systems, 62, 22–31. https://doi.org/10.1016/j.dss.2014.03.001