library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(epitools)
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
library(knitr)
Những năm gần đây, hoạt động tín dụng (hay cho vay) ngày càng phát triển không chỉ tại Việt Nam mà còn trên phạm vi toàn cầu. Các tổ chức tín dụng nói chung và ngân hàng nói riêng liên tục mở rộng danh mục sản phẩm vay nhằm phục vụ đa dạng nhu cầu của khách hàng, từ vay tiêu dùng, vay học tập, vay chữa bệnh cho đến các khoản vay đầu tư cá nhân. Tuy nhiên, song song với sự phát triển đó là yêu cầu ngày càng cao đối với hồ sơ vay của mỗi khách hàng để đưa ra quyết định phê duyệt vay tránh được những rủi ro tín dụng.
Việc phê duyệt hoặc từ chối một khoản vay là một quyết định tài chính quan trọng đối với khách hàng lẫn tổ chức tín dụng. Đối với tổ chức tín dụng, mỗi quyết định cho vay đều ảnh hưởng trực tiếp đến mức độ rủi ro tín dụng mà họ phải gánh chịu. Cho vay không đúng đối tượng có thể dẫn đến nợ xấu, ảnh hưởng đến khả năng sinh lời và an toàn tài chính của toàn hệ thống. Ngược lại, từ chối không hợp lý hoặc quá khắt khe có thể khiến tổ chức đánh mất cơ hội hợp tác với những khách hàng tiềm năng. Về phía khách hàng, việc được vay vốn có thể giúp giải quyết các nhu cầu cấp thiết trong cuộc sống như học tập, y tế, đầu tư hoặc tiêu dùng. Ngược lại, việc bị từ chối vay mà không hiểu rõ lý do có thể khiến khách hàng gặp khó khăn trong việc lập kế hoạch tài chính cá nhân, thậm chí dẫn đến mất niềm tin vào hệ thống tài chính – ngân hàng.
Tuy nhiên, thực tế hiện nay cho thấy có không ít khách hàng bị từ chối vay mà không được giải thích rõ ràng, hoặc được duyệt vay nhưng với mức lãi suất cao bất thường. Điều này đặt ra nhiều câu hỏi quan trọng: Các tổ chức tín dụng căn cứ vào những yếu tố nào để ra quyết định có cho vay hay không? Liệu rằng các yếu tố như độ tuổi, giới tính, thu nhập hay lịch sử tín dụng có thực sự mang tính quyết định?
Trong bối cảnh đó, nhiều tổ chức tín dụng đã bắt đầu ứng dụng các hệ thống chấm điểm tín dụng nội bộ và phân tích dữ liệu để hỗ trợ quá trình ra quyết định cho vay một cách có hệ thống và minh bạch hơn. Việc hiểu rõ mức độ ảnh hưởng của từng yếu tố đến khả năng được phê duyệt vay sẽ giúp tổ chức tín dụng cải thiện năng lực quản trị rủi ro, đồng thời hỗ trợ khách hàng nâng cao chất lượng hồ sơ vay.
Xuất phát từ những vấn đề trên, bài báo cáo “Phân tích các yếu tố ảnh hưởng đến quyết định cho vay của các tổ chức tín dụng” được tiến hành thực hiện nhằm hiểu rõ hơn về quá trình ra quyết định tín dụng, cũng như xác định các yếu tố đóng vai trò quan trọng trong việc phê duyệt hoặc từ chối một khoản vay.
Đề tài nhằm xác định và phân tích các yếu tố ảnh hưởng đến quyết định cho vay của các tổ chức tín dụng đối với mỗi khách hàng. Từ đó rút ra những kết luận và đề xuất một số gợi ý để khách hàng nâng cao chất lượng hồ sơ vay vốn và giúp các tổ chức ra các quyết định cho vay.
Bài báo cáo nhằm mục đích phân tích, đánh giá các yếu tố ảnh hưởng đến quyết định cho vay thông qua trạng thái phê duyệt khoản vay. Cụ thể, nghiên cứu sẽ hệ thống lại những lý thuyết cơ bản về mô hình hồi quy; mô tả đặc điểm của các biến trong mô hình nghiên cứu, kiểm tra mối liên hệ giữa các yếu tố như giới tính, tình trạng nhà ở, mục đích vay, tình trạng các khoản vay trước với trạng thái phê duyệt khoản vay. Dựa vào kết quả phân tích, nghiên cứu đề xuất một số định hướng nhằm nâng cao chất lượng hồ sơ tín dụng, gia tăng cơ hội được vay vốn cho khách hàng.
Bài nghiên cứu sử dụng phương pháp phân tích định tính thông qua các mô hình hồi quy cho dữ liệu nhị phân để phân tích các yếu tố ảnh hưởng đến quyết định cho vay bao gồm các bước sau: Đầu tiên, sử dụng thống kê mô tả để biểu thị các đặc điểm cơ bản của dữ liệu. Tiếp theo,lập bảng ngẫu nhiên giữa biến phụ thuộc và các biến độc lập và ước lượng chênh lệch tỷ lệ; tính toán các chỉ số như Relative Risk và Odds Ratio cùng khoảng tin cậy tương ứng; thực hiện kiểm định tính độc lập giữa các biến. Sau đó, ước lượng hồi quy cho dữ liệu nhị phân Đồng thời thực hiện các kiểm định mô hình để đảm bảo cho mô hình bền vững và tin cậy. Dữ liệu được xử lý bằng ngôn ngữ Rstudio.
Đối tượng nghiên cứu là trạng thái phê duyệt khoản vay của các hồ sơ vay vốn, được thể hiện qua trạng thái được phê duyệt hoặc bị từ chối từ các tổ chức tín dụng. Ngoài ra, nghiên cứu tập trung phân tích một số biến định tính khác như: loan_intent(mục đích vay), person_home_ownership(tình trạng sở hữu nhà) và previous_loan_defaults_on_file (trạng thái các khoản vay trước).
Chương 1: Tổng quan nghiên cứu. Chương này nhằm mục tiêu giới thiệu khái quát các nội dung chính của bài nghiên cứu như lý do chọn đề tài, mục tiêu, phương pháp và bố cục của bài.
Chương 2: Phương pháp và dữ liệu nghiên cứu. Chương này tóm tắt về dữ liệu, giới thiệu mô hình và xây dựng mô hình để nghiên cứu mối quan hệ giữa các biến. Chương này bao gồm các khái niệm và lý thuyết các mô hình và khái quát về các nghiên cứu trước đó.
Chương 3: Phân tích bộ dữ liệu. Chương này, trình bày kết quả thống kê mô tả dữ liệu theo 1 biến và 2 biến, kết quả ước lượng tỷ lệ, ước lượng chênh lệch 2 tỷ lệ và Relative Risk, Odds Ratio.
Chương 4: Kết quả ước lượng hồi quy cho dữ liệu nhị phân. Chương này bao gồm kết quả hồi quy từ 3 mô hình logit, probit và clogclog về các yếu tố ảnh hưởng quyết định cho vay.
Chương 5: Kết luận và khuyến nghị. Chương này bao gồm trình bày kết luận chung của nghiên cứu, đề xuất một số hàm ý dựa trên kết quả nghiên cứu và hạn chế của đề tài.
Một bảng ngẫu nhiên (Contingency Table) là bảng tần số của 2 biến định tính \(X\), \(Y\) trong đó, biến dòng \(X\) có phạm \(i\) phạm trù và biến cột \(Y\) có \(j\) phạm trù. Nếu các biến \(X\), \(Y\) chỉ có hai phạm trù (hay biểu hiện) khi đó bảng ngẫu nhiên sẽ trở thành bảng ngẫu nhiên 2x2.
Giả sử một bảng ngẫu nhiên 2x2 được dùng để so sánh hai nhóm biểu hiện của \(X\) trên một kết quả nhị phân của biến phụ thuộc \(Y\)(ví dụ: thành công/ thất bại, được duyệt vay/ từ chối) có cấu trúc đơn giãn như sau:
| X/ Y | Thành công (\(y_1\)) | Thất bại (\(y_2\)) | Tổng dòng |
|---|---|---|---|
| Nhóm 1 (\(x_1\)) | \(n_{11}\) | \(n_{12}\) | \(n_{11}+n_{12}\) |
| Nhóm 2 (\(x_2\)) | \(n_{21}\) | \(n_{22}\) | \(n_{21}+n_{22}\) |
| Tổng cột | \(n_{11}+n_{21}\) | \(n_{12}+n_{22}\) | \(n\) |
Thông thường, người ta quan tâm so sánh tỷ lệ “thành công” giữa hai nhóm:
Tỷ lệ thành công trong nhóm 1: \(\hat{p}_1=P(Y=y_1|X=x_1)=\frac{n_{11}}{n_{11}+n_{12}}\)
Tỷ lệ thành công trong nhóm 2: \(\hat{p}_2=P(Y=y_1|X=x_2)=\frac{n_{21}}{n_{21}+n_{22}}\)
Tỷ lệ \(\hat{p}_1\) và \(\hat{p}_2\) được thực hiện thông qua ba cách.
Hiệu hai tỷ lệ được định nghĩa là \(D=p_1-p_2\). Giá trị \(D\) nằm trong khoảng [-1,1]:
Nếu \(D>0\), thì tỷ lệ “thành công” của nhóm 1 cao hơn nhóm 2.
Nếu \(D<0\), thì tỷ lệ “thành công” của nhóm 1 thấp hơn nhóm 2.
Nếu \(D=0\), thì không có sự khác biệt về tỷ lệ “thành công” giữa hai nhóm.
Khoảng ước lượng chênh lệch hai tỷ lệ là:
\[ (\hat{p}_1 - \hat{p}_2) - z_{\alpha/2} \sqrt{ \frac{\hat{p}_1(1 - \hat{p}_1)}{n_1} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2} } \le p_1 - p_2 \le (\hat{p}_1 - \hat{p}_2) + z_{\alpha/2} \sqrt{ \frac{\hat{p}_1(1 - \hat{p}_1)}{n_1} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2} } \]
trong đó \(z_{\alpha/2}\) là giá trị tới hạn từ phân phối chuẩn (\(Z_{\alpha/2}≈1,96\) cho khoảng tin cậy 95%)
Tỷ số nguy cơ hay rủi ro tương đối (Relative Risk) là phân số giữa hai tỷ lệ “thành công” tương ứng với từng biểu hiện của biến độc lập.
\[ RR = \frac{p_1}{p_2} = \frac{n_{11}/(n_{11}+n_{12})}{n_{21}/(n_{21}+n_{22})} \]
Giá trị \(RR\) nằm trong khoảng \([0, \infty)\):
Nếu \(RR>1\), thì nhóm 1 có tỷ lệ “thành công” (hoặc nguy cơ (rủi ro) nếu “thành công” là một sự kiện bất lợi) cao hơn so với nhóm 2.
Nếu \(RR<1\), thì nhóm 1 có tỷ lệ “thành công” thấp hơn nhóm 2.
Nếu \(RR=1\), thì không có sự khác biệt giữa 2 nhóm.
Khoảng ước lượng cho Relative Risk là:
\[ \log(RR)= \log\left(\frac{\hat{p}_1}{\hat{p}_2}\right)\pm z_{\alpha/2} \sqrt{ \frac{1 - \hat{p}_1}{n_{11}}+\frac{1 - \hat{p}_2}{n_{21}{}}} \]
Tỷ lệ chênh (Odds Ratio) là tỷ lệ giữa tỷ lệ cược (odd) của biểu hiện này với tỷ lệ cược của biểu hiện kia. Trong đó, tỷ lệ cược (odd) của một sự kiện là tỷ số giữa xác suất xảy ra sự kiện đó và xác suất không xảy ra sự kiện đó:
\[ odd_i=\frac{p_{i/j}}{1-p_{i/j}} \]
Odd thành công/ không thành công trong nhóm 1 là :
\[ odd_1=\frac{p_1}{1-p_1}=\frac{n_{11}/(n_{11}+n_{12})}{n_{12}/(n_{11}+n_{12})}=\frac{n_{11}}{n_{12}} \]
Odd thành công/ không thành công trong nhóm 2 là :
\[ odd_2=\frac{p_2}{1-p_2}=\frac{n_{21}/(n_{21}+n_{22})}{n_{21}/(n_{21}+n_{22})}=\frac{n_{21}}{n_{22}} \]
Khi này, tỷ lệ chênh (Odds Ratio) được định nghĩa là:
\[ OR=\frac{odd_1}{odd_2}=\frac{p_1(1-p_1)}{p_2(1-p_2)} \]
Giá trị \(OR\) nằm trong khoảng \([0, \infty)\):
Nếu \(OR>1\), thì odd của thành công/ không thành công của nhóm 1 cao hơn nhóm 2.
Nếu \(OR<1\), thì odd của thành công/ không thành công của nhóm 1 thấp hơn nhóm 2.
Nếu \(OR=1\), thì không có sự khác biệt giữa hai nhóm.
Khoảng ước lượng cho Odds Ratio là:
\[ \log(\widehat{OR}) - z_{\alpha/2} \times ASE(\log(\widehat{OR})) \le \log(OR) \le \log(\widehat{OR}) + z_{\alpha/2} \times ASE(\log(\widehat{OR})) \]
với
\[ ASE(\log(\widehat{OR})) = \sqrt{ \frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}} } \]
Kiểm định tính độc lập giữa hai biến định tính để kiểm tra xem có mối liên hệ nào giữa hai biến \(X\) và \(Y\) hay không, thông qua kiểm định Chi - bình phương (Chi-squared).
Giá trị kiểm định Chi - bình phương được tính bằng công thức:
\[ \chi^2 = \sum_{i,j} \frac{(n_{ij} - \hat{\mu}_{ij})^2}{\hat{\mu}_{ij}} \]
trong đó:
\(n_{ij}\) là tần số quan sát ở hàng \(i\) cột \(j\).
\(\hat{\mu}_{ij}\) là tần số kỳ vọng, với \(\hat{\mu}_{ij}=\frac{\text{tổng hàng } i \times \text{tổng cột } j}{n}\)
Bài toán kiểm định có giả thuyết:
\(H_0\): Hai biến \(X\), \(Y\) độc lập với nhau.
\(H_1\): \(X\), \(Y\) là không độc lập (có mối liên hệ với nhau).
Kết quả kiểm định nếu cho giá trị p_value nhỏ hơn mức ý nghĩa 5% thì giả thuyết \(H_0\) bị bác bỏ, tức là \(X\) và \(Y\) có mối liên hệ với nhau.
Mô hình hồi quy Logistic là mô hình hồi quy cho dữ liệu nhị phân thuộc họ với mô hình Tuyến tính tổng quát (Generalized Linear Models - GLMs). Tương tự mô hình GLM, mô hình Logistic gồm 3 thành phần: thành phần hệ thống (Systematic Component); thành phần ngẫu nhiên (Random Component) và hàm liên kết (Link Function).
Đối với mô hình Logistic, thành phần ngẫu nhiên là tuân theo phân phối Binomial và sử dụng hàm liên kết logit \(g(\pi)=logit(\pi)=\log\left(\frac{\pi}{1 - \pi}\right)\). Mô hình hồi quy logit có dạng như sau:
\[ logit(\pi) = \log\left(\frac{\pi}{1 - \pi}\right) = \beta_0 + \beta_1 X_1 + \cdots + \beta_k X_k \]
với \(\pi\) xác suất để biến phụ thuộc nhận giá trị “thành công”. Từ mô hình logit, xác suất được tính bằng công thức:
\[ \pi = \frac{e^{\beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k}}{1 + e^{\beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k}} \]
Mô hình Probit có kết quả tương đồng với Logit. Khi hàm liên kết có dạng \(g(\mu) = g(\pi) = \text{probit}(\pi) = \Phi^{-1}(\pi)\), với \(\Phi^{-1}\) là hàm ngược của hàm phân phối tích lũy (CDF) của phân phối chuẩn tắc \(N(0,1)\). Mô hình hồi quy Probit được viết như sau:
\[ \pi(X) = \Phi(\beta_0 + \beta_1 X_1+ \beta_2 X_2+ \cdots +\beta_k X_k) \]
Bên cạnh mô hình Logit và Probit, mô hình Cloglog phù hợp với xác suất xảy ra sự kiện rất nhỏ hoặc quá lớn, tức là phân phối bất đối xứng.
Mô hình Cloglog sử dụng hàm liên kết bất đối xứng \(g(\pi) = \log(-\log(1 - \pi))\).
Chỉ số AIC (Akaike Information Criterion) được đề xuất bởi Akaike Hirotugu (1974) được ước lượng bởi phương pháp Maximum Likekihood (ML), AIC được tính bằng công thức:
\[ AIC = -2ln(L)+2k \]
với \(L\) là giá trị cực đại của hàm hợp lý (likelihood function) và k là số tham số ước lượng của mô hình. AIC càng nhỏ thì mô hình càng tốt.
Ma trận nhầm lẫn cho phép so sánh giữa giá trị thực tế và giá trị dự đoán từ mô hình, từ đó chỉ ra mức độ chính xác và các dạng sai lệch của mô hình. Ma trận nhầm lẫn có dạng như sau:
| Dự đoán: True | Dự đoán: False | |
|---|---|---|
| Thực tế: True | TP (True Positive) | FN (False Negative) |
| Thực tế: False | FP (False Positive) | TN (True Negative) |
Trong đó:
TP (True Positive): Số trường hợp thực tế và mô hình cũng dự đoán đều có “True”.
TN (True Negative): Số trường hợp thực tế là “False” và mô hình cũng dự đoán là “False”.
FP (False Positive): Số trường hợp thực tế là “False” nhưng mô hình dự đoán nhầm là “True”.
FN (False Negative): Số trường hợp thực tế là “True” nhưng mô hình dự đoán nhầm là “False”.
Từ ma trận nhầm lẫn, các chỉ tiêu đánh giá mô hình bao gồm:
\[ Accuracy = \frac{TP+TN}{TP+TN+FP+FN} \]
\[ Recall = \frac{TP}{TP+FN} \]
\[ Specificity=\frac{TN}{TN+FP} \]
\[ Precision=\frac{TP}{TP+FP} \]
\[ \text{F1-score} = 2 \times \frac{\text{Precision} \times \text{Sensitivity}}{\text{Precision} + \text{Sensitivity}} \]
a) Đường cong ROC
Đường cong ROC là đồ thị biểu diễn mối quan hệ giữa True Positive Rate (TPR) (hay độ nhạy) và False Positive Rate (FPR) (tỷ lệ dương tính giả) ở các ngưỡng phân loại khác nhau.
Trục tung (y-axis): True Positive Rate (TPR) = Sensitivity = TP / (TP + FN).
Trục hoành (x-axis): False Positive Rate (FPR) = 1 - Specificity = FP / (FP + TN).
Đường cong ROC có ý nghĩa:
Nếu mô hình dự đoán hoàn hảo, đường ROC sẽ đi qua góc trên bên trái của đồ thị (TPR = 1, FPR = 0).
Nếu mô hình dự đoán ngẫu nhiên (không phân biệt được 2 lớp), đường ROC sẽ nằm trên đường chéo 45 độ (đường TPR = FPR).
Đường cong ROC càng nằm gần góc trên bên trái đồ thị thì mô hình càng tốt.
Tóm lại, đường cong ROC càng lồi thì hiệu suất của mô hình càng tốt, nghĩa là kết quả dự đoán càng chính xác. Trong khi đó, đường cong ROC càng thẳng thì hiệu suất của mô hình càng kém.
b) Diện tích dưới đường cong (AUC)
AUC (Area Under the Curve) là chỉ số đại diện cho diện tích dưới đường cong ROC, dao động trong khoảng (0,1). Chỉ số AUC được sử dụng như một thước đo để đánh giá một mô hình là tốt hay xấu. AUC gần 1 nghĩa là mô hình có hiệu suất tốt, trong khi AUC gần 0.5 chỉ ra rằng mô hình có hiệu suất kém. Tuy nhiên, nếu giá trị AUC quá gần 1 có thể dẫn đến việc overfitting trong mô hình.
Theo Md. Al-Mamun và cộng sự (2012) với “Phân tích Logit về quyết định cho vay tại các ngân hàng Bangladesh”. Các tác giả sử dụng dữ liệu về 135 hồ sơ xin vay được thu thập từ 15 ngân hàng thương mại tư nhân tại Bangladesh. Bằng cách sử dụng mô hình hồi quy logistic nhị phân, bài nghiên cứu kết luận rằng loại hình đầu tư, xếp hạng rủi ro đầu tư và lịch sử giao dịch khoản vay trước đây của người vay là những yếu tố quan trọng nhất tạo nên quyết định cho vay; trong khi đó mục đích vay có ảnh hưởng tiêu cực đến quyết định cho vay của ngân hàng.
Nghiên cứu của M. Gopinath và cộng sự (2021) đã đề xuất mô hình dự đoán khả năng được phê duyệt vay vốn của khách hàng dựa trên thuật toán hồi quy logistic, với biến phụ thuộc là kết quả phê duyệt vay (Yes/No) thông qua bài nghiên cứu “Dự đoán phê duyệt khoản vay của khách hàng bằng hồi quy Logistic”. Nhóm tác giả phát hiện rằng những khách hàng có lịch sử tín dụng tốt , thu nhập cao, trình độ học vấn sau đại học và sở hữu tài sản ở khu vực thành thị có xác suất được phê duyệt vay cao hơn.
Nghiên cứu của Chen Chen (2024) về “Nghiên cứu các yếu tố ảnh hưởng đến việc phê duyệt khoản vay mua nhà” bằng cách sử dụng hồi quy Logit và Random Forest. Kết quả khi xem xét 480 hồ sơ vay với 12 biến quan sát bao gồm: Giới tính (Gender), Tình trạng hôn nhân (Married), Số người phụ thuộc (Dependents), Học vấn (Education), Tình trạng tự kinh doanh (Self_Employed), Thu nhập của người vay (ApplicantIncome), Thu nhập của người đồng vay (CoapplicantIncome), Số tiền vay (LoanAmount), Thời hạn vay (Loan_Amount_Term), Lịch sử tín dụng (Credit_History), và Khu vực bất động sản (Property_Area). Kết quả của bài nghiên cứu cho thấy khu vực và tình trạng tín dụng của người đi vay ảnh hưởng đến việc phê duyệt cho vay.
Dữ liệu được sử dụng trong bài nghiên cứu là Loan data, mô phỏng 45.000 hồ sơ vay của các khách hàng từ các tổ chức tín dụng. Bộ dữ liệu Loan data được phát triển từ bộ dữ liệu Credit Risk dataset trên Kaggle và Financial Risk for Loan Approval. Bộ dữ liệu bao gồm các thông tin về nhân khẩu học, lịch sử tín dụng, mức thu nhập và các chỉ tiêu liên quan đến vay vốn khác.
# tải và đọc file dữ liệu
data <- read.csv("D:/AnhThu/DATA_DT/loan_data.csv")
# kiểm tra kích thước của bộ dữ liệu
dim(data)
## [1] 45000 14
Bộ dữ liệu Loan data bao gồm 45.000 quan sát và 14 biến. Mỗi quan sát tương ứng với một khách hàng có nhu cầu vay tại các tổ chức tín dụng, được mô tả chi tiết thông qua các đặc điểm như giới tính, độ tuổi, trình độ giáo dục, thu nhập, kinh nghiệm việc làm, lãi suất cho vay,…
Bộ dữ liệu bao gồm 14 biến, cụ thể là:
names(data)
## [1] "person_age" "person_gender"
## [3] "person_education" "person_income"
## [5] "person_emp_exp" "person_home_ownership"
## [7] "loan_amnt" "loan_intent"
## [9] "loan_int_rate" "loan_percent_income"
## [11] "cb_person_cred_hist_length" "credit_score"
## [13] "previous_loan_defaults_on_file" "loan_status"
person_age: Tuổi của khách hàng.
person_gender: Giới tính.
person_education: Trình độ học vấn.
person_income: Thu nhập hàng năm.
person_emp_exp: Kinh nghiệm làm việc (tính theo năm).
person_home_ownership: Tình trạng sở hữu nhà ở (như sở hữu, thuê, thế chấp).
loan_amnt: Số tiền cần vay.
loan_intent: Mục đích vay vốn.
loan_int_rate: Lãi suất cho vay.
loan_percent_income: Tỷ lệ nợ trên thu nhập.
cb_person_cred_hist_length: Thời hạn của nợ tín dụng (tính theo năm).
credit_score: Điểm tín dụng của khách hàng.
previous_loan_defaults_on_file: Trạng thái các khoản vay trước (với “Yes” là từng vỡ nợ và “No” là chưa từng vỡ nợ)
loan_status: Trạng thái phê duyệt khoản vay (1 = “approved”: đã phê duyệt và 0 = “rejected”: bị từ chối).
Ở bài này, các biến định tính được lựa chọn để phân tích, bao gồm: loan status, person home ownership, loan intent và previous loan defaults on file. Ta tiến hành kiểm tra xem có giá trị bị thiếu (NA) trong các biến định tính.
# Rút trích các dữ liệu định tính
dulieu <- select(data, c("person_home_ownership", "loan_intent", "previous_loan_defaults_on_file", "loan_status"))
# Kiểm tra số lượng giá trị bị thiếu (NA)
sum(is.na(dulieu))
## [1] 0
Dựa vào kết quả kiểm tra bằng 0, cho thấy không có giá trị bị thiếu (NA) trong các biến định tính của bộ dữ liệu. Như vậy bộ dữ liệu được tiến hành nghiên cứu là:
str(dulieu)
## 'data.frame': 45000 obs. of 4 variables:
## $ person_home_ownership : chr "RENT" "OWN" "MORTGAGE" "RENT" ...
## $ loan_intent : chr "PERSONAL" "EDUCATION" "MEDICAL" "MEDICAL" ...
## $ previous_loan_defaults_on_file: chr "No" "Yes" "No" "No" ...
## $ loan_status : int 1 0 1 1 1 1 1 1 1 1 ...
Biến Loan_status ghi nhận trạng thái phê duyệt khoản vay (đã phê duyệt hoặc bị từ chối) của 45.000 hồ sơ vay vốn của khách hàng. Số lượng hồ sơ được phê duyệt và hồ sơ bị từ chối được thể hiện thông qua bảng tần số như sau:
# Tạo biến mới cho các biểu hiện của loan_status
dulieu <- dulieu %>%
mutate(loan_status1 = recode(loan_status, `1` = "Approved", `0` = "Rejected"))
# bảng tần số của biến loan_status
tsloan <- table(dulieu$loan_status1)
kable(tsloan, format = "markdown", caption = "<strong>Bảng tần số trạng thái phê duyệt khoản vay<strong>",
col.names = c("Trạng thái phê duyệt", "Số lượng hồ sơ"),
align = c("c", "c"))
| Trạng thái phê duyệt | Số lượng hồ sơ |
|---|---|
| Approved | 10000 |
| Rejected | 35000 |
# Trực quan hóa dữ liệu
dulieu %>% group_by(loan_status1) %>% summarise(n = n()) %>%
mutate(pc = paste0(round(n/sum(n)*100, 2),"%")) %>%
ggplot(aes(x = "", y = n, fill = loan_status1)) +
geom_col(width = 1) +
coord_polar(theta = "y") +
geom_text(aes(label = pc), position = position_stack(vjust = 0.5)) +
labs(title = "Biểu đồ tròn thể hiện tần suất trạng thái phê duyệt") +
theme_void()
Nhận xét:
Biến Loan Status bao gồm hai biểu hiện là Approved (được phê duyệt) và Rejected (bị từ chối). Trong tổng số 45.000 hồ sơ, có 10.000 hồ sơ được phê duyệt (chiếm khoảng 22,22%) và 35.000 hồ sơ bị các tổ chức từ chối (chiếm khoảng 77,78%). Biểu đồ tròn cho thấy có sự chênh lệch khá lớn giữa hai tỷ lệ, tỷ lệ hồ sơ được duyệt chỉ chiếm gần 1/4 trong tổng số hồ sơ, hay phần lớn hồ sơ cho vay của khách hàng là bị từ chối.
Với độ tin cậy 95%, tỷ lệ của trạng thái được phê duyệt “Approve” trong tổng thể được thể hiện như sau:
# Số lượng hồ sơ được duyệt
ap <- sum(dulieu$loan_status1 == "Approved")
# Tổng số hồ sơ đã nộp
total <- sum(nrow(dulieu))
# Ước lượng khoảng tin cậy 95%
prop.test(ap, total, conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: ap out of total, null probability 0.5
## X-squared = 13888, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.2183938 0.2260982
## sample estimates:
## p
## 0.2222222
Bài toán kiểm định:
Đặt giả thuyết:
\(H_0\): \(\text{Tỷ lệ hồ sơ được phê duyệt = 0.5}\)
\(H_1\): \(\text{Tỷ lệ hồ sơ được phê duyệt ≠ 0.5}\)
Diễn giải kết quả:
Với độ tin cậy 95%, tỷ lệ hồ sơ được phê duyệt trong số 45.000 hồ sơ nằm trong khoảng 21,84% đến 22,61%. Bên cạnh đó, kết quả kiểm định cho thấy giá trị p_value rất nhỏ so với mức ý nghĩa 5% (p_value < 2.2e-16) ta bác bỏ giả thuyết \(H_0\). Vậy tỷ lệ hồ sơ được phê duyệt không phải 50%, mà bằng 22,22% (nằm trong khoảng 21,84% đến 22,61%).
Biến Person_home_ownership ghi nhận tình trạng sở hữu nhà của 45.000 hồ sơ vay vốn của khách hàng. Tình trạng sở hữu nhà được thể hiện thông qua bảng tần số như sau:
# bảng tần số của biến person_home_ownership
tshome <- table(dulieu$person_home_ownership)
kable(tshome, format = "markdown", caption = "<strong>Bảng tần số tình trạng sở hữu nhà<strong>",
col.names = c("Tình trạng sở hữu", "Số lượng"),
align = c("c", "c"))
| Tình trạng sở hữu | Số lượng |
|---|---|
| MORTGAGE | 18489 |
| OTHER | 117 |
| OWN | 2951 |
| RENT | 23443 |
# Trực quan hóa dữ liệu
ggplot(dulieu, aes(x = person_home_ownership, fill = person_home_ownership)) +
geom_bar() +
labs(x = "Tình trạng sở hữu", y = "Số lượng", title = "Biểu đồ tần số các tình trạng sở hữu nhà")
Biến tình trạng sở hữu nhà - Person_home_ownership được chia thành bốn nhóm: MORTGAGE (đang thế chấp), OWN (sở hữu), RENT (nhà thuê) và OTHER (khác). Trong tổng số 45.000 người vay, nhóm RENT chiếm tỷ lệ cao nhất với 23.443 trường hợp (chiếm khoảng 52,1%), tiếp theo là MORTGAGE với 18.489 trường hợp (41,1%). Nhóm OWN có 2.951 trường hợp (6,6%), trong khi nhóm OTHER chỉ chiếm tỷ lệ rất nhỏ với 117 trường hợp (0,3%). Kết quả này cho thấy phần lớn người đi vay trong tập dữ liệu đang ở trong tình trạng thuê nhà hoặc có khoản vay thế chấp.
Với độ tin cậy 95%, tỷ lệ khách hàng sở hữu nhà “OWN” trong tổng thể được thể hiện như sau:
# Số lượng khách hàng sở hữu nhà
home <- sum(dulieu$person_home_ownership == "OWN")
# Ước lượng khoảng tin cậy 95%
prop.test(home, total, conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: home out of total, null probability 0.5
## X-squared = 33968, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.06331659 0.06791349
## sample estimates:
## p
## 0.06557778
Bài toán kiểm định:
Đặt giả thuyết:
\(H_0\): \(\text{Tỷ lệ khách hàng sở hữu nhà = 0.5}\)
\(H_1\): \(\text{Tỷ lệ khách hàng sở hữu nhà ≠ 0.5}\)
Diễn giải kết quả:
Với độ tin cậy 95%, tỷ lệ khách hàng sở hữu nhà trong số 45.000 hồ sơ nằm trong khoảng 6,33% đến 6,79%. Bên cạnh đó, kết quả kiểm định cho thấy giá trị p_value rất nhỏ so với mức ý nghĩa 5% (p_value < 2.2e-16) ta bác bỏ giả thuyết \(H_0\). Như vậy tỷ lệ khách hàng sở hữu nhà không phải 50%, mà bằng 6,56% (nằm trong khoảng 6,33% đến 6,79%).
Biến Loan_intent ghi nhận mục đích đi vay của 45.000 khách hàng. Mục đích đi vay được thể hiện thông qua bảng tần số như sau:
# bảng tần số của biến loan_intent
intent <- table(dulieu$loan_intent)
kable(intent, format = "markdown", caption = "<strong>Bảng tần số thể hiện mục đích vay vốn<strong>",
col.names = c("Mục đích vay vốn", "Số lượng"),
align = c("c", "c"))
| Mục đích vay vốn | Số lượng |
|---|---|
| DEBTCONSOLIDATION | 7145 |
| EDUCATION | 9153 |
| HOMEIMPROVEMENT | 4783 |
| MEDICAL | 8548 |
| PERSONAL | 7552 |
| VENTURE | 7819 |
# Trực quan hóa dữ liệu
ggplot(dulieu, aes(x = loan_intent, fill = loan_intent)) +
geom_bar() +
coord_flip() +
labs(x = "Mục đích vay vốn", y = "Số lượng", title = "Biểu đồ tần số các mục đích vay vốn")
Trong tổng số 45.000 hồ sơ vay, mục đích đi vay - Loan_intent được phân loại thành 6 nhóm khác nhau, bao gồm: DEBTCONSOLIDATION, EDUCATION, HOMEIMPROVEMENT, MEDICAL, PERSONAL và VENTURE .Trong đó, nhóm EDUCATION (học tập) chiếm tỷ lệ cao nhất với 9.153 hồ sơ, tiếp theo là MEDICAL (y tế) với 8.548 hồ sơ và VENTURE (khởi nghiệp) với 7.819 hồ sơ. Các nhóm còn lại bao gồm PERSONAL (cá nhân) 7.552 hồ sơ, DEBTCONSOLIDATION (hợp nhất nợ) 7.145 hồ sơ và HOMEIMPROVEMENT (cải tạo nhà) thấp nhất với 4.783 hồ sơ. Như vậy, phần lớn người vay sử dụng vốn cho các mục đích thiết yếu như giáo dục và chăm sóc sức khỏe.
Với độ tin cậy 95%, tỷ lệ khách hàng sử dụng vốn để học tập “EDUCATION” trong tổng thể được thể hiện như sau:
# Số lượng hồ sơ vay cho giáo dục
edu <- sum(dulieu$loan_intent == "EDUCATION")
# Ước lượng khoảng tin cậy 95%
prop.test(edu, total, conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: edu out of total, null probability 0.5
## X-squared = 15834, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.1996953 0.2071555
## sample estimates:
## p
## 0.2034
Bài toán kiểm định:
Đặt giả thuyết:
\(H_0\): \(\text{Tỷ lệ khách hàng vay cho giáo dục = 0.5}\)
\(H_1\): \(\text{Tỷ lệ khách hàng vay cho giáo dục ≠ 0.5}\)
Diễn giải kết quả:
Với độ tin cậy 95%, Tỷ lệ khách hàng vay cho giáo dục trong số 45.000 hồ sơ nằm trong khoảng 19,97% đến 20,72%. Bên cạnh đó, kết quả kiểm định cho thấy giá trị p_value rất nhỏ so với mức ý nghĩa 5% (p_value < 2.2e-16) ta bác bỏ giả thuyết \(H_0\). Như vậy Tỷ lệ khách hàng vay cho giáo dục không phải 50%, mà bằng 20,34% (nằm trong khoảng 19,97% đến 20,72%).
Biến Previous_loan_defaults_on_file cho biết trạng thái các khoản vay trước đó của khách hàng, với 2 biểu hiện là “Yes” - Từng vỡ nợ và “No” - Chưa từng vỡ nợ. Số lượng thể hiện trạng thái các khoản vay trước của khách hàng được thể hiện như sau:
# bảng tần số của biến previous_loan_defaults_on_file
lich <- table(dulieu$previous_loan_defaults_on_file)
kable(lich, format = "markdown", caption = "<strong>Bảng tần số trạng thái các khoản vay trước<strong>",
col.names = c("Trạng thái khoản vay trước", "Số lượng"),
align = c("c", "c"))
| Trạng thái khoản vay trước | Số lượng |
|---|---|
| No | 22142 |
| Yes | 22858 |
# Trực quan hóa dữ liệu
dulieu %>% group_by(previous_loan_defaults_on_file) %>% summarise(n = n()) %>%
mutate(pc = paste0(round(n/sum(n)*100, 2),"%")) %>%
ggplot(aes(x = "", y = n, fill = previous_loan_defaults_on_file)) +
geom_col(width = 1) +
coord_polar(theta = "y") +
geom_text(aes(label = pc), position = position_stack(vjust = 0.5)) +
labs(title = "Biểu đồ tròn thể hiện tần suất trạng thái khoản vay trước") +
theme_void()
Biến trạng thái khoản vay trước phản ánh việc người vay có từng bị vỡ nợ trong quá khứ hay không, với hai mức: Yes (từng vỡ nợ) và No (chưa từng vỡ nợ). Trong tổng số 45.000 hồ sơ, có 22.858 trường hợp từng vỡ nợ (chiếm 50,8%) và 22.142 trường hợp chưa từng vỡ nợ (chiếm 49,2%). Biểu đồ tròn cho thấy tỷ lệ giữa hai nhóm gần như tương đương, nhưng số lượng khách hàng có lịch sử vỡ nợ vẫn nhiều hơn.
Với độ tin cậy 95%, tỷ lệ khách hàng từng bị vỡ nợ trong tổng thể được thể hiện như sau:
# Số lượng khách hàng từng vỡ nợ
von <- sum(dulieu$previous_loan_defaults_on_file == "Yes")
# Ước lượng khoảng tin cậy 95%
prop.test(von, total, conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: von out of total, null probability 0.5
## X-squared = 11.361, df = 1, p-value = 0.0007502
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.5033249 0.5125849
## sample estimates:
## p
## 0.5079556
Bài toán kiểm định:
Đặt giả thuyết:
\(H_0\): \(\text{Tỷ lệ khách hàng từng bị vỡ nợ = 0.5}\)
\(H_1\): \(\text{Tỷ lệ khách hàng từng bị vỡ nợ ≠ 0.5}\)
Diễn giải kết quả:
Với độ tin cậy 95%, Tỷ lệ khách hàng từng bị vỡ nợ trong số 45.000 hồ sơ nằm trong khoảng 50,33% đến 51,26%. Bên cạnh đó, kết quả kiểm định cho thấy giá trị p_value nhỏ hơn so với mức ý nghĩa 5% (p_value = 0.0007502) ta bác bỏ giả thuyết \(H_0\). Như vậy tỷ lệ khách hàng từng bị vỡ nợ không phải 50%, mà bằng 50,8% (nằm trong khoảng 50,33% đến 51,26%).
Bảng tần số và tần suất giữa hai biến Loan Status1 và Loan Intent nhằm thấy rõ sự phân bổ sự phê duyệt khoản vay theo từng mục đích vay của khách hàng
table_loan_intent <- table(dulieu$loan_intent, dulieu$loan_status1)
tloan_intent <- addmargins(table_loan_intent)
kable(tloan_intent, caption = "<center><strong>Bảng tần số chéo thể hiện mục đích vay theo từng trạng thái phê duyệt khoản vay<center><strong>", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = TRUE, position = "center") %>%
row_spec(0, bold = TRUE)
| Approved | Rejected | Sum | |
|---|---|---|---|
| DEBTCONSOLIDATION | 2163 | 4982 | 7145 |
| EDUCATION | 1552 | 7601 | 9153 |
| HOMEIMPROVEMENT | 1258 | 3525 | 4783 |
| MEDICAL | 2378 | 6170 | 8548 |
| PERSONAL | 1521 | 6031 | 7552 |
| VENTURE | 1128 | 6691 | 7819 |
| Sum | 10000 | 35000 | 45000 |
Từ bảng tần số, ta có bảng tần suất tình trạng sở hữu nhà theo từng trạng thái phê duyệt hồ sơ:
# tính tần suất theo từng trạng thái phê duyệt
tylein <- round(prop.table(table_loan_intent, margin = 2)*100,2)
kable(tylein, caption = "<center><strong>Bảng tần suất chéo thể hiện mục đích vay theo từng trạng thái phê duyệt<center><strong>", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = TRUE, position = "center") %>%
row_spec(0, bold = TRUE)
| Approved | Rejected | |
|---|---|---|
| DEBTCONSOLIDATION | 21.63 | 14.23 |
| EDUCATION | 15.52 | 21.72 |
| HOMEIMPROVEMENT | 12.58 | 10.07 |
| MEDICAL | 23.78 | 17.63 |
| PERSONAL | 15.21 | 17.23 |
| VENTURE | 11.28 | 19.12 |
dulieu %>% ggplot(aes(x = loan_status1, fill = loan_intent)) +
geom_bar(position = 'dodge') +
labs(title = "Biểu đồ tần số mục đích vay theo từng trạng thái phê duyệt", x = "Trạng thái phê duyệt vay", y = "Số lượng")
Nhận xét:
Kết quả thống kê cho thấy khả năng được phê duyệt khoản vay có sự khác biệt theo mục đích vay. Nhóm MEDICAL có số hồ sơ được duyệt cao nhất 2.378 hồ sơ (23,78%) , tiếp theo là DEBT CONSOLIDATION (21,64%) và EDUCATION (15,52%). Ngược lại, nhóm VENTURE có số được hồ sơ được duyệt thấp nhất với 1.128 hồ sơ và tỷ lệ bị từ chối cao. Nhìn chung, các mục đích vay thiết yếu như y tế hoặc giáo dục có khả năng được phê duyệt cao hơn so với các khoản vay cá nhân hoặc khởi nghiệp, thường bị đánh giá rủi ro cao hơn.
Ta tiến hành ước lượng chênh lệch tỷ lệ được phê duyệt vay giữa hai nhóm mục đích là vay cho giáo dục (EDUCATION) và vay y tế (MEDICAL). Bài toán kiểm định được thực hiện với giả thuyết:
\(H_0\): \(p_1-p_2=0\) (Tỷ lệ khách hàng vay cho giáo dục và vay y tế được phê duyệt là như nhau).
\(H_0\): \(p_1-p_2≠0\) (Tỷ lệ khách hàng vay cho giáo dục và vay y tế được phê duyệt là khác nhau).
# Lọc ra những hồ sơ của vay giáo dục và vay y tế
intent_me <- dulieu[dulieu$loan_intent == 'MEDICAL',]
intent_edu <- dulieu[dulieu$loan_intent == 'EDUCATION',]
#Lọc ra những hồ sơ đã được phê duyệt
intent_me1 <- intent_me[intent_me$loan_status1 == 'Approved',]
intent_edu1 <- intent_edu[intent_edu$loan_status1 == 'Approved',]
# Tạo ra vector chứa tổng số hồ sơ trong mỗi nhóm: MEDICAL và EDUCATION; vector chứa những hồ sơ đã được duyệt
med <- c(nrow(intent_me), nrow(intent_edu))
educ <- c(nrow(intent_me1), nrow(intent_edu1))
prop.test(educ, med)
##
## 2-sample test for equality of proportions with continuity correction
##
## data: educ out of med
## X-squared = 301.35, df = 1, p-value < 2.2e-16
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.09629834 0.12096533
## sample estimates:
## prop 1 prop 2
## 0.2781937 0.1695619
Diễn giải kết quả:
Kết quả kiểm định chênh lệch hai tỷ lệ được phê duyệt khoản vay giữa MEDICAL và EDUCATION cho thấy: tỷ lệ được duyệt ở nhóm MEDICAL là 27,82%, trong khi đó nhóm EDUCATION là 16,96%. Hiệu hai tỷ lệ là 0,1086 > 0, nhóm MEDICAL có tỷ lệ được phê duyệt cao hơn nhóm EDUCATION
Khoảng tin cậy 95% cho hiệu hai tỷ lệ nằm trong khoảng 20,04% đến 21,56%. Đồng thời, giá trị p_value nhỏ hơn mức ý nghĩa 5% (p_value < 2.2e-16), ta bác bỏ giả thuyết \(H_0\). Như vậy, có thể kết luận rằng người vay cho y tế có tỷ lệ được phê duyệt khoản vay cao hơn so với nhóm vay cho giáo dục.
Vì Relative Risk chỉ thực hiện được cho 2 biến định tính nhị phân, hay dữ liệu bảng 2x2. Do đó, ta tiến hành lựa chọn hai biểu hiện MEDICAL(y tế) và EDUCATION (giáo dục) vì đây là hai nhóm chiếm tỷ lệ lớn nhất trong dữ liệu.
# Lọc dữ liệu
cal <- dulieu %>% filter(loan_intent == "MEDICAL"| loan_intent == "EDUCATION")
# Bảng tần số chéo
table_cal <- table(cal$loan_intent, cal$loan_status1)
# Tính Relative Risk
riskratio(table_cal, rev = 'c')
## $data
##
## Rejected Approved Total
## EDUCATION 7601 1552 9153
## MEDICAL 6170 2378 8548
## Total 13771 3930 17701
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## EDUCATION 1.000000 NA NA
## MEDICAL 1.640662 1.550134 1.736476
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## EDUCATION NA NA NA
## MEDICAL 0 7.640884e-68 1.218491e-67
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét:
Kết quả RR = 1.6407 > 1, nghĩa là người vay thuộc nhóm vay y tế (MEDICAL) có khả năng được phê duyệt khoản vay cao gấp 1,6407 lần so với người vay cho giáo dục. Điều này cho thấy tỷ lệ được phê duyệt ở nhóm y tế cao hơn nhóm giáo dục khi xét theo tỷ lệ trong từng nhóm. Khoảng tin cậy 95% cho log(RR) nằm trong khoảng từ 1.5501 đến 1.7365.
oddsratio(table_cal)
## $data
##
## Approved Rejected Total
## EDUCATION 1552 7601 9153
## MEDICAL 2378 6170 8548
## Total 3930 13771 17701
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## EDUCATION 1.0000000 NA NA
## MEDICAL 0.5298099 0.4928408 0.5694417
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## EDUCATION NA NA NA
## MEDICAL 0 7.640884e-68 1.218491e-67
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ chênh Odds Ratio = 0.5298, tức là tỷ lệ hồ sơ được phê duyệt(so với bị từ chối) ở nhóm khách hàng vay cho giáo dục thấp hơn tỷ lệ hồ sơ được phê duyệt(so với bị từ chối) ở nhóm khách hàng vay cho y tế thấp hơn 0.5298 lần. Khoảng tin cậy 95% cho log(OR) là 0,4928 đến 0,5694. Như vậy kết quả Odds Ratio chỉ ra rằng nhóm vay cho y tế có khả năng được chấp nhận vay vốn cao hơn nhóm vay giáo dục.
Để kiểm tra mối quan hệ giữa Loan Status và Loan Intent, ta sử dụng kiểm định Chi-square test để khẳng định mối quan hệ này.
Đặt giả thuyết:
\(H_0\): \(\text{Loan Status và Loan Intent độc lập}\),
\(H_1\): \(\text{Loan Status và Loan Intent có liên hệ với nhau}\),
chisq.test(table_loan_intent)
##
## Pearson's Chi-squared test
##
## data: table_loan_intent
## X-squared = 909.65, df = 5, p-value < 2.2e-16
Kết luận thống kê: Giá trị p_value < 2.2e - 16 < 0.05 nên ta bác bỏ giả thuyết \(H_0\). Vậy mục đích vay vốn Loan Intent và trạng thái phê duyệt hồ sơ Loan Status có mối liên hệ với nhau.
Bảng tần số và tần suất giữa hai biến Loan Status và Person Home Ownership nhằm thấy rõ sự phân bổ tình trạng sở hữu nhà ở theo từng nhóm trạng thái phê duyệt khoản vay
table_loan_home <- table(dulieu$person_home_ownership, dulieu$loan_status1)
loan_home <- addmargins(table_loan_home)
kable(loan_home, caption = "<center><strong>Bảng tần số chéo thể hiện tình trạng sở hữu nhà ở theo từng trạng thái phê duyệt<center><strong>", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = TRUE,
position = "center") %>%
row_spec(0, bold = TRUE)
| Approved | Rejected | Sum | |
|---|---|---|---|
| MORTGAGE | 2144 | 16345 | 18489 |
| OTHER | 39 | 78 | 117 |
| OWN | 222 | 2729 | 2951 |
| RENT | 7595 | 15848 | 23443 |
| Sum | 10000 | 35000 | 45000 |
Từ bảng tần số, ta có bảng tần suất tình trạng sở hữu nhà theo từng trạng thái phê duyệt hồ sơ:
# tính tần suất theo từng trạng thái phê duyệt
tyleh <- round(prop.table(table_loan_home, margin = 2)*100,2)
kable(tyleh, caption = "<center><strong>Bảng tần suất chéo thể hiện tình trạng sở hữu nhà ở theo từng trạng thái phê duyệt<center><strong>", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = TRUE, position = "center") %>%
row_spec(0, bold = TRUE)
| Approved | Rejected | |
|---|---|---|
| MORTGAGE | 21.44 | 46.70 |
| OTHER | 0.39 | 0.22 |
| OWN | 2.22 | 7.80 |
| RENT | 75.95 | 45.28 |
ggplot(dulieu, aes(x = loan_status1, fill = person_home_ownership)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent_format()) +
labs(title = "Tỷ lệ tình trạng sở hữu nhà theo từng trạng thái phê duyệt", x = "Trạng thái phê duyệt vay",
y = "Tỷ lệ phần trăm")
Nhận xét:
Trong tổng số 45.000 hồ sơ vay, nhóm người thuê nhà (RENT) là nhóm có tỷ lệ được phê duyệt cao nhất, với 75,95% số hồ sơ được duyệt đến từ nhóm này. Ngược lại, nhóm đang thế chấp nhà (MORTGAGE) chiếm 46,70% trong các hồ sơ bị từ chối, phản ánh khả năng những người đang có khoản vay thế chấp khác có thể bị đánh giá là rủi ro tín dụng cao hơn. Nhóm chủ sở hữu nhà (OWN) chiếm tỷ lệ tương đối thấp trong cả hai nhóm, nhưng tỷ lệ bị từ chối vẫn cao hơn được duyệt (7,80% so với 2,22%).
Ta tiến hành ước lượng chênh lệch tỷ lệ được phê duyệt vay vôn giữa hai nhóm biểu hiện là nhà thuê (RENT) và nhà thế chấp (MORTGAGE). Bài toán kiểm định được thực hiện với giả thuyết:
\(H_0\): \(p_1-p_2=0\) (Tỷ lệ khách hàng ở nhà thuê và nhà thế chấp được duyệt hồ sơ vay là như nhau)
\(H_0\): \(p_1-p_2≠0\) (Tỷ lệ khách hàng ở nhà thuê và nhà thế chấp được duyệt hồ sơ vay là khác nhau)
# Lọc ra những hồ sơ của khách hàng thuê nhà và thế chấp nhà
home_rent <- dulieu[dulieu$person_home_ownership == 'RENT',]
home_mort <- dulieu[dulieu$person_home_ownership == 'MORTGAGE',]
#Lọc ra những hồ sơ đã được phê duyệt
home_rent1 <- home_rent[home_rent$loan_status1 == 'Approved',]
home_mort1 <- home_mort[home_mort$loan_status1 == 'Approved',]
# Tạo ra vector chứa tổng số hồ sơ trong mỗi nhóm: RENT và MORTGAGE; vector chứa những hồ sơ đã được duyệt
rt <- c(nrow(home_rent), nrow(home_mort))
mt <- c(nrow(home_rent1), nrow(home_mort1))
prop.test(mt, rt)
##
## 2-sample test for equality of proportions with continuity correction
##
## data: mt out of rt
## X-squared = 2507.2, df = 1, p-value < 2.2e-16
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.2004058 0.2156271
## sample estimates:
## prop 1 prop 2
## 0.3239773 0.1159608
Diễn giải kết quả:
Kết quả kiểm định chênh lệch hai tỷ lệ được phê duyệt khoản vay giữa hai nhóm thuê nhà (RENT) và thế chấp nhà (MORTGAGE) cho thấy: tỷ lệ được duyệt ở nhóm RENT là 32,4%, trong khi đó nhóm MORTGAGE chỉ là 11,6%. Hiệu hai tỷ lệ này bằng 0,028 > 0, cho thấy nhóm RENT có tỷ lệ được duyệt vay cao hơn nhóm MORTGAGE.
Chênh lệch giữa hai tỷ lệ nằm trong khoảng tin cậy 95% là từ 20,04% đến 21,56%. Đồng thời, giá trị p_value nhỏ hơn mức ý nghĩa 5% (p_value < 2.2e-16), ta bác bỏ giả thuyết \(H_0\). Như vậy, có thể kết luận rằng người vay thuộc nhóm thuê nhà có tỷ lệ được phê duyệt khoản vay cao hơn so với nhóm đang thế chấp nhà.
Vì Relative Risk chỉ thực hiện được cho 2 biến định tính nhị phân, hay dữ liệu bảng 2x2. Do đó, ta tiến hành lựa chọn hai biểu hiện RENT (thuê nhà) và MORTGAGE (nhà thế chấp) vì đây là hai nhóm chiếm tỷ lệ lớn nhất trong dữ liệu.
# Lọc dữ liệu
qe <- dulieu %>% filter(person_home_ownership == "RENT"| person_home_ownership == "MORTGAGE")
# Bảng tần số chéo
table_2x2 <- table(qe$person_home_ownership, qe$loan_status1)
# Tính Relative Risk
riskratio(table_2x2, rev = 'c')
## $data
##
## Rejected Approved Total
## MORTGAGE 16345 2144 18489
## RENT 15848 7595 23443
## Total 32193 9739 41932
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## MORTGAGE 1.000000 NA NA
## RENT 2.793851 2.673895 2.919189
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## MORTGAGE NA NA NA
## RENT 0 0 0
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét:
Kết quả RR = 2.7938 > 1, nghĩa là người vay thuộc nhóm thuê nhà (RENT) có khả năng được phê duyệt khoản vay cao gấp 2,7938 lần so với người đang thế chấp nhà. Điều này cho thấy tỷ lệ được duyệt ở nhóm thuê nhà cao hơn nhóm thế chấp nhà khi xét theo tỷ lệ trong từng nhóm. Khoảng tin cậy 95% cho log(RR) nằm trong khoảng từ 0.757 đến 0.773.
oddsratio(table_2x2)
## $data
##
## Approved Rejected Total
## MORTGAGE 2144 16345 18489
## RENT 7595 15848 23443
## Total 9739 32193 41932
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## MORTGAGE 1.0000000 NA NA
## RENT 0.2737237 0.2596112 0.2884842
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## MORTGAGE NA NA NA
## RENT 0 0 0
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ chênh Odds Ratio = 0.2737, tức là tỷ lệ hồ sơ được phê duyệt(so với bị từ chối) ở nhóm khách hàng ở nhà thế chấp (MORTGAGE) thấp hơn tỷ lệ hồ sơ được phê duyệt(so với bị từ chối) ở nhóm khách hàng ở nhà thuê (RENT) thấp hơn 0.2737 lần. Khoảng tin cậy 95% cho log(OR) là 0,2596 đến 0,2885. Như vậy kết quả Odds Ratio chỉ ra rằng nhóm ở nhà thế chấp có khả năng được chấp nhận vay vốn cao hơn nhóm ở nhà thế chấp.
Để kiểm tra mối quan hệ giữa Loan Status và Person Home Ownership, ta sử dụng kiểm định Chi-square test để khẳng định mối quan hệ này.
Đặt giả thuyết:
\(H_0\): \(\text{Loan Status và Person Home Ownership độc lập}\),
\(H_1\): \(\text{Loan Status và Person Home Ownership có liên hệ với nhau}\),
chisq.test(table_loan_home)
##
## Pearson's Chi-squared test
##
## data: table_loan_home
## X-squared = 2989.5, df = 3, p-value < 2.2e-16
Kết luận thống kê: Giá trị p_value < 2.2e - 16 < 0.05 nên ta bác bỏ giả thuyết \(H_0\). Vậy tình trạng sở hữu nhà Person Home Ownership và trạng thái phê duyệt hồ sơ Loan Status có mối liên hệ với nhau.
Bảng tần số và tần suất giữa hai biến Loan Status và Previous Loan Defaults on file nhằm thấy rõ sự phân bổ trạng thái các khoản vay trước theo từng tình trạng phê duyệt hồ sơ.
table_loan_pre <- table(dulieu$previous_loan_defaults_on_file, dulieu$loan_status1)
loan_previous <- addmargins(table_loan_pre)
kable(loan_previous, caption = "<center><strong>Bảng tần số chéo thể hiện trạng thái các khoản vay trước theo từng trạng thái phê duyệt<center><strong>", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = TRUE, position = "center") %>%
row_spec(0, bold = TRUE)
| Approved | Rejected | Sum | |
|---|---|---|---|
| No | 10000 | 12142 | 22142 |
| Yes | 0 | 22858 | 22858 |
| Sum | 10000 | 35000 | 45000 |
Từ bảng tần số, ta có bảng tần suất tình trạng sở hữu nhà theo từng trạng thái phê duyệt hồ sơ:
# tính tần suất theo từng trạng thái phê duyệt
tylepre <- round(prop.table(table_loan_pre, margin = 2)*100,2)
kable(tylepre, caption = "<center><strong>Bảng tần suất chéo thể hiện thể hiện trạng thái các khoản vay trước theo từng trạng thái phê duyệt<center><strong>", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = TRUE, position = "center") %>%
row_spec(0, bold = TRUE)
| Approved | Rejected | |
|---|---|---|
| No | 100 | 34.69 |
| Yes | 0 | 65.31 |
ggplot(dulieu, aes(x = loan_status1, fill = previous_loan_defaults_on_file)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent_format()) +
labs(title = "Tỷ lệ trạng thái khoản vay trước theo từng trạng thái phê duyệt", x = "Trạng thái phê duyệt vay",
y = "Tỷ lệ phần trăm")
Nhận xét:
Bảng tần số cho thấy trong số các hồ sơ được phê duyệt, 100% đều thuộc nhóm chưa từng bị vỡ nợ vay trước đó (No), trong khi 100% hồ sơ thuộc nhóm khách hàng đã từng vỡ nợ (Yes) đều bị từ chối. Điều này cho thấy tình trạng có khoản vay trước đó là một yếu tố bất lợi rõ rệt trong quyết định phê duyệt khoản vay, và các tổ chức cho vay dường như rất hạn chế trong việc chấp thuận hồ sơ của những người đã từng vỡ nợ vay để tránh rủi ro cho ngân hàng hoặc tổ chức tín dụng.
# Tính Relative Risk
riskratio(table_loan_pre)
## $data
##
## Approved Rejected Total
## No 10000 12142 22142
## Yes 0 22858 22858
## Total 10000 35000 45000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## No 1.000000 NA NA
## Yes 1.823588 1.801919 1.845517
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0 0 0
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét:
Kết quả RR = 1.8236 > 1, nghĩa là những khách hàng đã từng bị vỡ nợ (Yes) có nguy cơ bị từ chối cho vay cao hơn nhóm người chưa từng bị vỡ nợ 1,8236 lần. Khoảng tin cậy 95% cho log(RR) nằm trong khoảng từ 1.80 đến 1.85.
Để kiểm tra mối quan hệ giữa Loan Status và Previous Loan Defaults on file, ta sử dụng kiểm định Chi-square test để khẳng định mối quan hệ này.
Đặt giả thuyết:
\(H_0\): \(\text{Loan Status và Previous Loan Defaults on file độc lập}\),
\(H_1\): \(\text{Loan Status và Previous Loan Defaults on file có liên hệ với nhau}\),
chisq.test(table_loan_pre)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table_loan_pre
## X-squared = 13270, df = 1, p-value < 2.2e-16
Kết luận thống kê: Giá trị p_value < 2.2e - 16 < 0.05 nên ta bác bỏ giả thuyết \(H_0\). Vậy trạng thái các khoản vay trước Previous Loan Defaults on file và trạng thái phê duyệt hồ sơ Loan Status có mối liên hệ với nhau.
Từ các mối liên hệ giữa 2 biến độc lập phân tích ở trên, ta tiến hành phân tích hồi quy các yếu tố ảnh hưởng đến quyết định cho vay của các tổ chức tín dụng.
dulieu$loan_intent <- relevel(as.factor(dulieu$loan_intent), ref = "MEDICAL")
dulieu$person_home_ownership <- relevel(as.factor(dulieu$person_home_ownership), ref = "RENT")
logit_model <- glm(loan_status ~ loan_intent + person_home_ownership, data = dulieu,
family = binomial(link = 'logit'))
summary(logit_model)
##
## Call:
## glm(formula = loan_status ~ loan_intent + person_home_ownership,
## family = binomial(link = "logit"), data = dulieu)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.49566 0.02597 -19.085 < 2e-16 ***
## loan_intentDEBTCONSOLIDATION 0.15528 0.03676 4.224 2.4e-05 ***
## loan_intentEDUCATION -0.59752 0.03803 -15.711 < 2e-16 ***
## loan_intentHOMEIMPROVEMENT 0.11218 0.04264 2.631 0.00852 **
## loan_intentPERSONAL -0.35069 0.03882 -9.033 < 2e-16 ***
## loan_intentVENTURE -0.73753 0.04149 -17.778 < 2e-16 ***
## person_home_ownershipMORTGAGE -1.31433 0.02721 -48.307 < 2e-16 ***
## person_home_ownershipOTHER 0.07619 0.19927 0.382 0.70220
## person_home_ownershipOWN -1.66885 0.07171 -23.273 < 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: 47674 on 44999 degrees of freedom
## Residual deviance: 43696 on 44991 degrees of freedom
## AIC: 43714
##
## Number of Fisher Scoring iterations: 5
Kết quả hồi quy như sau:
\[ \ln\left(\frac{p}{1 - p}\right)= -0.496+ 0.155\text{loan_intent}_{DEBTCONSOLIDATION} - 0.598 \text{loan_intent}_{EDUCATION}+0.11\text{loan_intent}_{HOMEIMPROVEMENT} -0.35\text{loan_intent}_{PERSONAL} - 0.74\text{loan_intent}_{VENTURE}- 1.31\text{person_home_ownership}_{MORTGAGE}- 1.67 \text{person_home_ownership}_{OWN} \]
Hệ số chặn \(\hat{\beta}_0 = -0.4957\), có p_value < mức ý nghĩa 0.05. Khi khách hàng vay vốn với mục đích phục vụ cho y tế và ở nhà thuê thì log(odd) được tổ chức tín dụng duyệt vay là 0.4957.
Hệ số của \(\text{loan_intent}_{DEBTCONSOLIDATION}=0.15528\), tức là OR = 1.168 cho thấy những khách hàng đi vay để hợp nhất nợ sẽ làm tăng khả năng được duyệt vay. So với những khách hàng vay với mục đích y tế, những khách hàng với mục đích hợp nhất nợ có tỷ lệ được duyệt vay cao hơn 1,168 lần so với vay y tế.
Hệ số của \(\text{loan_intent}_{EDUCATION}=-0.5975\), tức là OR = 0.55 cho thấy những khách hàng đi vay giáo dục sẽ làm giảm khả năng được duyệt vay. So với những khách hàng vay với mục đích y tế, những khách hàng với mục đích giáo dục có tỷ lệ được duyệt vay chỉ bằng 0.55 lần so với vay y tế.
Hệ số của \(\text{loan_intent}_{HOMEIMPROVEMENT}=0.1122\), tức là OR = 1.119 cho thấy rằng những khách hàng đi vay để sửa nhà sẽ làm tăng khả năng được duyệt vay. So với những khách hàng vay cho y tế, những người vay để sửa nhà có tỷ lệ được duyệt vay cao hơn 1.119 lần so với vay y tế.
Hệ số của \(\text{loan_intent}_{PERSONAL}=-0.3507\), tức là OR = 0.7042 cho thấy rằng đi vay vì mục đích cá nhân làm giảm khả năng được duyệt vay. So với những khách hàng vay cho y tế, những người vay vì mục đích cá nhân có tỷ lệ được duyệt vay thấp hơn 0.7042 lần so với vay y tế.
Hệ số của \(\text{loan_intent}_{VENTURE}=-0.7375\), tức là OR = 0.4783 cho thấy rằng vay đầu tư làm giảm khả năng được phê duyệt. So với những khách hàng vay cho y tế, những người vay đầu tư có tỷ lệ được duyệt vay thấp hơn 0.4783 lần so với vay y tế.
Hệ số của \(\text{person_home_ownership}_{MORTGAGE}=-1.3143\), tức là OR = 0.2687 cho thấy rằng việc nhà ở đang thế chấp sẽ làm giảm khả năng được duyệt vay. Những người đang thế chấp có tỷ lệ duyệt vay thấp hơn so với những người đi thuê 0.2687 lần.
Hệ số của \(\text{person_home_ownership}_{OWN}=-1.6689\), tức là OR = 0.188 cho thấy những người đã sở hữu nhà có khả năng được duyệt hồ sơ thấp hơn so với những người ở nhà thuê và tỷ lệ được duyệt vay của người sở hữu nhà chỉ bằng 0.188 lần so với người đi thuê nhà.
probit_model <- glm(loan_status ~ loan_intent + person_home_ownership, data = dulieu,
family = binomial(link = 'probit'))
summary(probit_model)
##
## Call:
## glm(formula = loan_status ~ loan_intent + person_home_ownership,
## family = binomial(link = "probit"), data = dulieu)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.30509 0.01556 -19.613 < 2e-16 ***
## loan_intentDEBTCONSOLIDATION 0.09006 0.02187 4.118 3.83e-05 ***
## loan_intentEDUCATION -0.35709 0.02190 -16.304 < 2e-16 ***
## loan_intentHOMEIMPROVEMENT 0.04943 0.02514 1.966 0.0493 *
## loan_intentPERSONAL -0.21951 0.02260 -9.714 < 2e-16 ***
## loan_intentVENTURE -0.44294 0.02357 -18.792 < 2e-16 ***
## person_home_ownershipMORTGAGE -0.75633 0.01499 -50.440 < 2e-16 ***
## person_home_ownershipOTHER 0.04114 0.12126 0.339 0.7344
## person_home_ownershipOWN -0.92451 0.03588 -25.769 < 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: 47674 on 44999 degrees of freedom
## Residual deviance: 43651 on 44991 degrees of freedom
## AIC: 43669
##
## Number of Fisher Scoring iterations: 5
Kết quả hồi quy như sau:
\[ \pi=\Phi(-0.305+ 0.09\text{loan_intent}_{DEBTCONSOLIDATION} -0.357 \text{loan_intent}_{EDUCATION}+0.049\text{loan_intent}_{HOMEIMPROVEMENT}-0.22\text{loan_intent}_{PERSONAL} -0.443\text{loan_intent}_{VENTURE}-0.756\text{person_home_ownership}_{MORTGAGE}-0.925 \text{person_home_ownership}_{OWN}) \]
Hệ số chặn là -0.3051 và có ý nghĩa thống kê khi p_value nhỏ hơn mức ý nghĩa 5%. Điều này có nghĩa là xác suất được duyệt vay cho nhóm người vay vì y tế và ở nhà thuê là \(\Phi(-0.3051)\).
Các hệ số \(\text{loan_intent}_{DEBTCONSOLIDATION}\) và \(\text{loan_intent}_{HOMEIMPROVEMENT}\) lần lượt là 0.09 và 0.049 đều là các hệ số dương. Điều này cho thấy vay để hợp nhất nợ và vay để cải thiện nhà làm tăng xác suất được duyệt vay so với vay y tế
Các hệ số \(\text{loan_intent}_{EDUCATION}=-0.3571\), \(\text{loan_intent}_{PERSONAL}=-0.2195\) và \(\text{loan_intent}_{VENTURE}=-0.4429\) đều là các hệ số âm. Như vậy, các mục đích vay giáo dục, vay cá nhân và vay đầu tư làm giảm xác suất được phê duyệt khoản vay.
Các hệ số của \(\text{person_home_ownership}_{MORTGAGE}\) và \(\text{person_home_ownership}_{OWN}\) lần lượt là các hệ số âm (-0.756 và -0.925). Điều này cho thấy việc đang thế chấp nhà hoặc sở hữu nhà làm giảm xác suất được duyệt vay so với người đi thuê.
clog_model <- glm(loan_status ~ loan_intent + person_home_ownership, data = dulieu,
family = binomial(link = 'cloglog'))
summary(clog_model)
##
## Call:
## glm(formula = loan_status ~ loan_intent + person_home_ownership,
## family = binomial(link = "cloglog"), data = dulieu)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.75347 0.02133 -35.326 < 2e-16 ***
## loan_intentDEBTCONSOLIDATION 0.12849 0.03017 4.259 2.05e-05 ***
## loan_intentEDUCATION -0.49658 0.03283 -15.126 < 2e-16 ***
## loan_intentHOMEIMPROVEMENT 0.11896 0.03523 3.377 0.000734 ***
## loan_intentPERSONAL -0.27678 0.03304 -8.377 < 2e-16 ***
## loan_intentVENTURE -0.61740 0.03629 -17.011 < 2e-16 ***
## person_home_ownershipMORTGAGE -1.15635 0.02456 -47.087 < 2e-16 ***
## person_home_ownershipOTHER 0.07191 0.16153 0.445 0.656198
## person_home_ownershipOWN -1.50836 0.06826 -22.098 < 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: 47674 on 44999 degrees of freedom
## Residual deviance: 43733 on 44991 degrees of freedom
## AIC: 43751
##
## Number of Fisher Scoring iterations: 5
Kết quả hồi quy:
\[ \log(\text{-log}(1-\pi))=-0.753+0.128\text{loan_intent}_{DEBTCONSOLIDATION}-0.497 \text{loan_intent}_{EDUCATION}+0.119\text{loan_intent}_{HOMEIMPROVEMENT}-0.277\text{loan_intent}_{PERSONAL} -0.617\text{loan_intent}_{VENTURE}-0.756\text{person_home_ownership}_{MORTGAGE}-1.508 \text{person_home_ownership}_{OWN} \]
Đối với các hệ số của các mục đích vay vốn, nhóm biểu hiện DEBTCONSOLIDATION và HOMEIMPROVEMENT có hệ số hồi quy dương và có ý nghĩa thống kê, cho thấy những mục đích hợp nhất nợ, sửa nhà làm tăng xác suất được duyệt vay. Ngược lại, các biểu hiện EDUCATION, PERSONAL, VENTURE có hệ số âm và có ý nghĩa thống kê, cho thấy những mục đích giáo dục, cá nhân, đầu tư làm giảm xác suất được duyệt vay so với vay nợ y tế
Đối với các hệ số của các tình trạng sở hữu nhà, so với tình trạng ở nhà thuê, các biểu hiện MORTGAGE và OWN có hệ số âm, cho thấy việc đang thế chấp hoặc sở hữu nhà làm giảm mạnh xác suất được duyệt vay.
library(DescTools)
AIC <- c(Logit = AIC(logit_model), Probit = AIC(probit_model), Cloglog = AIC(clog_model))
Bri <- c(Logit = BrierScore(logit_model), Probit = BrierScore(probit_model), Cloglog = BrierScore(clog_model))
danhgia <- data.frame(AIC, Bri)
kable(danhgia, format = "markdown", caption = "<strong>Bảng so sánh chỉ số AIC và Brier Score giữa các mô hình<strong>",
col.names = c("Chỉ số AIC", "BrierScore"),
align = c("c", "c"))
| Chỉ số AIC | BrierScore | |
|---|---|---|
| Logit | 43714.12 | 0.1587701 |
| Probit | 43669.48 | 0.1586904 |
| Cloglog | 43751.32 | 0.1588279 |
Chỉ số AIC càng nhỏ thì mô hình càng tốt. Kết quả AIC của cả 3 mô hình Logit, Probit và Cloglog lần lượt là 43714.12, 43669.48 và 43751.32. Dựa vào kết quả AIC, ta lựa chọn mô hình Probit vì AIC_Probit nhỏ hơn AIC của hai mô hình còn lại (43669.48 < 43714.12 < 43751.32).
Thêm vào đó, chỉ số Brier Score đo lường độ chính xác của dự báo xác suất, Brier Score càng nhỏ mô hình càng tốt. Kết quả cũng cho thấy Brier Score của mô hình Probit nhỏ nhất vì vậy mô hình Probit được lựa chọn.
Conf(table(predict(probit_model, type="response") > 0.3,probit_model$data$loan_status1 == 'Approved'))
##
## Confusion Matrix and Statistics
##
## Reference
## Prediction FALSE TRUE
## FALSE 28041 5801
## TRUE 6959 4199
##
## Total n : 45'000
## Accuracy : 0.7164
## 95% CI : (0.7123, 0.7206)
## No Information Rate : 0.7778
## P-Value [Acc > NIR] : 1.0000
##
## Kappa : 0.2123
## Mcnemar's Test P-Value : < 2.2e-16
##
## Sensitivity : 0.8012
## Specificity : 0.4199
## Pos Pred Value : 0.8286
## Neg Pred Value : 0.3763
## Prevalence : 0.7778
## Detection Rate : 0.7520
## Detection Prevalence : 0.6231
## Balanced Accuracy : 0.6105
## F-val Accuracy : 0.8146
## Matthews Cor.-Coef : 0.2128
##
## 'Positive' Class : FALSE
Bảng ma trận nhầm lẫn với mô hình hồi quy Probit, có 28041 trường hợp dự đoán đúng số lượng hồ sơ bị từ chối và có 4199 trường hợp dự đoán đúng số lượng hồ sơ được phê duyệt.Trong khi đó, có 6959 hồ sơ được dự đoán là phê duyệt khi thực tế hồ sơ đó lại bị từ chối và 5801 trường hợp dự đoán là bị từ chối nhưng thực tế hồ sơ đã được phê duyệt bởi tổ chức tín dụng.
Giá trị độ chính xác (Accuracy) của mô hình là 0.7164, như vậy tỷ lệ dự báo đúng là 71,64% tổng thể. Độ nhạy cảm (Sensitivity) là 0.8286 cho biết tỷ lệ dự báo đúng với thực tế trong các trường hợp dự báo được phê duyệt vay là 82,86%. Độ chính xác dương (Precision) của mô hình là 0.8012, cho biết tỷ lệ dự đoán đúng trong số những trường hợp mô hình dự đoán là được phê duyệt là 80,12%.
set.seed(111)
data_status_0 <- dulieu[dulieu$loan_status == 0, ]
data_status_1 <- dulieu[dulieu$loan_status == 1, ]
train_indices_0 <- sample(1:nrow(data_status_0), size = 0.7 * nrow(data_status_0))
train_indices_1 <- sample(1:nrow(data_status_1), size = 0.7 * nrow(data_status_1))
train_0 <- data_status_0[train_indices_0, ]
train_1 <- data_status_1[train_indices_1, ]
test_0 <- data_status_0[-train_indices_0, ]
test_1 <- data_status_1[-train_indices_1, ]
train_data <- rbind(train_0, train_1)
test_data <- rbind(test_0, test_1)
pred_pro <- predict(probit_model, newdata = test_data, type = "response")
pred_tr <- predict(probit_model, newdata = train_data, type = "response")
library(pROC)
## Warning: package 'pROC' was built under R version 4.3.3
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
roc_tr <- roc(response = train_data$loan_status, predictor = pred_tr)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
roc_te <- roc(response = test_data$loan_status, predictor = pred_pro)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
ggroc(list(
Training = roc_tr, Test = roc_te)) +
geom_segment(aes(x = 1, y = 0, xend = 0, yend = 1),
color = "gray", linetype = "dashed") +
labs(
title = "Đường cong ROC",
subtitle = paste0(
"AUC (Training) = ", round(auc(roc_tr), 4),
", AUC (Test) = ", round(auc(roc_te), 4))) +
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"))
Dựa trên kết quả đường cong ROC, hiệu quả của mô hình khá tốt với giá trị AUC khoảng 0.6997 cho tập huấn luyện và 0.6965 cho tập kiểm tra. Sự chênh lệch rất nhỏ giữa AUC của hai tập cho thấy mô hình không gặp vấn đề overfitting nghiêm trọng, mô hình tương đối ổn định.
# Lấy tất cả biểu hiện của person_home_ownership
mucdich <- levels(dulieu$loan_intent)
# Tạo data frame mới chứa tất cả biểu hiện của person_home_ownership và VENTURE của loan_intent
du_bao <- data.frame(
loan_intent = factor(mucdich, levels = mucdich),
person_home_ownership = factor(rep("RENT", length(mucdich)), levels = levels(dulieu$person_home_ownership)))
prob_logit <- predict(probit_model, newdata = du_bao, type = "response")
prob_logit
## 1 2 3 4 5 6
## 0.3801501 0.4148752 0.2539289 0.3991068 0.2999321 0.2272226
Dựa vào kết quả dự báo, ta có thể thấy xác suất để được chấp nhận phê duyệt đối với một người thuê nhà, muốn vay cho cho mục đích y tế (1) là khoảng 38,02%. Đối với một người thuê nhà, muốn vay để hợp nhất nợ (2) thì xác suất được phê duyệt cho vay là khoảng 41,49%. Xác suất để một người thuê nhà, muốn vay cho giáo dục (3) được chấp nhận cho vay là khoảng 25,39%. Đối với một người thuê nhà, muốn vay để sửa nhà (4) thì xác suất để được chấp nhận hồ sơ là 39,91%. Đối với một người thuê nhà và muốn vay cho mục đích cá nhân thì xác suất được phê duyệt là 29,99%. Cuối cùng, xác suất để được chấp nhận phê duyệt đối với một người thuê nhà muốn vay đầu tư là khoảng 22,72%.
Việc phê duyệt hoặc từ chối khoản vay là quyết định quan trọng đối với mỗi tổ chức tín dụng, ảnh hưởng trực tiếp đến tỷ lệ nợ xấu, rủi ro tín dụng cũng như uy tín của doanh nghiệp. Với mỗi khách hàng, khoản vay giúp đáp ứng các nhu cầu tài chính nên việc bị từ chối cho vay sẽ gây khó khăn để giải quyết nhu cầu tín dụng. Chính vì vậy, nghiên cứu này được thực hiện, tập trung phân tích các yếu tố ảnh hưởng đến quyết định cho vay thông qua 45.000 hồ sơ vay vốn từ các tổ chức.
Thông qua kết quả hồi quy, có thể thấy mục đích vay vốn và tình trạng sở hữu nhà ảnh hưởng trực tiếp đến các quyết định cho vay. Cụ thể, đối với mục đích vay vốn, các hồ sơ vay vì mục đích gộp nợ, vay sửa nhà, vay giáo dục, y tế, đầu tư hay vay cá nhân đều có ảnh hưởng đáng kể đến quyết định phê duyệt hồ sơ. Các hồ sơ vay vì mục đích gộp nợ, sửa chữa nhà sẽ làm tăng quyết định cho vay hơn so với các mục đích khác. Đối với tình trạng sở hữu nhà, việc khách hàng ở nhà thuê, nhà đang thế chấp và sở hữu nhà đều ảnh hưởng đến quyết định cho vay, trong đó nhà thế chấp và nhà thuê sẽ làm giảm khả năng được duyệt vay.
a) Đối với các tổ chức tín dụng
Các khoản vay hợp nhất nợ và sửa chữa nhà có tác động tích cực đến khả năng được phê duyệt, do đó các tổ chức tín dụng nên phát triển các gói tín dụng ưu đãi với lãi suất cạnh tranh dành cho vay mua nhà, vay hợp nhất nhằm thu hút và phục vụ tốt nhóm khách hàng này. Đối với các mục đích vay khác như giáo dục, y tế, đầu tư hay tiêu dùng cá nhân, tổ chức tín dụng cần kết hợp đánh giá khả năng trả nợ với các tiêu chí bổ sung như thu nhập, ngành nghề, lịch sử tín dụng nhằm vừa đáp ứng nhu cầu vốn của khách hàng mà vẫn đảm bảo kiểm soát được rủi ro.
Bên cạnh đó, cần xem xét linh hoạt yếu tố tình trạng sở hữu nhà khi thẩm định hồ sơ vay vốn. Với khách hàng thuê nhà hoặc nhà đang thế chấp, đây là nhóm có khả năng được phê duyệt thấp hơn, nên tổ chức tín dụng cần yêu cầu khách hàng bổ sung thêm tài sản bảo đảm khác, bảo lãnh tín dụng, hoặc chứng minh nguồn thu nhập ổn định.
b) Đối với khách hàng
Khách hàng cần xác định và trình bày rõ mục đích vay vốn một cách hợp lý. Đối với những khách hàng không sở hữu nhà ở, đang thuê nhà hoặc nhà đang thế chấp, cần chủ động cung cấp thêm tài sản bảo đảm, bảo lãnh của bên thứ ba hoặc giấy tờ chứng minh thu nhập ổn định để nâng cao độ tin cậy với tổ chức tín dụng, từ đó sẽ làm tăng khả năng được chấp nhận cho vay từ các tổ chức. Bên cạnh đó, việc duy trì uy tín tín dụng cá nhân đóng vai trò quan trọng, khách hàng cần trả nợ đúng hạn, hạn chế phát sinh nợ xấu tăng khả năng tiếp cận nguồn vốn trong tương. lai.
Mặc dù nghiên cứu đã phân tích được các yếu tố ảnh hưởng đến quyết định cho vay của tổ chức tín dụng, tuy nhiên đề tài vẫn tồn tại một số hạn chế nhất định. Mô hình chỉ xem xét các yếu tố định tính về mục đích vay, tình trạng nhà ở mà chưa xem xét đến các yếu tố khác như thu nhập, lịch sử tín dụng, ngành nghề kinh doanh hay các biến kinh tế vĩ mô. Đồng thời, giá trị AUC của mô hình hồi quy probit chỉ đạt 0,6997, cho thấy khả năng phân loại mới dừng ở mức giá, chưa thật sự tốt, điều này đồng nghĩa với việc mô hình vẫn còn hạn chế trong việc dự đoán chính xác kết quả phê duyệt hồ sơ, và cần được cải thiện bằng cách bổ sung biến giải thích, hoặc thực hiện với các mô hình dự đoán khác như Random Forest để tìm ra phương pháp tối ưu nâng cao giá trị AUC và khả năng phân loại hồ sơ.
[1] Trần Mạnh Tường (2025), Giáo trình Phân tích dữ liệu định tính, Trường Đại học Tài chính - Marketing.
[2] Al-Mamun, M., Yasmeen, F., & Mehjabeen, F. (2012). A logit analysis of loan decision in Bangladeshi banks. International Journal of Applied Research in Business Administration & Economics, 1(4), 19-28.
[3] Chen Chen (2024). Research on the Influencing Factors of Home Loan Approvals. Dean & Francis Press Academic Pushlishing, 1(3). https://doi.org/10.61173/r3h7ke46.
[4] Gopinath, M., Maheep, K. S. S., & Sethuraman, R. (2021). Customer loan approval prediction using logistic regression. Advances in Parallel Computing, 38, 563-569.