Kính gửi ThS. Trần Mạnh Tường,
Em xin chân thành cảm ơn thầy đã tận tình hướng dẫn và hỗ trợ em trong quá trình học tập môn Phân tích dữ liệu định tính và thực hiện bài tiểu luận cuối kỳ với đề tài “PHÂN TÍCH CÁC YẾU TỐ ẢNH HƯỞNG ĐẾN QUYẾT ĐỊNH ĐĂNG KÝ TIỀN GỬI KỲ HẠN CỦA KHÁCH HÀNG”. Sự chỉ dẫn và kiến thức quý báu của thầy không chỉ giúp em hiểu sâu hơn về môn học mà còn truyền cảm hứng cho em trong nghiên cứu. Em rất biết ơn vì sự tận tâm và nhiệt huyết của thầy. Những góp ý và phản hồi của thầy đã giúp em hoàn thiện và nâng cao chất lượng trong quá trình học tập cũng như thực hiện bài tiểu luận. Em xin chân thành cảm ơn và kính chúc thầy nhiều sức khỏe.
Em xin cam đoan “PHÂN TÍCH CÁC YẾU TỐ ẢNH HƯỞNG ĐẾN QUYẾT ĐỊNH ĐĂNG KÝ TIỀN GỬI KỲ HẠN CỦA KHÁCH HÀNG” là nghiên cứu độc lập của riêng em. Các số liệu và kết quả nghiên cứu trong bài là hoàn toàn trung thực và có nguồn gốc rõ ràng và được phép công bố công khai trên trang chính thống.
Trong bối cảnh cạnh tranh ngày càng gay gắt giữa các ngân hàng thương mại, việc thu hút khách hàng sử dụng các sản phẩm tiền gửi là một trong những ưu tiên chiến lược nhằm nâng cao khả năng huy động vốn và đảm bảo tính thanh khoản. Trong số đó, tiền gửi có kỳ hạn là một sản phẩm quan trọng, vừa giúp ngân hàng ổn định nguồn vốn trung và dài hạn, vừa mang lại lợi ích đầu tư an toàn cho khách hàng. Tuy nhiên, không phải khách hàng nào cũng có xu hướng lựa chọn hình thức gửi tiền này. Việc nhận diện các yếu tố ảnh hưởng đến quyết định đăng ký tiền gửi có kỳ hạn từ phía khách hàng sẽ giúp ngân hàng thiết kế chính sách tiếp thị và chăm sóc khách hàng phù hợp hơn.
Hiện nay, cùng với sự phát triển mạnh mẽ của khoa học dữ liệu, các phương pháp định lượng – đặc biệt là các mô hình hồi quy nhị phân như Logit, Probit và Cloglog – được ứng dụng rộng rãi để phân tích hành vi khách hàng. Việc áp dụng các mô hình này không chỉ giúp dự báo xác suất khách hàng đăng ký sản phẩm mà còn lượng hóa được mức độ tác động của từng yếu tố, hỗ trợ ra quyết định dựa trên bằng chứng.
Xuất phát từ thực tiễn đó, đề tài “Phân tích các yếu tố ảnh hưởng đến quyết định đăng ký tiền gửi kỳ hạn của khách hàng”, ứng dụng các mô hình Logit, Probit, Cloglog được thực hiện nhằm đánh giá định lượng các yếu tố nhân khẩu học và tài chính tác động đến hành vi gửi tiền kỳ hạn, từ đó gợi mở những hàm ý quản trị hiệu quả trong hoạt động marketing của ngân hàng.
Mục tiêu chính của nghiên cứu này là xác định và đánh giá các yếu tố ảnh hưởng đến quyết định đăng ký tiền gửi kỳ hạn của khách hàng cá nhân. Cụ thể, nghiên cứu hướng đến:
Xác định mối quan hệ giữa các đặc điểm khách hàng (tình trạng hôn nhân, học vấn, vay mua nhà, vay cá nhân, nợ xấu, số dư hàng năm) và việc đăng ký tiền gửi kỳ hạn.
Đánh giá hiệu quả ba mô hình hồi quy logistic: logit, probit và cloglog.
Dựa trên các mục tiêu đó, nghiên cứu thực hiện trả lời các câu hỏi nghiên cứu sau:
Các đặc điểm khách hàng (tình trạng hôn nhân, học vấn, vay mua nhà, vay cá nhân, nợ xấu, số dư hàng năm) có ảnh hưởng đến việc đăng ký tiền gửi kì hạn không?
Mức độ ảnh hưởng là như thế nào, theo chiều hướng nào?
Trong ba mô hình logit, probit và logit, mô hình nào là phù hợp nhất?
Tiền gửi kỳ hạn là một hình thức gửi tiền tại ngân hàng trong đó khách hàng cam kết không rút tiền trong một khoảng thời gian nhất định, thường từ 1 tháng đến 36 tháng hoặc dài hơn. Khác với tiền gửi không kỳ hạn, loại hình này thường có lãi suất cao hơn và ổn định hơn, nhằm bù đắp cho rủi ro thanh khoản từ phía người gửi. Đối với ngân hàng, tiền gửi kỳ hạn đóng vai trò quan trọng trong việc ổn định nguồn vốn trung và dài hạn, từ đó phục vụ hoạt động tín dụng và đầu tư.
Tình trạng hôn nhân: Tình trạng hôn nhân có thể đại diện cho mức độ ổn định tài chính hoặc trách nhiệm tài chính, từ đó ảnh hưởng đến hành vi gửi tiền.
Trình độ học vấn: Được xem là đại diện cho hiểu biết tài chính, người có học vấn cao hơn thường có khả năng đưa ra các quyết định tài chính tối ưu hơn.
Số dư tài khoản trung bình: Phản ánh khả năng tích lũy của khách hàng. Người có số dư cao thường có nhiều lựa chọn tài chính hơn và có xu hướng sử dụng các sản phẩm tiết kiệm dài hạn.
Khoản vay mua nhà: Phản ánh năng lực tài chính hiện tại và gánh nặng chi tiêu dài hạn. Người có khoản vay thế chấp lớn thường phải duy trì dòng tiền linh hoạt và ít có xu hướng gửi tiền kỳ hạn.
Khoản vay cá nhân: Khách hàng đang có khoản vay tiêu dùng thường có xu hướng giảm tiết kiệm, do nhu cầu trả nợ hoặc tiêu dùng hiện tại cao hơn.
Nợ xấu: Khách hàng có lịch sử nợ xấu thường bị coi là có mức độ tín nhiệm thấp hơn và có thể thiếu nguồn lực tài chính ổn định, khiến họ ít có xu hướng đăng ký sản phẩm tiết kiệm dài hạn như tiền gửi kỳ hạn. Ngoài ra, từ phía ngân hàng, nhóm khách hàng này cũng có thể ít được ưu tiên tiếp cận với các sản phẩm tài chính do yếu tố rủi ro.
Moro, Cortez & Rita (2014) là một trong những nghiên cứu tiêu biểu đầu tiên khai thác bộ dữ liệu Bank Marketing từ UCI để phân tích các yếu tố ảnh hưởng đến hành vi đăng ký tiền gửi kỳ hạn của khách hàng. Bằng cách sử dụng mô hình hồi quy logistic, nhóm tác giả đã chỉ ra rằng các biến như thời lượng cuộc gọi (duration), số dư tài khoản ngân hàng (balance), trình độ học vấn và hình thức liên lạc có ảnh hưởng đáng kể đến khả năng khách hàng đồng ý với chiến dịch tiếp thị. Nghiên cứu này cung cấp nền tảng lý thuyết vững chắc cho việc lựa chọn mô hình và biến số trong các nghiên cứu sau này.
Tanvir et al. (2024) tiếp cận vấn đề từ góc độ Bayes, áp dụng mô hình Bayesian Logit và Bayesian Probit để phân loại khả năng khách hàng đăng ký tiền gửi kỳ hạn. Dữ liệu được xử lý qua kỹ thuật cân bằng và đánh giá bằng phương pháp Cross‑Validation cũng như Leave-One-Out Cross‑Validation (LOO‑CV). Kết quả cho thấy mô hình Bayesian Logit đạt hiệu quả phân loại tốt hơn, đặc biệt trong điều kiện dữ liệu mất cân bằng. Nghiên cứu này gợi ý rằng các phương pháp hồi quy nhị phân vẫn giữ vai trò quan trọng trong bối cảnh dữ liệu thực tiễn phức tạp.
Fei Xie (2024) tiến hành một nghiên cứu ứng dụng hồi quy logistic trên dữ liệu Bank Marketing với mục tiêu tối ưu hóa hiệu quả chiến dịch tiếp thị. Tác giả tập trung vào các biến quan trọng như thời lượng cuộc gọi, có vay tín chấp, có nợ xấu và số lần liên lạc. Nghiên cứu đạt được độ chính xác phân loại khoảng 89%, cho thấy hiệu năng của mô hình hồi quy trong việc xác định nhóm khách hàng tiềm năng. Nghiên cứu này cũng khẳng định giá trị ứng dụng thực tiễn cao của bộ dữ liệu trong việc ra quyết định tiếp thị.
Safia Abbas (2015) đề xuất kết hợp giữa Rough Set Theory và Decision Tree để phân tích và trích xuất các quy tắc quyết định từ dữ liệu Bank Marketing. Phương pháp này không chỉ giúp giảm số lượng biến không cần thiết mà còn xây dựng được các luật phân loại dễ hiểu, phục vụ cho việc tư vấn quyết định chiến dịch. Đây là một trong những nghiên cứu hiếm sử dụng các kỹ thuật phân rã tập luật, góp phần mở rộng khả năng khai thác bộ dữ liệu theo hướng trực quan và dễ triển khai.
Yarmohammadtoosky & Attota (2025) triển khai mô hình CatBoost kết hợp với công cụ giải thích mô hình SHAP để phân tích dữ liệu Bank Marketing. Kết quả cho thấy mô hình đạt độ chính xác dự đoán trên 90% và AUC gần 94%, đồng thời vẫn duy trì khả năng giải thích các biến tác động như duration, campaign, contact và pdays. Nghiên cứu nhấn mạnh rằng các mô hình phức tạp như boosting khi kết hợp với phương pháp giải thích có thể vừa mạnh về hiệu quả dự đoán, vừa đảm bảo tính minh bạch trong ra quyết định.
Bộ dữ liệu Bank Marketing được phát hành bởi UCI Machine Learning Repository, được thu thập từ một chiến dịch tiếp thị qua điện thoại do một ngân hàng ở Bồ Đào Nha thực hiện nhằm quảng bá sản phẩm tiền gửi có kỳ hạn (term deposit) cho khách hàng cá nhân. Dữ liệu phản ánh quá trình tiếp cận và tương tác của ngân hàng với các khách hàng thông qua các cuộc gọi điện thoại, đồng thời ghi lại kết quả là khách hàng có đồng ý tham gia gửi tiền có kỳ hạn hay không.
Tập dữ liệu bao gồm 11161 quan sát với 17 biến đặc trưng, bao gồm cả biến định tính và biến định lượng.
Biến định lượng:
age: Tuổi của khách hàng.
balance: Số dư trung bình hàng năm trong tài khoản (tính bằng euro).
day: Ngày trong tháng mà cuộc gọi gần nhất diễn ra.
duration: Thời lượng cuộc gọi gần nhất (tính bằng giây).
campaign: Số lần liên hệ với khách hàng trong chiến dịch hiện tại (bao gồm cả lần gần nhất).
pdays: Số ngày kể từ lần liên hệ gần nhất trong chiến dịch trước đó (–1 nếu chưa từng liên hệ).
previous – Số lần liên hệ trước đó với khách hàng trong các chiến dịch trước.
Biến định tính:
job: Nghề nghiệp của khách hàng (ví dụ: “admin.”, “student”, “retired”, v.v.).
marital: Tình trạng hôn nhân (gồm: “married”, “divorced”, “single”).
education: Trình độ học vấn (“primary”, “secondary”, “tertiary”, “unknown”).
default: Khách hàng có đang nợ xấu không? (“yes”, “no”).
housing: Khách hàng có vay mua nhà không? (“yes”, “no”).
loan: Khách hàng có vay tiêu dùng cá nhân không? (“yes”, “no”).
contact: Phương thức liên hệ (“telephone”, “cellular”, “unknown”).
month: Tháng diễn ra cuộc gọi gần nhất (“jan”, “feb”, …, “dec”).
poutcome: Kết quả của chiến dịch tiếp thị trước đó (“success”, “failure”, “other”, “unknown”).
deposit: Khách hàng có đăng ký tiền gửi kỳ hạn không? (“yes”, “no”).
Trong phạm vi đề tài này, nghiên cứu sử dụng biến deposit làm biến phụ thuộc và các biến marital, education, housing, loan, default, balance, duration làm biến độc lập cho mô hình.
Mô hình hồi quy logit là một phương pháp thống kê được sử dụng rộng rãi trong các nghiên cứu định lượng khi biến phụ thuộc có tính chất phân loại nhị phân (binary), tức là chỉ nhận hai giá trị, thường được mã hóa là 0 và 1. Mô hình này giúp ước lượng xác suất xảy ra của sự kiện được mã hóa là 1 dựa trên các biến độc lập.
Giả sử chúng ta có biến phụ thuộc \(Y\) nhận giá trị 0 hoặc 1, và một tập hợp các biến độc lập \(X_1, X_2, \dots, X_k\). Mục tiêu của mô hình logit là ước lượng xác suất \(P(Y=1|X)\), tức là xác suất để sự kiện xảy ra (\(Y = 1\)) khi biết các giá trị của các biến độc lập.
Trong mô hình logit, xác suất này được mô hình hóa thông qua hàm logit, là hàm ngược của hàm logistic. Hàm logistic có dạng:
\[ P(Y=1|X) = \frac{e^{\beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k}}{1 + e^{\beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k}} \]
Trong đó, \(\beta_0, \beta_1, \dots, \beta_k\) là các hệ số hồi quy cần được ước lượng. Hàm logit được định nghĩa là log của tỷ lệ odds (log-odds):
\[ \text{logit}(P) = \ln\left(\frac{P(Y=1|X)}{1 - P(Y=1|X)}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k \]
Tác động biên
Tác động biên là tức mức độ ảnh hưởng của từng biến giải thích đến xác suất xảy ra của hiện tượng nghiên cứu (khi Y = 1), do hàm logistic là phi tuyến, nên tác động biên của các biến trong mô hình logit không đồng nhất mà phụ thuộc vào giá trị cụ thể của các biến độc lập trong từng quan sát.
Nói cách khác, tác động biên của một biến định tính là hiệu số giữa hai xác suất được ước lượng:
\[ \Delta P = P(Y=1 \mid x_j=1) - P(Y=1 \mid x_j=0) \]
\[\frac{\partial P(Y = 1|x)}{\partial x_j} = \beta_j \cdot p_x(1 - p_x),\]
trong đó:
Mô hình logit có nhiều ưu điểm, bao gồm khả năng xử lý biến phụ thuộc nhị phân một cách hiệu quả, diễn giải kết quả thông qua tỷ lệ odds, và tính linh hoạt trong việc áp dụng cho nhiều lĩnh vực nghiên cứu. Tuy nhiên, mô hình này cũng có một số hạn chế, chẳng hạn như giả định tuyến tính giữa các biến độc lập và log-odds, khó khăn trong việc giải thích khi có đa cộng tuyến cao, và yêu cầu cỡ mẫu đủ lớn để đảm bảo tính chính xác của ước lượng.
Mô hình hồi quy probit là một phương pháp thống kê được sử dụng để phân tích các biến phụ thuộc nhị phân (binary), tức là biến chỉ nhận hai giá trị (thường là 0 và 1). Khác với mô hình logit sử dụng hàm logistic, probit dựa trên hàm phân phối tích lũy (CDF) của phân phối chuẩn chuẩn hóa (standard normal distribution).
Giả sử biến phụ thuộc \(Y\) là biến nhị phân (\(Y=1\) nếu sự kiện xảy ra, \(Y=0\) nếu không), và các biến độc lập \(X_1, X_2, \dots, X_k\) ảnh hưởng đến xác suất \(P(Y=1|X)\).
Mô hình probit giả định rằng tồn tại một biến tiềm ẩn \(Y^*\) được xác định bởi:
\[ Y^* = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k + \epsilon \]
trong đó \(\epsilon\) là nhiễu ngẫu nhiên tuân theo phân phối chuẩn chuẩn hóa \(\epsilon \sim N(0,1)\). Biến quan sát được \(Y\) liên hệ với \(Y^*\) như sau:
\[ Y = \begin{cases} 1 & \text{nếu } Y^* > 0, \\ 0 & \text{nếu } Y^* \leq 0. \end{cases} \]
Do đó, xác suất \(P(Y=1|X)\) được tính bằng hàm phân phối tích lũy (CDF) của phân phối chuẩn:
\[ P(Y=1|X) = \Phi(\beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k) \]
trong đó \(\Phi(\cdot)\) là hàm CDF của phân phối chuẩn chuẩn tắc:
\[ \Phi(z) = \int_{-\infty}^z \frac{1}{\sqrt{2\pi}} e^{-\frac{t^2}{2}} dt \]
Tác động biên
\[\Delta P = \Phi(X\beta \mid x_j = 1) - \Phi(X\beta \mid x_j = 0)\]
\[ \frac{\partial P(Y=1 \mid X)}{\partial x_j} = \phi(X\beta) \cdot \beta_j \]
Trong đó:
Mô hình Probit có ưu điểm nổi bật khi giả định nhiễu tuân theo phân phối chuẩn, phù hợp cho các phân tích yêu cầu giả định chuẩn. Nó dễ dàng mở rộng sang các mô hình phức tạp như ordered probit hay multinomial probit, đồng thời hiệu ứng biên dễ diễn giải trong phân tích chính sách. Tuy nhiên, mô hình này có hạn chế về khả năng diễn giải hệ số do không liên quan trực tiếp đến tỷ lệ odds như logit. Tính toán phức tạp hơn do hàm tích phân chuẩn không có dạng đóng và yêu cầu cỡ mẫu đủ lớn để đảm bảo độ chính xác của ước lượng.
Mô hình hồi quy Complementary Log-Log (cloglog) là phương pháp hồi quy nhị phân phù hợp khi biến phụ thuộc có phân phối không đối xứng, đặc biệt trong trường hợp xác suất sự kiện xảy ra gần 0 hoặc gần 1. Mô hình này dựa trên hàm phân phối cực trị, thường được ứng dụng trong nghiên cứu rủi ro, sinh học và kinh tế lượng.
Giả sử: Biến phụ thuộc \(Y\) là biến nhị phân (\(Y=1\) nếu sự kiện xảy ra, \(Y=0\) nếu không) và các biến độc lập \(X_1, X_2, \dots, X_k\) ảnh hưởng đến \(P(Y=1|X)\). Mô hình giả định biến tiềm ẩn \(Y^*\):
\[ Y^* = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k + \epsilon \]
với \(\epsilon\) tuân theo phân phối Gumbel (cực trị loại I).
Quan hệ giữa \(Y\) và \(Y^*\):
\[ Y = \begin{cases} 1 & \text{nếu } Y^* > 0 \\ 0 & \text{nếu } Y^* \leq 0 \end{cases} \]
Xác suất sự kiện:
\[ P(Y=1|X) = 1 - \exp\left(-\exp(\beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k)\right) \]
Hàm liên kết cloglog: \[ g(P) = \ln\left(-\ln(1 - P(Y=1|X))\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k \]
Tác động biên
\[\Delta P = P(Y=1 \mid x_j = 1) - P(Y=1 \mid x_j = 0)\]
\[ \frac{\partial P(Y=1 \mid X)}{\partial x_j} = \exp(X\beta) \cdot \exp(-\exp(X\beta)) \cdot \beta_j \]
AIC - Akaike Information Criterion
AIC (Akaike Information Criterion) là một tiêu chí quan trọng trong thống kê để đánh giá chất lượng của mô hình hồi quy được ước lượng bằng phương pháp Hợp lý cực đại (Maximum Likelihood - ML). Tiêu chí này được phát triển bởi nhà thống kê học người Nhật Akaike Hirotugu vào những năm 1970.
AIC được xác định bởi công thức sau:
\[ AIC = -2 \ln(L) + 2k \]
Trong đó:
\(L\): Giá trị cực đại của hàm hợp lý (likelihood function).
\(k\): Số tham số trong mô hình.
Brier Score
Brier Score (BS) là một chỉ tiêu quan trọng dùng để đánh giá độ chính xác của các mô hình dự đoán xác suất, đặc biệt phổ biến trong hồi quy logistic và các mô hình phân loại nhị phân. Chỉ số này đo lường sự khác biệt giữa xác suất dự đoán và kết quả thực tế, với giá trị càng gần 0 càng cho thấy mô hình chính xác.
Giả sử ta có một mẫu dữ liệu gồm \(n\) quan sát, Brier Score được tính bằng trung bình của bình phương sai số giữa xác suất dự đoán (\(p_i\)) và kết quả thực tế (\(o_i\)):
\[ BS = \frac{1}{n} \sum_{i=1}^{n} (p_i - o_i)^2 \]
Trong đó:
\(p_i\): Xác suất dự đoán từ mô hình (ví dụ: xác suất biến phụ thuộc \(Y = 1\)).
\(o_i\): Giá trị thực tế quan sát được (nhận giá trị \(0\) hoặc \(1\)).
\(n\): Số lượng quan sát trong tập dữ liệu.
Ma trận nhầm lẫn
Ma trận nhầm lẫn là một công cụ cơ bản nhưng mạnh mẽ để đánh giá hiệu suất của mô hình phân loại, đặc biệt trong các bài toán hồi quy logistic hoặc phân loại nhị phân. Ma trận này cung cấp cái nhìn trực quan về số lượng dự đoán đúng/sai của mô hình so với giá trị thực tế.
Phương pháp Ước lượng hợp lý tối đa (MLE) là một kỹ thuật thống kê mạnh mẽ dùng để ước lượng các tham số chưa biết của một mô hình xác suất. Mục tiêu của MLE là tìm ra giá trị tham số sao cho khả năng quan sát được dữ liệu thực tế là cao nhất.
Giả sử ta có: Mẫu ngẫu nhiên: \(\{y_1, y_2, \dots, y_n\}\) từ phân phối với hàm mật độ/xác suất \(f(y; \beta)\) và\(\beta\) là Vector tham số cần ước lượng.
Hàm hợp lý đo lường “khả năng” quan sát được dữ liệu với tham số \(\beta\):
\[ L(\beta) = \prod_{i=1}^n f(y_i; \beta) \]
Để đơn giản hóa tính toán, ta sử dụng logarit tự nhiên (log - likehood):
\[ \ell(\beta) = \log L(\beta) = \sum_{i=1}^n \log f(y_i; \beta) \]
Ước lượng MLE
Ước lượng \(\hat{\beta}\) là giá trị cực đại hóa log-likelihood:
\[ \hat{\beta} = \arg \max_\beta \ell(\beta) \]
Quy trình ước lượng
Xác định phân phối: Chọn phân phối phù hợp cho dữ liệu (ví dụ: Normal, Poisson, Binomial).
Xây dựng hàm log-likelihood: Viết công thức log-likelihood dựa trên hàm mật độ/xác suất.
Tìm cực đại:
Giải phương trình đạo hàm bậc nhất bằng 0: \(\frac{\partial \ell(\beta)}{\partial \beta} = 0\).
Kiểm tra điều kiện đạo hàm bậc hai để đảm bảo đó là cực đại.
Bảng tần số
table(d$deposit)
##
## no yes
## 5873 5289
Bảng tần suất
table(d$deposit)/sum(table(d$deposit))
##
## no yes
## 0.5261602 0.4738398
Trực quan hóa
# Tính toán tỷ lệ
deposit_percent <- d %>%
count(deposit) %>%
mutate(Percentage = n / sum(n) * 100) %>%
mutate(Label = paste0(deposit, " (", round(Percentage, 1), "%)"))
# Vẽ biểu đồ tròn
ggplot(deposit_percent, aes(x = "", y = Percentage, fill = deposit)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
geom_text(aes(label = Label), position = position_stack(vjust = 0.525)) +
labs(title = "Tỷ lệ khách hàng đăng ký tiền gửi có kì hạn",
fill = " ") +
theme_void() +
theme(plot.title = element_text(hjust = 0.5, face = "bold")) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38")) # Tùy chọn màu
Nhận xét: Tỷ lệ khách hàng không đăng ký chiếm khoảng 52.6%, trong khi 47.4% còn lại có đăng ký. Mức chênh lệch giữa hai nhóm là không quá lớn, cho thấy quyết định đăng ký tiền gửi là một hành vi khá phổ biến và có sự phân hóa tương đối rõ ràng trong tập khách hàng.
Bảng tần số
table(d$marital)
##
## divorced married single
## 1293 6351 3518
Bảng tần suất
table(d$marital)/sum(table(d$marital))
##
## divorced married single
## 0.1158395 0.5689841 0.3151765
Trực quan hóa
# Tính toán tỷ lệ
marital_percent <- d %>%
count(marital) %>%
mutate(Percentage = n / sum(n) * 100) %>%
mutate(Label = paste0(marital, " (", round(Percentage, 1), "%)"))
# Vẽ biểu đồ tròn
ggplot(marital_percent, aes(x = "", y = Percentage, fill = marital)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
geom_text(aes(label = Label), position = position_stack(vjust = 0.6), size = 2.5) +
labs(title = "Tỷ lệ khách hàng theo tình trạng hôn nhân",
fill = " ") +
theme_void() +
theme(plot.title = element_text(hjust = 0.5, face = "bold")) +
scale_fill_manual(values = c("single" = "#F8766D",
"married" = "#00BA38",
"divorced" = "#619CFF")) # Màu cho từng nhóm
Nhận xét: nhóm khách hàng đã kết hôn chiếm tỷ lệ cao nhất với khoảng 56.9%, tiếp theo là nhóm độc thân với 31.5%, và cuối cùng là nhóm đã ly hôn chiếm 11.6%. Điều này cho thấy phần lớn khách hàng trong tập dữ liệu là người đã lập gia đình, trong khi nhóm ly hôn chiếm tỷ trọng tương đối nhỏ.
Bảng tần số
table(d$education)
##
## primary secondary tertiary unknown
## 1500 5476 3689 497
Bảng tần suất
table(d$education)/sum(table(d$education))
##
## primary secondary tertiary unknown
## 0.13438452 0.49059308 0.33049633 0.04452607
Trực quan hóa
# Xác định thứ tự các mức độ học vấn
education_levels <- c("primary", "secondary", "tertiary", "unknown")
# Tính toán dữ liệu và sắp xếp theo thứ tự
education_count <- d %>%
mutate(education = factor(education, levels = education_levels)) %>%
count(education) %>%
mutate(percent = n/sum(n)*100,
label = paste0(round(percent, 1), "%"))
# Vẽ biểu đồ cột
ggplot(education_count, aes(x = education, y = n, fill = education)) +
geom_col(width = 0.7) +
geom_text(aes(label = label), vjust = -0.5, size = 4) +
labs(title = "Trình độ học vấn của khách hàng",
x = "Trình độ học vấn",
y = "Số lượng khách hàng",
fill = "Trình độ học vấn") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
axis.text.x = element_text(hjust = 0.5),
legend.position = "none") +
scale_fill_manual(values = c("primary" = "#66C2A5",
"secondary" = "#FC8D62",
"tertiary" = "#8DA0CB",
"unknown" = "#E78AC3")) +
scale_x_discrete(limits = education_levels) + # Đảm bảo thứ tự chính xác
scale_y_continuous(expand = expansion(mult = c(0, 0.1)))
Nhận xét: Nhóm khách hàng có trình độ học vấn Trung học chiếm tỷ lệ lớn nhất với 49.1%, tiếp theo là nhóm có trình độ học vấn Đại học trở lên với 33.0%, và nhóm Tiểu học chiếm khoảng 13.4%. Riêng nhóm không rõ trình độ học vấn chỉ chiếm 4.5%, cho thấy phần lớn khách hàng có trình độ học vấn từ trung học trở lên.
Bảng tần số
table(d$housing)
##
## no yes
## 5881 5281
Bảng tần suất
table(d$housing)/sum(table(d$housing))
##
## no yes
## 0.5268769 0.4731231
Trực quan hóa
# Tính toán tỷ lệ
housing_percent <- d %>%
count(housing) %>%
mutate(Percentage = n / sum(n) * 100) %>%
mutate(Label = paste0(housing, " (", round(Percentage, 1), "%)"))
# Vẽ biểu đồ tròn (giữ nguyên phong cách như code deposit)
ggplot(housing_percent, aes(x = "", y = Percentage, fill = housing)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
geom_text(aes(label = Label), position = position_stack(vjust = 0.525)) +
labs(title = "Tỷ lệ khách hàng có khoản vay mua nhà",
fill = " ") +
theme_void() +
theme(plot.title = element_text(hjust = 0.5, face = "bold")) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38")) # Giữ nguyên màu
Nhận xét: Tỷ lệ khách hàng không có khoản vay mua nhà (52.7%) nhỉnh hơn so với nhóm có khoản vay mua nhà (47.3%), cho thấy sự phân bố tương đối đồng đều giữa hai nhóm.
Bảng tần số
table(d$loan)
##
## no yes
## 9702 1460
Bảng tần suất
table(d$loan)/sum(table(d$housing))
##
## no yes
## 0.8691991 0.1308009
Trực quan hóa
# Tính toán tỷ lệ
loan_percent <- d %>%
count(loan) %>%
mutate(Percentage = n / sum(n) * 100) %>%
mutate(Label = paste0(loan, " (", round(Percentage, 1), "%)"))
# Vẽ biểu đồ tròn
ggplot(loan_percent, aes(x = "", y = Percentage, fill = loan)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
geom_text(aes(label = Label), position = position_stack(vjust = 0.525), size = 3) +
labs(title = "Tỷ lệ khách hàng có khoản vay cá nhân",
fill = " ") +
theme_void() +
theme(plot.title = element_text(hjust = 0.5, face = "bold")) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38")) # Giữ nguyên màu
Nhận xét: phần lớn khách hàng không có khoản vay cá nhân (86.9%), trong khi chỉ có khoảng 13.1% có khoản vay này, cho thấy vay cá nhân không phổ biến trong tập dữ liệu.
Bảng tần số
table(d$default)
##
## no yes
## 10994 168
Bảng tần suất
table(d$default)/sum(table(d$default))
##
## no yes
## 0.98494893 0.01505107
Trực quan hóa
# Tính toán dữ liệu
default_count <- d %>%
count(default) %>%
mutate(percent = n/sum(n)*100,
label = paste0(round(percent, 1), "%"))
# Vẽ biểu đồ cột
ggplot(default_count, aes(x = default, y = n, fill = default)) +
geom_col(width = 0.7) +
geom_text(aes(label = label), vjust = -0.5, size = 4) +
labs(title = "Tỷ lệ nợ xấu của khách hàng",
x = "Nợ xấu",
y = "Số lượng khách hàng",
fill = "Nợ xấu") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
axis.text.x = element_text(hjust = 0.5),
legend.position = "none") +
scale_fill_manual(values = c("no" = "#66C2A5",
"yes" = "#FC8D62")) +
scale_y_continuous(expand = expansion(mult = c(0, 0.1)))
Nhận xét: tỷ lệ khách hàng không có nợ xấu chiếm 98.5%, trong khi chỉ có khoảng 1.5% khách hàng từng rơi vào tình trạng này, phản ánh tỷ lệ nợ xấu trong tổng số khách hàng là rất thấp.
summary(d$balance)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -6847 122 550 1529 1708 81204
Giá trị số dư trung bình hàng năm dao động khá rộng, từ –6847 đến 81204 euro. Trung vị là 550 euro, trong khi trung bình là 1529 euro, cho thấy có một số khách hàng có số dư rất cao. Phần lớn khách hàng có số dư ở mức thấp đến trung bình, nằm trong khoảng từ 122 đến 1708 euro (tứ phân vị thứ nhất đến thứ ba).
summary(d$duration)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2 138 255 372 496 3881
Giá trị trung bình của biến duration là 372 giây cao hơn trung vị (255 giây), cho thấy phân phối bị lệch phải – tức là có một số cuộc gọi kéo dài bất thường (lên đến 3881 giây) đã làm tăng giá trị trung bình. Phần lớn các cuộc gọi nằm trong khoảng 138 đến 496 giây (từ phân vị thứ nhất đến phân vị thứ ba), trong khi một số cuộc gọi rất ngắn, ngắn nhất chỉ kéo dài 2 giây.
Bảng tần suất chéo
table(d$marital,d$deposit)
##
## no yes
## divorced 671 622
## married 3596 2755
## single 1606 1912
prop.table(table(d$marital,d$deposit), margin = 1)
##
## no yes
## divorced 0.5189482 0.4810518
## married 0.5662100 0.4337900
## single 0.4565094 0.5434906
Trực quan hóa
library(ggplot2)
# Tạo dataframe và sắp xếp theo thứ tự mong muốn
marital_deposit <- data.frame(
marital = factor(c("single", "married", "divorced",
"single", "married", "divorced"),
levels = c("single", "married", "divorced")),
deposit = c("no", "no", "no", "yes", "yes", "yes"),
percent = c(45.65, 56.62, 51.89, 54.35, 43.38, 48.11)
)
# Vẽ biểu đồ cột ghép
ggplot(marital_deposit, aes(x = marital, y = percent, fill = deposit)) +
geom_col(position = position_dodge(width = 0.7), width = 0.6) + # Điều chỉnh độ rộng cột
geom_text(aes(label = paste0(percent, "%")),
position = position_dodge(width = 0.7),
vjust = -0.5, size = 4, color = "black") +
labs(title = "Tỷ lệ đăng ký tiền gửi kỳ hạn theo tình trạng hôn nhân",
x = "Tình trạng hôn nhân",
y = "Tỷ lệ phần trăm",
fill = "Đăng ký tiền gửi:") +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14, margin = margin(b = 15)),
legend.position = "top",
legend.title = element_text(face = "bold"),
axis.text.x = element_text(face = "bold"),
panel.grid.major.x = element_blank()
) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38"),
labels = c("no" = "Không đăng ký", "yes" = "Có đăng ký")) +
scale_x_discrete(labels = c("single" = "ĐỘC THÂN",
"married" = "ĐÃ KẾT HÔN",
"divorced" = "ĐÃ LY HÔN")) +
scale_y_continuous(limits = c(0, 65), expand = expansion(mult = c(0, 0.1)))
Nhận xét
Kết quả cho thấy tỷ lệ đăng ký tiền gửi có sự khác biệt rõ rệt giữa các nhóm. Người độc thân có xu hướng đăng ký tiền gửi nhiều nhất (54.35%), phản ánh khả năng tích lũy và nhu cầu đầu tư an toàn cao hơn khi chưa lập gia đình. Trong khi đó, người đã kết hôn có tỷ lệ đăng ký thấp nhất (43.38%), phản ánh các khoản chi tiêu gia đình chiếm phần lớn thu nhập của họ. Nhóm đã ly hôn đứng ở mức trung gian (48.11%), cho thấy nhu cầu quản lý tài chính cá nhân sau khi kết thúc hôn nhân. Điều này chứng tỏ tình trạng hôn nhân là một yếu tố quan trọng ảnh hưởng đến quyết định gửi tiền tiết kiệm của khách hàng.
Bảng tần suất chéo
table(d$education,d$deposit)
##
## no yes
## primary 909 591
## secondary 3026 2450
## tertiary 1693 1996
## unknown 245 252
prop.table(table(d$education,d$deposit), margin = 1)
##
## no yes
## primary 0.6060000 0.3940000
## secondary 0.5525931 0.4474069
## tertiary 0.4589320 0.5410680
## unknown 0.4929577 0.5070423
Trực quan hóa
library(ggplot2)
# Tạo dataframe từ dữ liệu
edu_deposit <- data.frame(
education = factor(c("primary", "secondary", "tertiary", "unknown",
"primary", "secondary", "tertiary", "unknown"),
levels = c("primary", "secondary", "tertiary", "unknown")),
deposit = c("no", "no", "no", "no", "yes", "yes", "yes", "yes"),
percent = c(60.6, 55.26, 45.89, 49.3, 39.4, 44.74, 54.11, 50.7)
)
# Vẽ biểu đồ cột ghép
ggplot(edu_deposit, aes(x = education, y = percent, fill = deposit)) +
geom_col(position = position_dodge(width = 0.7), width = 0.6) +
geom_text(aes(label = paste0(round(percent, 1), "%")),
position = position_dodge(width = 0.7),
vjust = -0.5, size = 3.5, color = "black") +
labs(title = "Tỷ lệ đăng ký tiền gửi theo trình độ học vấn",
x = "Trình độ học vấn",
y = "Tỷ lệ phần trăm",
fill = "Đăng ký tiền gửi:") +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14, margin = margin(b = 15)),
legend.position = "top",
legend.title = element_text(face = "bold"),
axis.text.x = element_text(face = "bold"),
panel.grid.major.x = element_blank()
) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38"),
labels = c("no" = "Không đăng ký", "yes" = "Có đăng ký")) +
scale_x_discrete(labels = c("primary" = "Tiểu học",
"secondary" = "Trung học",
"tertiary" = "Đại học",
"unknown" = "Không rõ")) +
scale_y_continuous(limits = c(0, 70), expand = expansion(mult = c(0, 0.1)))
Nhận xét
Kết quả phân tích cho thấy mối quan hệ rõ rệt giữa trình độ học vấn và xu hướng đăng ký tiền gửi. Nhóm khách hàng có trình độ học vấn đại học trở lên thể hiện tỷ lệ đăng ký tiền gửi cao nhất (54.11%), trong khi nhóm chỉ có trình độ học vấn tiểu học lại có tỷ lệ không đăng ký cao nhất (60.6%). Xu hướng chung cho thấy tỷ lệ đăng ký tiền gửi tăng dần theo mức độ học vấn, từ tiểu học (39.4%) lên trung học (44.74%) và đạt cao nhất ở nhóm đại học. Điều này có thể được giải thích bởi nhận thức tài chính tốt hơn và khả năng tiếp cận thông tin tài chính dễ dàng hơn ở những người có trình độ học vấn cao. Nhóm khách hàng không rõ trình độ học vấn cho thấy tỷ lệ đăng ký khá cân bằng (50.7%), phản ánh sự đa dạng trong đặc điểm nhân khẩu học của nhóm này.
Bảng tần suất chéo
table(d$housing,d$deposit)
##
## no yes
## no 2527 3354
## yes 3346 1935
prop.table(table(d$housing,d$deposit), margin = 1)
##
## no yes
## no 0.4296888 0.5703112
## yes 0.6335921 0.3664079
Trực quan hóa
library(ggplot2)
# Tạo dataframe từ dữ liệu
housing_deposit <- data.frame(
housing = factor(c("no", "yes", "no", "yes"),
levels = c("no", "yes")),
deposit = c("no", "no", "yes", "yes"),
percent = c(42.97, 63.36, 57.03, 36.64)
)
# Vẽ biểu đồ cột ghép
ggplot(housing_deposit, aes(x = housing, y = percent, fill = deposit)) +
geom_col(position = position_dodge(width = 0.7), width = 0.6) +
geom_text(aes(label = paste0(round(percent, 1), "%")),
position = position_dodge(width = 0.7),
vjust = -0.5, size = 4, color = "black") +
labs(title = "Tỷ lệ đăng ký tiền gửi kỳ hạn theo sở hữu khoản vay mua nhà",
x = " ",
y = "Tỷ lệ phần trăm",
fill = "Đăng ký tiền gửi:") +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14, margin = margin(b = 15)),
legend.position = "top",
legend.title = element_text(face = "bold"),
axis.text.x = element_text(face = "bold"),
panel.grid.major.x = element_blank()
) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38"),
labels = c("no" = "Không đăng ký", "yes" = "Có đăng ký")) +
scale_x_discrete(labels = c("no" = "Không có vay",
"yes" = "Có vay mua nhà")) +
scale_y_continuous(limits = c(0, 70), expand = expansion(mult = c(0, 0.1)))
Nhận xét
Kết quả cho thấy sự khác biệt rõ rệt giữa nhóm có và không có khoản vay mua nhà. Cụ thể, chỉ 36.64% khách hàng đang có vay mua nhà đăng ký tiền gửi kỳ hạn, trong khi tỷ lệ này lên tới 57.03% ở nhóm không có vay. Điều này cho thấy khoản vay mua nhà thực sự là một gánh nặng tài chính, khiến khách hàng giảm khả năng tiết kiệm và đầu tư.
table(d$loan,d$deposit)
##
## no yes
## no 4897 4805
## yes 976 484
prop.table(table(d$loan,d$deposit), margin = 1)
##
## no yes
## no 0.5047413 0.4952587
## yes 0.6684932 0.3315068
Trực quan hóa
library(ggplot2)
# Tạo dataframe từ dữ liệu
loan_deposit <- data.frame(
personal_loan = factor(c("no", "yes", "no", "yes"),
levels = c("no", "yes")),
deposit = c("no", "no", "yes", "yes"),
percent = c(42.97, 63.36, 57.03, 36.64) # Giữ nguyên tỷ lệ như ví dụ trước
)
# Vẽ biểu đồ cột ghép
ggplot(loan_deposit, aes(x = personal_loan, y = percent, fill = deposit)) +
geom_col(position = position_dodge(width = 0.7), width = 0.6) +
geom_text(aes(label = paste0(round(percent, 1), "%")),
position = position_dodge(width = 0.7),
vjust = -0.5, size = 4, color = "black") +
labs(title = "Tỷ lệ đăng ký tiền gửi kỳ hạn theo sở hữu khoản vay cá nhân",
x = " ",
y = "Tỷ lệ phần trăm",
fill = "Đăng ký tiền gửi:") +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14, margin = margin(b = 15)),
legend.position = "top",
legend.title = element_text(face = "bold"),
axis.text.x = element_text(face = "bold"),
panel.grid.major.x = element_blank()
) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38"),
labels = c("no" = "Không đăng ký", "yes" = "Có đăng ký")) +
scale_x_discrete(labels = c("no" = "Không có vay",
"yes" = "Có vay cá nhân")) +
scale_y_continuous(limits = c(0, 70), expand = expansion(mult = c(0, 0.1)))
Nhận xét
Khách hàng có khoản vay cá nhân có tỷ lệ đăng ký tiền gửi thấp hơn đáng kể (36.64%) so với nhóm không vay (57.03%). Điều này phản ánh tác động của các khoản nợ cá nhân đến khả năng tiết kiệm, cho thấy người có vay thường ưu tiên trả nợ hơn là gửi tiết kiệm. Ngân hàng cần cân nhắc điều chỉnh chính sách để khuyến khích nhóm khách hàng này tham gia gửi tiền.
Bảng tần suất chéo
table(d$default,d$deposit)
##
## no yes
## no 5757 5237
## yes 116 52
prop.table(table(d$default,d$deposit), margin = 1)
##
## no yes
## no 0.5236493 0.4763507
## yes 0.6904762 0.3095238
Trực quan hóa
library(ggplot2)
# Tạo dataframe từ dữ liệu
default_deposit <- data.frame(
default = factor(c("no", "yes", "no", "yes"),
levels = c("no", "yes"),
labels = c("Không nợ xấu", "Có nợ xấu")),
deposit = c("no", "no", "yes", "yes"),
percent = c(52.36, 69.05, 47.64, 30.95) # Tỷ lệ đã được làm tròn
)
# Vẽ biểu đồ cột ghép
ggplot(default_deposit, aes(x = default, y = percent, fill = deposit)) +
geom_col(position = position_dodge(width = 0.7), width = 0.6) +
geom_text(aes(label = paste0(round(percent, 1), "%")),
position = position_dodge(width = 0.7),
vjust = -0.5, size = 4, color = "black") +
labs(title = "Tỷ lệ đăng ký tiền gửi theo tình trạng nợ xấu",
x = " ",
y = "Tỷ lệ phần trăm",
fill = "Đăng ký tiền gửi:") +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14, margin = margin(b = 15)),
legend.position = "top",
legend.title = element_text(face = "bold"),
axis.text.x = element_text(face = "bold"),
panel.grid.major.x = element_blank()
) +
scale_fill_manual(values = c("no" = "#F8766D", "yes" = "#00BA38"),
labels = c("no" = "Không đăng ký", "yes" = "Có đăng ký")) +
scale_y_continuous(limits = c(0, 80), expand = expansion(mult = c(0, 0.1)))
Nhận xét
Kết quả cho thấy sự khác biệt rõ rệt giữa nhóm khách hàng có nợ xấu và không có nợ xấu. Cụ thể, chỉ 30.95% khách hàng có nợ xấu đăng ký tiền gửi, trong khi tỷ lệ này lên tới 47.64% ở nhóm không có nợ xấu. Điều này phản ánh tác động tiêu cực của nợ xấu đến khả năng tham gia các sản phẩm tiết kiệm, có thể do hạn chế về tài chính khi phải xử lý các khoản nợ, giảm uy tín tín dụng làm hạn chế khả năng tiếp cận dịch vụ ngân hàng, hoặc ưu tiên trả nợ thay vì gửi tiết kiệm. Ngân hàng cần cân nhắc các biện pháp hỗ trợ khách hàng có nợ xấu cải thiện tình hình tài chính để tăng tỷ lệ đăng ký tiền gửi.
Biến Deposit và Marital
Giả thuyết
\[ \left\{ \begin{array}{ll} H_0: & \text{Việc đăng ký tiền gửi kì hạn và tình trạng hôn nhân của khách hàng là độc lập nhau} \\\\ H_1: & \text{Việc đăng ký tiền gửi kì hạn và tình trạng hôn nhân của khách hàng có môi liên quan với nhau.} \ \end{array} \right. \]
chisq.test(table(d$deposit, d$marital))
##
## Pearson's Chi-squared test
##
## data: table(d$deposit, d$marital)
## X-squared = 109.58, df = 2, p-value < 2.2e-16
Kết quả kiểm định chi bình phương cho thấy p-value < 0.05, ta bác bỏ giả thuyết \(H_0\) hay với mức ý nghĩa 5% thì có mối quan hệ giữa việc đăng ký tiền gửi kì hạn và tình trạng hôn nhân của khách hàng.
Biến Deposit và Education
Giả thuyết
\[ \left\{ \begin{array}{ll} H_0: & \text{Việc đăng ký tiền gửi kì hạn và trình độ học vấn của khách hàng là độc lập nhau} \\\\ H_1: & \text{Việc đăng ký tiền gửi kì hạn và trình độ học vấn của khách hàng có môi liên quan với nhau.} \ \end{array} \right. \]
chisq.test(table(d$deposit, d$education))
##
## Pearson's Chi-squared test
##
## data: table(d$deposit, d$education)
## X-squared = 122.77, df = 3, p-value < 2.2e-16
Kết quả kiểm định chi bình phương cho thấy p-value < 0.05, ta bác bỏ giả thuyết \(H_0\) hay với mức ý nghĩa 5% thì có mối quan hệ giữa việc đăng ký tiền gửi kì hạn và trình độ học vấn của khách hàng.
Biến Deposit và Housing
Giả thuyết
\[ \left\{ \begin{array}{ll} H_0: & \text{Việc đăng ký tiền gửi kì hạn và sở hữu khoản vay mua nhà của khách hàng là độc lập nhau} \\\\ H_1: & \text{Việc đăng ký tiền gửi kì hạn và sở hữu khoản vay mua nhà của khách hàng có môi liên quan với nhau.} \ \end{array} \right. \]
chisq.test(table(d$deposit, d$housing))
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table(d$deposit, d$housing)
## X-squared = 463.19, df = 1, p-value < 2.2e-16
Kết quả kiểm định chi bình phương cho thấy p-value < 0.05, ta bác bỏ giả thuyết \(H_0\) hay với mức ý nghĩa 5% thì có mối quan hệ giữa việc đăng ký tiền gửi kì hạn và sở hữu khoản vay mua nhà của khách hàng.
Biến Deposit và Loan
\[ \left\{ \begin{array}{ll} H_0: & \text{Việc đăng ký tiền gửi kì hạn và sở hữu khoản vay cá nhân của khách hàng là độc lập nhau} \\\\ H_1: & \text{Việc đăng ký tiền gửi kì hạn và sở hữu khoản vay cá nhân của khách hàng có môi liên quan với nhau.} \ \end{array} \right. \]
chisq.test(table(d$deposit, d$loan))
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table(d$deposit, d$loan)
## X-squared = 135.83, df = 1, p-value < 2.2e-16
Kết quả kiểm định chi bình phương cho thấy p-value < 0.05, ta bác bỏ giả thuyết \(H_0\) hay với mức ý nghĩa 5% thì có mối quan hệ giữa việc đăng ký tiền gửi kì hạn và sở hữu khoản vay cá nhân của khách hàng.
Biến Deposit và Default
Giả thuyết
\[ \left\{ \begin{array}{ll} H_0: & \text{Việc đăng ký tiền gửi kì hạn và nợ xấu của khách hàng là độc lập nhau} \\\\ H_1: & \text{Việc đăng ký tiền gửi kì hạn và nợ xấu của khách hàng có môi liên quan với nhau.} \ \end{array} \right. \]
chisq.test(table(d$deposit, d$default))
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table(d$deposit, d$default)
## X-squared = 17.809, df = 1, p-value = 2.443e-05
Kết quả kiểm định chi bình phương cho thấy p-value < 0.05, ta bác bỏ giả thuyết \(H_0\) hay với mức ý nghĩa 5% thì có mối quan hệ giữa việc đăng ký tiền gửi kì hạn và nợ xấu của khách hàng.
d$marital <- relevel(factor(d$marital), ref = "single")
table(d$marital, d$deposit)
Bảng tần số
| yes | no | |
|---|---|---|
| single | 1912 | 1606 |
| divorced | 622 | 671 |
| married | 2755 | 3596 |
Relative Risk
riskratio(table(d$marital,d$deposit))
## $data
##
## no yes Total
## single 1606 1912 3518
## divorced 671 622 1293
## married 3596 2755 6351
## Total 5873 5289 11162
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## single 1.0000000 NA NA
## divorced 0.8851152 0.8300728 0.9438075
## married 0.7981554 0.7658537 0.8318194
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## single NA NA NA
## divorced 0.0001222673 1.376594e-04 1.203860e-04
## married 0.0000000000 1.446815e-25 1.394691e-25
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét
single và divorced: Kết quả Relative Risk = 0.8851152 < 1 cho thấy khách hàng đã ly hôn có tỷ lệ đăng ký tiền gửi kì hạn thấp hơn khách hàng chưa kết hôn khoảng 11.5%.
single và married: Kết quả Relative Risk = 0.7981554 < 1 cho thấy khách hàng đã kết hôn có tỷ lệ đăng ký tiền gửi kì hạn thấp hơn khách hàng chưa kết hôn khoảng 20.2%.
Odds Ratio
oddsratio(table(d$marital,d$deposit))
## $data
##
## no yes Total
## single 1606 1912 3518
## divorced 671 622 1293
## married 3596 2755 6351
## Total 5873 5289 11162
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## single 1.0000000 NA NA
## divorced 0.7786754 0.6852590 0.8846798
## married 0.6435556 0.5923599 0.6991084
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## single NA NA NA
## divorced 0.0001222673 1.376594e-04 1.203860e-04
## married 0.0000000000 1.446815e-25 1.394691e-25
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Nhận xét
single và divorced: Kết quả Odds Ratio = 0.7786754 < 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng đã ly hôn có thấp hơn khách hàng chưa kết hôn khoảng 22.1%.
single và married: Kết quả Odds Ratio = 0.6435556 < 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng đã kết hôn có thấp hơn khách hàng chưa kết hôn khoảng 35.6%.
table(d$education, d$deposit)
Bảng tần số
| yes | no | |
|---|---|---|
| primary | 591 | 909 |
| secondary | 2450 | 3026 |
| tertiary | 1996 | 1693 |
| unknown | 252 | 245 |
Relative Risk
riskratio(table(d$education,d$deposit))
## $data
##
## no yes Total
## primary 909 591 1500
## secondary 3026 2450 5476
## tertiary 1693 1996 3689
## unknown 245 252 497
## Total 5873 5289 11162
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## primary 1.000000 NA NA
## secondary 1.135550 1.059499 1.217060
## tertiary 1.373269 1.281142 1.472021
## unknown 1.286909 1.156296 1.432276
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## primary NA NA NA
## secondary 0.0002114567 2.133356e-04 2.192789e-04
## tertiary 0.0000000000 7.184395e-22 7.598045e-22
## unknown 0.0000108589 1.318572e-05 9.770744e-06
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét
primary và secondary: Kết quả Relative Risk = 1.135550 > 1 cho thấy khách hàng có trình độ học vấn Trung học có tỷ lệ đăng ký tiền gửi kì hạn cao hơn khách hàng có trình độ học vấn Tiểu học khoảng 13.5%.
primary và tertiary: Kết quả Relative Risk = 1.373269 > 1 cho thấy khách hàng có trình độ học vấn Trung học phổ thông có tỷ lệ đăng ký tiền gửi kì hạn cao hơn khách hàng có trình độ học vấn Tiểu học khoảng 37.3%.
primary và unknown: Kết quả Relative Risk = 1.286909 > 1 cho thấy khách hàng chưa rõ trình độ học vấn có tỷ lệ đăng ký tiền gửi kì hạn cao hơn khách hàng có trình độ học vấn Tiểu học khoảng 28.7%.
Odds Ratio
oddsratio(table(d$education, d$deposit))
## $data
##
## no yes Total
## primary 909 591 1500
## secondary 3026 2450 5476
## tertiary 1693 1996 3689
## unknown 245 252 497
## Total 5873 5289 11162
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## primary 1.000000 NA NA
## secondary 1.245164 1.108556 1.399419
## tertiary 1.812998 1.604940 2.049248
## unknown 1.581570 1.289547 1.940293
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## primary NA NA NA
## secondary 0.0002114567 2.133356e-04 2.192789e-04
## tertiary 0.0000000000 7.184395e-22 7.598045e-22
## unknown 0.0000108589 1.318572e-05 9.770744e-06
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Nhận xét
primary và secondary: Kết quả Odds Ratio = 1.245164 > 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng có trình độ học vấn Trung học cao hơn nhóm khách hàng có trình độ học vấn Tiểu học khoảng 24.5%.
primary và tertiary: Kết quả Odds Ratio = 1.812998 > 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng có trình độ học vấn Đại học trở lên cao hơn nhóm khách hàng có trình độ học vấn Tiểu học khoảng 81.3%.
primary và unknown: Kết quả Odds Ratio = 1.581570 > 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng không rõ trình độ học vấn cao hơn nhóm khách hàng có trình độ học vấn Tiểu học khoảng 24.5%.
table(d$housing, d$deposit)
Bảng 2x2
| yes | no | |
|---|---|---|
| housing(yes) | 3346 | 1935 |
| housing(no) | 2527 | 909 |
Relative Risk
riskratio(table(d$housing,d$deposit))
## $data
##
## no yes Total
## no 2527 3354 5881
## yes 3346 1935 5281
## Total 5873 5289 11162
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## no 1.0000000 NA NA
## yes 0.6424701 0.6161482 0.6699165
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 0 1.13602e-103 6.456025e-103
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét: Kết quả Relative Risk = 0.6424701 < 1 cho thấy khách hàng có khoản vay mua nhà có tỷ lệ đăng ký tiền gửi kì hạn thấp hơn khách hàng không có khoản vay mua nhà khoảng 35.8%.
Odds Ratio
oddsratio(table(d$housing,d$deposit))
## $data
##
## no yes Total
## no 2527 3354 5881
## yes 3346 1935 5281
## Total 5873 5289 11162
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## no 1.0000000 NA NA
## yes 0.4357524 0.4037506 0.4701891
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 0 1.13602e-103 6.456025e-103
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Nhận xét: Kết quả Odds Ratio = 0.4357524 < 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng có khoản vay mua nhà thấp hơn khách hàng không có khoản vay mua nhà khoảng 56.4%.
table(d$loan, d$deposit)
Bảng 2x2
| yes | no | |
|---|---|---|
| loan(yes) | 484 | 976 |
| loan(no) | 4805 | 4897 |
Relative Risk
riskratio(table(d$loan,d$deposit))
## $data
##
## no yes Total
## no 4897 4805 9702
## yes 976 484 1460
## Total 5873 5289 11162
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## no 1.000000 NA NA
## yes 0.669361 0.6206477 0.7218976
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 0 4.311066e-32 1.560393e-31
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét: Kết quả Relative Risk = 0.669361 < 1 cho thấy khách hàng có khoản vay cá nhân có tỷ lệ đăng ký tiền gửi kì hạn thấp hơn khách hàng không có khoản vay cá nhân khoảng 30.1%.
Odds Ratio
oddsratio(table(d$loan, d$deposit))
## $data
##
## no yes Total
## no 4897 4805 9702
## yes 976 484 1460
## Total 5873 5289 11162
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## no 1.000000 NA NA
## yes 0.505517 0.4498337 0.5673634
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 0 4.311066e-32 1.560393e-31
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Nhận xét: Kết quả Odds Ratio = 0.505517 < 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng có khoản vay cá nhân thấp hơn khách hàng không có khoản vay cá nhân khoảng 49.4%.
table(d$default, d$deposit)
Bảng 2x2
| yes | no | |
|---|---|---|
| default(yes) | 52 | 116 |
| default(no) | 5237 | 5757 |
Relative Risk
riskratio(table(d$default,d$deposit))
## $data
##
## no yes Total
## no 5757 5237 10994
## yes 116 52 168
## Total 5873 5289 11162
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## no 1.0000000 NA NA
## yes 0.6497813 0.5179801 0.8151197
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 1.384033e-05 1.59565e-05 1.724503e-05
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét: Kết quả Relative Risk = 0.6497813 < 1 cho thấy khách hàng có nợ xấu có tỷ lệ đăng ký tiền gửi kì hạn thấp hơn khách hàng không có nợ xấu khoảng 35%.
Odds Ratio
oddsratio(table(d$default, d$deposit))
## $data
##
## no yes Total
## no 5757 5237 10994
## yes 116 52 168
## Total 5873 5289 11162
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## no 1.0000000 NA NA
## yes 0.4936728 0.3523328 0.6823938
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 1.384033e-05 1.59565e-05 1.724503e-05
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Nhận xét: Kết quả Odds Ratio = 0.4936728 < 1 cho thấy tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở nhóm khách hàng có nợ xấu thấp hơn khách hàng không có nợ xấu khoảng 50.6%.
d$deposit.coded <- ifelse(d$deposit == "yes", 1, 0)
model1 <- glm(
deposit.coded ~ marital + education + balance + housing + loan + default + duration,
data = d,
family = binomial(link = "logit")
)
summary(model1)
##
## Call:
## glm(formula = deposit.coded ~ marital + education + balance +
## housing + loan + default + duration, family = binomial(link = "logit"),
## data = d)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.387e+00 8.817e-02 -15.735 < 2e-16 ***
## maritaldivorced -1.930e-01 7.922e-02 -2.436 0.01485 *
## maritalmarried -3.492e-01 5.095e-02 -6.853 7.25e-12 ***
## educationsecondary 3.801e-01 7.402e-02 5.136 2.81e-07 ***
## educationtertiary 6.669e-01 7.754e-02 8.601 < 2e-16 ***
## educationunknown 4.962e-01 1.238e-01 4.007 6.14e-05 ***
## balance 4.104e-05 7.920e-06 5.182 2.20e-07 ***
## housingyes -1.124e+00 4.782e-02 -23.503 < 2e-16 ***
## loanyes -7.214e-01 7.561e-02 -9.541 < 2e-16 ***
## defaultyes -6.666e-01 2.039e-01 -3.269 0.00108 **
## duration 4.773e-03 1.109e-04 43.028 < 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: 15443 on 11161 degrees of freedom
## Residual deviance: 11454 on 11151 degrees of freedom
## AIC: 11476
##
## Number of Fisher Scoring iterations: 5
margins(model1)
## balance duration maritaldivorced maritalmarried educationsecondary
## 7.047e-06 0.0008195 -0.03371 -0.06058 0.06381
## educationtertiary educationunknown housingyes loanyes defaultyes
## 0.1139 0.08392 -0.1977 -0.1204 -0.1096
| Biến số | Hệ số (β) | Sai số chuẩn | Tác động biên |
|---|---|---|---|
| hệ số chặn | -1.3870*** | 0.08817 | |
| marital (divorced) | -0.1930* | 0.07922 | -0.03371 |
| marital (married) | -0.3492*** | 0.05095 | -0.06058 |
| education (secondary) | 0.3801*** | 0.07402 | 0.06381 |
| education (tertiary) | 0.6669*** | 0.07754 | 0.11385 |
| education (unknown) | 0.4962*** | 0.12380 | 0.08392 |
| balance | 0.00004104*** | 0.00000792 | 0.00000705 |
| housing (yes) | -1.1240*** | 0.04782 | -0.1977138 |
| loan (yes) | -0.7214*** | 0.07561 | -0.1203828 |
| default (yes) | -0.6666*** | 0.2039 | -0.1095844 |
| duration | 0.004773*** | 0.001109 | 0.0008195 |
Ta có phương trình hồi quy:
\[ \begin{aligned} \text{logit}(P) =\ & -1.3870 - 0.1930 * \text{marital (divorced)} - 0.3492 * \text{marital (married)} \\ & + 0.3801 * \text{education (secondary)} + 0.6669 * \text{education (tertiary)} + 0.4962 * \text{education (unknown)} \\ & + 0.00004104 * \text{balance} + 0.004773 * \text{duration} \\ & - 1.1240 * \text{housing (yes)} - 0.7214 * \text{loan (yes)} - 0.6666 * \text{default (yes)} \end{aligned} \]
Tình trang hôn nhân
Hệ số ước lượng marital (divorced) = 0.0193 cho biết log odds việc đăng ký tiền gửi kì hạn của người đã ly hôn là thấp hơn so với người độc thân, tương đương Odds = exp(-0.193) = 0.825 hay tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kì hạn ở khách hàng đã ly hôn bằng khoảng 82.5% ở khách hàng độc thân. Bên cạnh đó kết quả tác động biên là -0.03371 cũng cho biết xác suất đăng ký tiền gửi kì hạn của người đã ly hôn thấp hơn người độc thân khoảng 3.37 điểm phần trăm.
Hệ số ước lượng marital (married) = -0.3492, cho biết log odds việc đăng ký tiền gửi kỳ hạn của người đã kết hôn thấp hơn so với người độc thân. Tương đương, Odds = exp(-0.3492) ≈ 0.705, nghĩa là tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn ở nhóm đã kết hôn chỉ bằng khoảng 70.5% so với nhóm độc thân trong điều kiện các yếu tố khác không đổi. Bên cạnh đó, tác động biên -0.06058 cho thấy xác suất đăng ký của người đã kết hôn thấp hơn người độc thân khoảng 6.06% điểm phần trăm.
Trình độ học vấn
Hệ số ước lượng education (secondary) = 0.3801 cho biết log odds việc đăng ký tiền gửi kỳ hạn của khách hàng có trình độ học vấn Trung học cao hơn so với khách hàng có trình độ học vấn Tiểu học. Tương đương, Odds = exp(0.3801) ≈ 1.462 hay tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn ở nhóm khách hàng có trình độ Trung học cao hơn khoảng 46.2% so với nhóm có trình độ học vấn Tiểu học. Bên cạnh đó, kết quả tác động biên là 0.06381 cho thấy xác suất đăng ký tiền gửi kỳ hạn của nhóm khách hàng này cao hơn nhóm có trình độ học vấn Tiểu học khoảng 6.38 điểm phần trăm.
Hệ số ước lượng education (tertiary) = 0.6669 cho biết log odds việc đăng ký tiền gửi kỳ hạn của khách hàng có trình độ Đại học trở lên cao hơn so với khách hàng có trình độ Tiểu học. Tương đương, Odds = exp(0.6669) ≈ 1.948, tức là tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn ở nhóm có trình độ Đại học trở lên cao hơn khoảng 94.8% so với nhóm có trình độ tiểu học. Đồng thời, tác động biên là 0.11385 cho thấy xác suất đăng ký của nhóm này cao hơn nhóm tiểu học khoảng 11.39 điểm phần trăm.
Hệ số ước lượng education (unknown) = 0.4962, cho biết log odds việc đăng ký tiền gửi kỳ hạn của khách hàng không rõ trình độ học vấn cao hơn so với khách hàng có trình độ Tiểu học. Tương đương, Odds = exp(0.4962) ≈ 1.642, nghĩa là tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn ở nhóm không rõ trình độ học vấn cao hơn khoảng 64.2% so với nhóm Tiểu học. Ngoài ra, tác động biên là 0.08392 cho thấy xác suất đăng ký tiền gửi kỳ hạn của nhóm này cao hơn nhóm tiểu học khoảng 8.39 điểm phần trăm.
Khoản vay mua nhà: Hệ số ước lượng housing (yes) = -0.7521 cho biết log odds việc đăng ký tiền gửi kỳ hạn của khách hàng có khoản vay mua nhà thấp hơn so với khách hàng không vay mua nhà. Tương đương, Odds = exp(-0.7521) ≈ 0.471, tức là tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn ở nhóm có vay mua nhà chỉ bằng khoảng 47.1% so với nhóm không vay, giữ nguyên các yếu tố khác. Bên cạnh đó, tác động biên là -0.1977138 cho thấy xác suất đăng ký của nhóm có khoản vay mua nhà thấp hơn nhóm không vay khoảng 19.77 điểm phần trăm.
Khoản vay cá nhân: Hệ số ước lượng loan (yes) = -0.5102 cho biết log odds việc đăng ký tiền gửi kỳ hạn của khách hàng có khoản vay cá nhân thấp hơn so với khách hàng không vay. Tương đương, Odds = exp(-0.5102) ≈ 0.600, nghĩa là tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn ở nhóm có vay cá nhân chỉ bằng khoảng 60.0% so với nhóm không vay. Đồng thời, tác động biên là -0.1203828 cho thấy xác suất đăng ký của nhóm này thấp hơn nhóm không có khoản vay cá nhân khoảng 12.04 điểm phần trăm.
Nợ xấu: Hệ số ước lượng default (yes) = -0.5198 cho biết log odds việc đăng ký tiền gửi kỳ hạn của khách hàng có nợ xấu thấp hơn so với khách hàng không có nợ xấu. Tương đương, Odds = exp(-0.5198) ≈ 0.595, tức là tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn ở nhóm có nợ xấu chỉ bằng khoảng 59.5% so với nhóm không có nợ xấu. Ngoài ra, tác động biên là -0.1095844 cho thấy xác suất đăng ký tiền gửi kỳ hạn của nhóm có nợ xấu thấp hơn nhóm không nợ xấu khoảng 10.96 điểm phần trăm.
Số dư trung bình hàng năm: Hệ số ước lượng của biến balance là 0.00004104 cho biết khi số dư trung bình hàng năm của khách hàng tăng thêm 1,000 euro, thì log odds việc đăng ký tiền gửi kỳ hạn tăng khoảng 0.04104 đơn vị, trong điều kiện các yếu tố khác giữ nguyên. Tương đương với Odds tăng theo hệ số exp(0.04104) ≈ 1.0419, tức là tỷ lệ giữa xác suất đăng ký và không đăng ký tiền gửi kỳ hạn sẽ tăng thêm khoảng 4.19% khi số dư trung bình hàng năm tăng thêm 1,000 euro. Bên cạnh đó, giá trị tác động biên là 0.00000705 còn cho biết xác suất đăng ký tiền gửi kỳ hạn sẽ tăng trung bình thêm khoảng 7.05 điểm phần trăm khi số dư trung bình hàng năm tăng thêm 1,000 euro.
Thời lượng cuộc gọi cuối cùng: Hệ số ước lượng của biến duration là 0.004773, cho biết mỗi khi thời lượng cuộc gọi cuối cùng tăng thêm 1 giây, log odds của việc khách hàng đăng ký tiền gửi kỳ hạn cũng tăng 0.004773 đơn vị, giữ nguyên các yếu tố khác. Tương đương, Odds = exp(0.004773) ≈ 1.0048, tức là tỷ lệ giữa xác suất đăng ký và không đăng ký tăng thêm khoảng 0.48% mỗi giây gọi thêm. Ngoài ra, tác động biên là 0.0008195 cho thấy khi thời lượng gọi tăng thêm 1 giây thì xác suất đăng ký tiền gửi kỳ hạn tăng trung bình thêm khoảng 0.82 điểm phần trăm.
model2 <- glm(
deposit.coded ~ marital + education + balance + housing + loan + default + duration,
data = d,
family = binomial(link = "probit")
)
summary(model2)
##
## Call:
## glm(formula = deposit.coded ~ marital + education + balance +
## housing + loan + default + duration, family = binomial(link = "probit"),
## data = d)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -7.452e-01 5.047e-02 -14.764 < 2e-16 ***
## maritaldivorced -1.079e-01 4.606e-02 -2.343 0.019116 *
## maritalmarried -2.152e-01 2.980e-02 -7.223 5.08e-13 ***
## educationsecondary 2.141e-01 4.239e-02 5.051 4.40e-07 ***
## educationtertiary 3.831e-01 4.459e-02 8.591 < 2e-16 ***
## educationunknown 2.795e-01 7.239e-02 3.861 0.000113 ***
## balance 2.254e-05 4.535e-06 4.970 6.71e-07 ***
## housingyes -6.387e-01 2.735e-02 -23.352 < 2e-16 ***
## loanyes -4.029e-01 4.240e-02 -9.502 < 2e-16 ***
## defaultyes -3.808e-01 1.157e-01 -3.290 0.001001 **
## duration 2.503e-03 5.670e-05 44.140 < 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: 15443 on 11161 degrees of freedom
## Residual deviance: 11634 on 11151 degrees of freedom
## AIC: 11656
##
## Number of Fisher Scoring iterations: 25
margins(model2)
## balance duration maritaldivorced maritalmarried educationsecondary
## 6.775e-06 0.0007523 -0.03296 -0.06532 0.06321
## educationtertiary educationunknown housingyes loanyes defaultyes
## 0.1147 0.08302 -0.1964 -0.1184 -0.1103
| Biến số | Hệ số (β) | Tác động biên | Sai số chuẩn |
|---|---|---|---|
| hệ số chặn | -0.7452*** | - | 0.05047 |
| marital (divorced) | -0.1079* | -0.03296 | 0.04606 |
| marital (married) | -0.2152*** | -0.06532 | 0.02980 |
| education (secondary) | 0.2141*** | 0.06321 | 0.04239 |
| education (tertiary) | 0.3831*** | 0.11472 | 0.04459 |
| education (unknown) | 0.2795*** | 0.08302 | 0.07239 |
| balance | 0.00002254*** | 0.000006775 | 0.000004535 |
| housing (yes) | -0.6387*** | -0.1963824 | 0.02735 |
| loan (yes) | -0.4029*** | -0.1183997 | 0.04240 |
| default (yes) | -0.3808*** | -0.1102699 | 0.1157 |
| duration | 0.002503*** | 0.0007523 | 0.00005670 |
Ta có phương trình hồi quy:
\[ \begin{aligned} \Phi^{-1}(\pi) =\ & -0.7452 - 0.1079 * \text{marital (divorced)} - 0.2152 * \text{marital (married)} \\ & + 0.2141 * \text{education (secondary)} + 0.3831 * \text{education (tertiary)} + 0.2795 * \text{education (unknown)} \\ & + 0.00002254 * \text{balance} + 0.002503 * \text{duration} \\ & - 0.6387 * \text{housing (yes)} - 0.4029 * \text{loan (yes)} - 0.3808 * \text{default (yes)} \end{aligned} \]
Tình trạng hôn nhân
Trình độ học vấn
Khoản vay mua nhà: Kết quả tác động biên của biến housing (yes) là -0.1963824 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm khách hàng có khoản vay mua nhà thấp hơn ở nhóm khách hàng không vay là khoảng 19.6 điểm phần trăm.
Khoản vay cá nhân: Kết quả tác động biên của biến loan (yes) là -0.1183997 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm khách hàng có khoản vay cá nhân thấp hơn ở nhóm khách hàng không vay là khoảng 11.84 điểm phần trăm.
Nợ xấu: Kết quả tác động biên của biến default (yes) là -0.1102699 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm khách hàng có nợ xấu thấp hơn ở nhóm khách hàng không có nợ xấu là khoảng 11.03 điểm phần trăm.
Số dư trung bình hàng năm: Tác động biên của biến balance là 0.000006775, cho biết khi số dư trung bình hàng năm tăng thêm 1000 euro, xác suất đăng ký tiền gửi kỳ hạn tăng trung bình khoảng 6.678 điểm phần trăm, giữ nguyên các yếu tố khác.
Thời lượng cuộc gọi gần nhất: Tác động biên của biến duration là 0.0007523, cho biết khi thời lượng cuộc gọi tăng thêm 1 giây, xác suất đăng ký tiền gửi kỳ hạn tăng trung bình thêm khoảng 0.752 điểm phần trăm, trong điều kiện các yếu tố khác giữ nguyên.
model3 <- glm(
deposit.coded ~ marital + education + balance + housing + loan + default + duration,
data = d,
family = binomial(link = "cloglog")
)
summary(model3)
##
## Call:
## glm(formula = deposit.coded ~ marital + education + balance +
## housing + loan + default + duration, family = binomial(link = "cloglog"),
## data = d)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.377e-01 5.707e-02 -16.433 < 2e-16 ***
## maritaldivorced -1.093e-01 5.086e-02 -2.149 0.031640 *
## maritalmarried -2.634e-01 3.305e-02 -7.968 1.61e-15 ***
## educationsecondary 1.741e-01 4.914e-02 3.543 0.000396 ***
## educationtertiary 3.354e-01 5.105e-02 6.570 5.03e-11 ***
## educationunknown 2.110e-01 8.187e-02 2.577 0.009974 **
## balance 1.933e-05 4.478e-06 4.317 1.58e-05 ***
## housingyes -6.651e-01 3.164e-02 -21.019 < 2e-16 ***
## loanyes -4.441e-01 5.088e-02 -8.730 < 2e-16 ***
## defaultyes -3.459e-01 1.407e-01 -2.458 0.013986 *
## duration 2.028e-03 5.103e-05 39.749 < 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: 15443 on 11161 degrees of freedom
## Residual deviance: 12224 on 11151 degrees of freedom
## AIC: 12246
##
## Number of Fisher Scoring iterations: 25
margins(model3)
## balance duration maritaldivorced maritalmarried educationsecondary
## 5.339e-06 0.0005602 -0.03107 -0.07358 0.04674
## educationtertiary educationunknown housingyes loanyes defaultyes
## 0.09197 0.05693 -0.1844 -0.1172 -0.09111
| Biến số | Hệ số (β) | Tác động biên | Sai số chuẩn |
|---|---|---|---|
| hệ số chặn | -0.9377*** | - | 0.05707 |
| marital (divorced) | -0.1093* | -0.03107 | 0.05086 |
| marital (married) | -0.2634*** | -0.07358 | 0.03305 |
| education (secondary) | 0.1741*** | 0.04674 | 0.04914 |
| education (tertiary) | 0.3354*** | 0.09197 | 0.05105 |
| education (unknown) | 0.2110** | 0.05693 | 0.08187 |
| balance | 0.00001933*** | 0.000005339 | 0.000004478 |
| housing (yes) | -0.6651*** | -0.1844306 | 0.03164 |
| loan (yes) | -0.4441*** | -0.1172134 | 0.05088 |
| default (yes) | -0.3459** | -0.09110524 | 0.1407 |
| duration | 0.002028*** | 0.0005602 | 0.00005103 |
Ta có phương trình hồi quy:
\[ \begin{aligned} \text{cloglog}(P) =\ & -0.9377 - 0.1093 \cdot \text{marital (divorced)} - 0.2634 \cdot \text{marital (married)} \\ & + 0.1741 \cdot \text{education (secondary)} + 0.3354 \cdot \text{education (tertiary)} \\ & + 0.2110 \cdot \text{education (unknown)} + 0.00001933 \cdot \text{balance} \\ & - 0.6651 \cdot \text{housing (yes)} - 0.4441 \cdot \text{loan (yes)} \\ & - 0.3459 \cdot \text{default (yes)} + 0.002028 \cdot \text{duration} \end{aligned} \]
Tình trạng hôn nhân
Kết quả tác động biên marital (divorced) là -0.03107 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm khách hàng đã ly hôn thấp hơn ở nhóm khách hàng độc thân khoảng 3.11 điểm phần trăm.
Kết quả tác động biên marital (married) là -0.07358 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm khách hàng đã kết hôn thấp hơn ở nhóm khách hàng độc thân khoảng 7.36 điểm phần trăm.
Trình độ học vấn
Tác động biên education (secondary) là 0.04674 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm khách hàng học Trung học cao hơn nhóm có trình độ Tiểu học khoảng 4.67 điểm phần trăm.
Tác động biên education (tertiary) là 0.09197 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm có trình độ Đại học trở lên cao hơn nhóm Tiểu học khoảng 9.2 điểm phần trăm.
Tác động biên education (unknown) là 0.05693 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm không rõ trình độ học vấn cao hơn nhóm Tiểu học khoảng 5.69 điểm phần trăm.
Khoản vay mua nhà:Tác động biên housing (yes) là -0.1844306 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm khách hàng có khoản vay mua nhà thấp hơn nhóm không có khoảng 18.44 điểm phần trăm.
Khoản vay cá nhân: Tác động biên loan (yes) là -0.1172134 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm có khoản vay cá nhân thấp hơn nhóm không vay khoảng 11.72 điểm phần trăm.
Nợ xấu: Tác động biên default (yes) là -0.09110524 cho thấy xác suất đăng ký tiền gửi kỳ hạn ở nhóm có nợ xấu thấp hơn nhóm không có nợ xấu khoảng 9.11 điểm phần trăm.
Số dư trung bình hàng năm: Tác động biên balance là 0.000005339, cho thấy nếu số dư trung bình hàng năm của khách hàng tăng thêm 1,000 euro, xác suất đăng ký tiền gửi kỳ hạn tăng trung bình thêm khoảng 0.053 điểm phần trăm, trong điều kiện các yếu tố khác không đổi.
Thời lượng cuộc gọi gần nhất: Tác động biên duration là 0.0005602, nghĩa là nếu thời lượng cuộc gọi tăng thêm 1 giây, xác suất đăng ký tiền gửi kỳ hạn tăng trung bình thêm khoảng 0.056 điểm phần trăm, trong trường hợp các yếu tố khác không đổi.
vif(model1)
## GVIF Df GVIF^(1/(2*Df))
## marital 1.034262 2 1.008458
## education 1.061689 3 1.010027
## balance 1.018828 1 1.009370
## housing 1.064284 1 1.031642
## loan 1.023924 1 1.011891
## default 1.009998 1 1.004987
## duration 1.072453 1 1.035593
vif(model2)
## GVIF Df GVIF^(1/(2*Df))
## marital 1.034758 2 1.008578
## education 1.060350 3 1.009814
## balance 1.019369 1 1.009638
## housing 1.042373 1 1.020967
## loan 1.022476 1 1.011175
## default 1.009079 1 1.004529
## duration 1.035390 1 1.017541
vif(model2)
## GVIF Df GVIF^(1/(2*Df))
## marital 1.034758 2 1.008578
## education 1.060350 3 1.009814
## balance 1.019369 1 1.009638
## housing 1.042373 1 1.020967
## loan 1.022476 1 1.011175
## default 1.009079 1 1.004529
## duration 1.035390 1 1.017541
Kết quả kiểm tra đa cộng tuyến cho thấy tất cả các biến trong cả ba mô hình đều có chỉ số nhỏ hơn 2. Điều này cho thấy không có dấu hiệu đa cộng tuyến nghiêm trọng, các biến độc lập không gây ảnh hưởng tiêu cực đến độ tin cậy của mô hình hồi quy. Các mô hình hồi quy là ổn định và đáng tin cậy.
# Tạo bảng so sánh
aic_comparison <- data.frame(
Model = c("Logit", "Probit", "Cloglog"),
AIC = c(AIC(model1), AIC(model2), AIC(model3))
)
aic_comparison
## Model AIC
## 1 Logit 11476.32
## 2 Probit 11655.91
## 3 Cloglog 12245.74
Dựa trên chỉ số AIC, mô hình Logit có giá trị AIC thấp nhất (11476.32), cho thấy đây là mô hình phù hợp nhất trong ba mô hình. Mặc dù sự khác biệt về AIC giữa Logit và Cloglog là không lơn, nhưng Logit vẫn được ưu tiên do có độ phù hợp tốt hơn với dữ liệu xét trên tiêu chí này.
# Tạo bảng so sánh
BS_comparison <- data.frame(
Model = c("Logit", "Probit", "Cloglog"),
BrierScore = c(BrierScore(model1), BrierScore(model2), BrierScore(model3))
)
BS_comparison
## Model BrierScore
## 1 Logit 0.1659294
## 2 Probit 0.1681477
## 3 Cloglog 0.1770605
Dựa trên hệ số Brier Score, mô hình Logit tiếp tục thể hiện hiệu quả dự báo tốt nhất với giá trị thấp nhất là 0.1659. Mặc dù sự khác biệt giữa ba mô hình là rất nhỏ, kết quả này củng cố thêm lựa chọn mô hình Logit là phù hợp nhất trong ba mô hình xét theo tiêu chí dự báo.
# Hàm tạo confusion matrix đơn giản
conf_matrix <- function(model, name) {
pred <- ifelse(predict(model, type = "response") > 0.5, 1, 0)
table(Predicted = pred, Actual = model$y) %>%
as.data.frame() %>%
mutate(Model = name)
}
# Áp dụng cho 3 model
results <- rbind(
conf_matrix(model1, "Logit"),
conf_matrix(model2, "Probit"),
conf_matrix(model3, "Cloglog")
)
# Hiển thị
print(results)
## Predicted Actual Freq Model
## 1 0 0 4796 Logit
## 2 1 0 1077 Logit
## 3 0 1 1601 Logit
## 4 1 1 3688 Logit
## 5 0 0 4849 Probit
## 6 1 0 1024 Probit
## 7 0 1 1682 Probit
## 8 1 1 3607 Probit
## 9 0 0 4932 Cloglog
## 10 1 0 941 Cloglog
## 11 0 1 1894 Cloglog
## 12 1 1 3395 Cloglog
Dựa trên ma trận nhầm lẫn, mô hình Logit đạt tổng số trường hợp dự đoán đúng cao nhất với 8.484 quan sát, chiếm khoảng 71,1% tổng số trường hợp. Xếp sau là mô hình Probit với 8.456 quan sát đúng (70,9%), và thấp nhất là mô hình Cloglog với 8.327 quan sát đúng (69,8%). Bên cạnh đó, nếu chỉ xét riêng khả năng dự đoán đúng nhóm khách hàng có đăng ký tiền gửi kỳ hạn, thì mô hình Logit tiếp tục cho kết quả tốt nhất với 3.688 trường hợp (73.2%), cao hơn so với Probit (3.607; 68,2%) và Cloglog (3.395; 64,2%). Ngược lại, khi dự đoán nhóm khách hàng không đăng ký tiền gửi kỳ hạn, mô hình Cloglog lại cho kết quả chính xác cao nhất với 4.932 trường hợp, tương ứng với 72,4% trong tổng số 6.813 quan sát, cao hơn Probit (4.849; 71.1%) và Logit (4.796; 70.4%).
Khi xét tổng thể cả ba tiêu chí đánh giá mô hình gồm AIC, Brier Score và ma trận nhầm lẫn, mô hình Logit nổi bật hơn cả. Về AIC, Logit có giá trị nhỏ nhất (11476.32), phản ánh mức độ phù hợp tốt nhất với dữ liệu trong ba mô hình. Với Brier Score, Logit cũng ghi nhận giá trị thấp nhất (0.1659), cho thấy dự báo xác suất của mô hình này gần với giá trị thực tế nhất. Kết hợp với khả năng dự báo đúng tốt khách hàng đăng ký tiền gửi kỳ hạn trong ma trận nhầm lẫn, có thể kết luận rằng mô hình Logit là lựa chọn hợp lý và hiệu quả nhất trong việc dự báo khả năng đăng ký tiền gửi kỳ hạn của khách hàng.
Nghiên cứu này đã sử dụng bộ dữ liệu Bank Marketing để phân tích các yếu tố ảnh hưởng đến quyết định đăng ký tiền gửi kỳ hạn của khách hàng, với biến phụ thuộc là lựa chọn “có” hoặc “không” đăng ký. Bằng việc áp dụng ba mô hình hồi quy nhị phân phổ biến gồm Logit, Probit và Cloglog, nghiên cứu cho thấy các yếu tố như tình trạng hôn nhân, trình độ học vấn, khoản vay cá nhân, khoản vay mua nhà, nợ xấu và số dư trung bình hàng năm có ảnh hưởng đáng kể đến hành vi của khách hàng.
Kết quả ước lượng cho thấy những khách hàng có trình độ học vấn cao và số dư tài khoản lớn có xác suất đăng ký tiền gửi kỳ hạn cao hơn. Ngược lại, những người đã kết hôn, đang có khoản vay hoặc nợ xấu lại ít có khả năng đăng ký sản phẩm này. Khi so sánh hiệu năng mô hình theo các tiêu chí AIC, Brier Score và ma trận nhầm lẫn, mô hình Logit cho thấy độ phù hợp tốt nhất trên toàn tập dữ liệu.
Các phát hiện từ nghiên cứu có thể hỗ trợ ngân hàng trong việc phân khúc thị trường, xây dựng chiến lược tiếp thị hiệu quả hơn và cải thiện khả năng tiếp cận khách hàng tiềm năng. Tuy nhiên, nghiên cứu vẫn còn một số hạn chế, như chưa đưa vào các biến quan trọng khác (hình thức liên hệ, kết quả chiến dịch trước đó,…). Do đó, các nghiên cứu tiếp theo có thể mở rộng mô hình với các biến bổ sung nhằm cải thiện độ chính xác dự báo và khả năng áp dụng thực tiễn.