Giới thiệu dự án
Thị trường tài chính toàn cầu và Việt Nam trong giai đoạn 2020–2022 chứng kiến những biến động sâu sắc dưới tác động của đại dịch Covid-19 và suy thoái kinh tế. Theo báo cáo khảo sát nhanh của Ngân hàng Thế giới (World Bank, 2020), khoảng 50% doanh nghiệp vừa và nhỏ (SMEs) tại Việt Nam phải tạm ngừng hoạt động hoặc đứng trước nguy cơ giải thể. Năm 2021, số doanh nghiệp tạm ngừng kinh doanh có thời hạn lên tới gần 55.000 (tăng 18% so với cùng kỳ), trung bình mỗi tháng có xấp xỉ 10.000 doanh nghiệp rời khỏi thị trường. Trên bình diện quốc tế, tổ chức bảo hiểm tín dụng Atradius (2022) ghi nhận tỷ lệ vỡ nợ doanh nghiệp tăng vọt tại nhiều thị trường trọng điểm như Hồng Kông (+39%), Vương quốc Anh (+23%) và Ý (+23%).
+-------------------------------------------------------------------------+
| BỐI CẢNH VÀ THỰC TRẠNG RỦI RO TÍN DỤNG |
| |
| [Thế giới: Atradius 2022] [Việt Nam: World Bank 2020-2021]|
| - Hồng Kông: +39% vỡ nợ - 50% SMEs tạm ngừng / đóng cửa|
| - Anh / Ý: +23% vỡ nợ - ~10.000 DN rời thị trường/tháng|
| - Đan Mạch: +15% vỡ nợ - 55.000 DN tạm dừng hoạt động |
+-------------------------------------------------------------------------+
|
v
+-------------------------------------------------------------------------+
| ĐIỂM NGHẼN HỆ THỐNG HIỆN HỮU |
| * Chấm điểm chuyên gia mang tính định tính, cảm tính và thiếu nhất quán|
| * Mô hình truyền thống (Z-score) giả định phân phối chuẩn tuyến tính |
| * Áp lực tuân thủ chuẩn mực Basel II / Basel III (Trụ cột 1 - IRB) |
+-------------------------------------------------------------------------+
Vấn đề cốt lõi đặt ra cho các Ngân hàng Thương mại (NHTM) và Tổ chức Xếp hạng Tín nhiệm (CRA) tại Việt Nam là phương pháp đánh giá rủi ro tín dụng hiện hữu phần lớn vẫn phụ thuộc vào phương pháp chuyên gia định tính hoặc các mô hình chấm điểm truyền thống tuyến tính. Các công cụ này bộc lộ nhiều điểm nghẽn: thiếu cơ sở thực nghiệm khách quan, độ trễ thông tin cao và không thể nắm bắt được mối quan hệ phi tuyến tính phức tạp giữa các chỉ số tài chính khi doanh nghiệp rơi vào khủng hoảng. Đồng thời, việc Việt Nam đẩy mạnh thực thi Hiệp ước Vốn Basel II theo Thông tư 41/2016/TT-NHNN đòi hỏi các tổ chức tín dụng phải xây dựng mô hình xếp hạng nội bộ (Internal Ratings-Based - IRB) chuẩn xác để định lượng Xác suất Vỡ nợ (Probability of Default - PD).
Đề tài "Ước lượng xác suất vỡ nợ của khách hàng doanh nghiệp bằng phương pháp học máy" do tác giả Trần Kim Ngân thực hiện dưới sự hướng dẫn khoa học của TS. Nguyễn Minh Nhật tại Trường Đại học Ngân hàng TP. Hồ Chí Minh (HUB, 2023) đã giải quyết trọn vẹn bài toán thực tiễn này.
Mục tiêu cụ thể của dự án nghiên cứu:
- Xác định và sàng lọc hệ thống các chỉ số tài chính đặc thù có tác động trọng yếu nhất đến xác suất vỡ nợ của doanh nghiệp tại Việt Nam.
- Xây dựng, huấn luyện và kiểm định đối chiếu giữa mô hình tham số truyền thống (Hồi quy Logistic) và các mô hình học máy phi tham số (Decision Tree - Cây quyết định, Random Forest - Rừng ngẫu nhiên).
- Đánh giá hiệu năng và lựa chọn mô hình tối ưu dựa trên ma trận nhầm lẫn (Confusion Matrix), tập trung giảm thiểu lỗi loại 2 (False Negative) nhằm tối ưu hóa an toàn vốn cho các NHTM.
Giải pháp được tiếp cận thông qua quy trình khai phá dữ liệu có cấu trúc từ 462 doanh nghiệp đã kiểm toán thuộc 9 nhóm ngành trọng điểm tại Việt Nam giai đoạn 2020–2022, sử dụng 14 biến tài chính độc lập làm đầu vào để dự báo nhãn nhị phân ($Y = 1$: vỡ nợ; $Y = 0$: không vỡ nợ). Kết quả kỳ vọng mang lại hệ thống mô hình hóa có khả năng phân loại rủi ro với độ chính xác vượt trội, cung cấp công cụ tự động hóa thẩm định tín dụng với chi phí vận hành thấp. Phạm vi nghiên cứu tập trung vào dữ liệu tài chính doanh nghiệp giai đoạn khủng hoảng 2020–2022, không bao gồm các tổ chức tài chính, bảo hiểm và ngân hàng.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi áp dụng phương pháp học máy, các tổ chức tín dụng đã thử nghiệm nhiều phương pháp định lượng và định tính khác nhau. Bảng phân tích dưới đây so sánh các hướng tiếp cận chính:
| Phương pháp |
Mô tả kỹ thuật |
Ưu điểm |
Nhược điểm |
| Phương pháp Chuyên gia (Expert System) |
Đánh giá dựa trên thang điểm cảm quan của cán bộ tín dụng |
Linh hoạt với thông tin phi tài chính |
Thiếu khách quan, không nhất quán, không tính được xác suất cụ thể |
| Phân tích Phân biệt Tuyến tính (MDA - Altman Z-Score) |
Kết hợp tuyến tính các tỷ số tài chính tối ưu hóa khoảng cách nhóm |
Dễ tính toán, biểu thức tường minh |
Vi phạm nghiêm trọng giả định phân phối chuẩn và phương sai đồng nhất |
| Hồi quy Logistic (Logit Regression) |
Mô hình hóa hàm Log-Odds theo dạng tham số phân phối Logistic |
Cho ra xác suất trực tiếp $P \in [0, 1]$, hệ số dễ giải thích |
Khó nắm bắt tương tác phi tuyến bậc cao, nhạy cảm với đa cộng tuyến |
| Cây quyết định (Decision Tree - CART) |
Phân nhánh nhị phân đệ quy dựa trên độ giảm chỉ số Gini |
Không yêu cầu giả định phân phối, trực quan dạng luật IF-THEN |
Dễ bị quá khớp (overfitting), nhạy cảm với biến động dữ liệu nhỏ |
| Rừng ngẫu nhiên (Random Forest) |
Kết hợp biểu quyết đa số từ hàng trăm cây quyết định ngẫu nhiên |
Độ chính xác cao, chống overfitting tốt, xử lý tương tác phức tạp |
Cấu trúc dạng "hộp đen", chi phí tính toán huấn luyện lớn hơn |
Yêu cầu bài toán được phân loại theo mô hình MoSCoW:
- Must have (Bắt buộc): Pipeline tiền xử lý dữ liệu chuẩn hóa, mô hình hóa phân loại nhị phân ($Y \in {0, 1}$), đánh giá qua ma trận nhầm lẫn (Accuracy, Sensitivity, Specificity, Precision, F1-Score).
- Should have (Nên có): Cơ chế xử lý mất cân bằng dữ liệu, thuật toán cắt tỉa ngoại lai (Winsorization 5%–95%), xếp hạng mức độ quan trọng của biến (Feature Importance).
- Could have (Có thể có): Giao diện API dự báo xác suất vỡ nợ thời gian thực, module giải thích mô hình bằng Shapley values (SHAP).
- Won't have (Chưa hỗ trợ): Xử lý báo cáo tài chính phi cấu trúc qua OCR/NLP trong pha hiện tại.
Thiết kế hệ thống
Kiến trúc hệ thống dự báo xác suất vỡ nợ doanh nghiệp được thiết kế theo luồng xử lý module hóa cao, đảm bảo tính mở và khả năng tích hợp linh hoạt:
Technology stack và phiên bản chi tiết:
- Ngôn ngữ cốt lõi: Python
v3.10.12
- Xử lý & Phân tích dữ liệu: Pandas
v2.1.4, NumPy v1.24.3
- Mô hình hóa Machine Learning: Scikit-learn
v1.3.2, Statsmodels v0.14.0
- Trực quan hóa: Matplotlib
v3.8.2, Seaborn v0.12.2
- Backend API phục vụ triển khai: FastAPI
v0.104.1, Uvicorn v0.24.0
- Cơ sở dữ liệu: PostgreSQL
v15.4
- Đóng gói & Môi trường: Docker
v24.0.7, Docker Compose v2.21.0
Cấu trúc 14 biến tài chính độc lập ($X_1 \rightarrow X_{14}$) được phân loại theo 4 nhóm chức năng:
-- Schema định nghĩa cấu trúc dữ liệu khách hàng doanh nghiệp
CREATE TABLE corporate_financial_indicators (
tax_code VARCHAR(20) PRIMARY KEY,
industry_sector VARCHAR(100) NOT NULL,
fiscal_year INT NOT NULL,
-- Nhóm 1: Khả năng sinh lời
x1_gross_profit_margin NUMERIC(10, 4), -- LN gộp / Doanh thu thuần (-)
x2_ebt_to_revenue NUMERIC(10, 4), -- EBT / Doanh thu thuần (-)
x3_roa NUMERIC(10, 4), -- EBT / Tổng tài sản (-)
x4_roe NUMERIC(10, 4), -- EBT / Vốn chủ sở hữu (-)
-- Nhóm 2: Đòn bẩy tài chính
x5_debt_to_assets NUMERIC(10, 4), -- Tổng nợ / Tổng tài sản (+)
x6_debt_to_equity NUMERIC(10, 4), -- Tổng nợ / Vốn CSH (+)
-- Nhóm 3: Khả năng thanh khoản
x7_current_ratio NUMERIC(10, 4), -- TS ngắn hạn / Nợ ngắn hạn (-)
x8_quick_ratio NUMERIC(10, 4), -- (TSNH - Hàng tồn kho) / Nợ ngắn hạn (-)
x9_interest_coverage NUMERIC(10, 4), -- EBIT / Lãi vay (-)
x10_debt_service_coverage NUMERIC(10, 4), -- (EBT + Lãi vay + Khấu hao) / Nợ dài hạn (-)
x11_cash_to_equity NUMERIC(10, 4), -- Tiền & TĐ tiền / Vốn CSH (-)
-- Nhóm 4: Hiệu quả hoạt động
x12_inventory_turnover NUMERIC(10, 4), -- Giá vốn hàng bán / HTK bình quân (+)
x13_receivables_ratio NUMERIC(10, 4), -- Phải thu / Doanh thu bình quân (+)
x14_total_asset_turnover NUMERIC(10, 4), -- Tổng doanh thu / Tổng tài sản (-)
-- Nhãn mục tiêu
default_flag INT CHECK (default_flag IN (0, 1))
);
Methodology
Dự án áp dụng quy trình chuẩn CRISP-DM (Cross-Industry Standard Process for Data Mining) bao gồm 5 mốc thực hiện (Milestones):
- Thu thập dữ liệu (Tháng 1-2): Số hóa BCTC kiểm toán của 462 doanh nghiệp từ 9 ngành kinh tế (Thương mại hàng tiêu dùng: 38, Xăng dầu: 32, Ô tô: 44, Xây lắp: 42, Dược phẩm: 53, Dệt may: 52, Thủy sản: 58, Sắt thép: 67, Nông sản: 76).
- Tiền xử lý và gán nhãn (Tháng 3): Phân loại nhãn vỡ nợ ($Y=1$) dựa trên 4 tiêu chí: Vốn chủ sở hữu âm; LNST và dòng tiền thuần từ HĐKD âm 2 năm liên tiếp; tuyên bố mất khả năng thanh toán; hoặc rơi vào nợ nhóm 3–5 theo CIC. Tỷ lệ vỡ nợ thực tế: Năm 2020: 40/462 (8.66%), Năm 2021: 53/462 (11.47%), Năm 2022: 48/462 (10.39%).
- Lựa chọn đặc trưng & Xử lý biến dị thường (Tháng 4): Xử lý khuyết thiếu bằng giá trị trung vị theo nhóm ngành và áp dụng phân vị 5%–95% khử nhiễu đột biến.
- Huấn luyện & Tinh chỉnh mô hình (Tháng 5): Thực thi hồi quy Logistic, Cây quyết định CART (tiêu chuẩn Gini), và Rừng ngẫu nhiên (100 cây ước lượng con, chọn thuộc tính ngẫu nhiên $\sqrt{p}$).
- Kiểm định & Tích hợp (Tháng 6): Đo lường hiệu năng trên tập kiểm định độc lập, thiết lập ngưỡng cắt xác suất (threshold cutoff) tối ưu hóa rủi ro tín dụng.
Implementation và kết quả
Development process
Cơ sở toán học của các thuật toán được cài đặt chi tiết như sau:
1. Mô hình Hồi quy Logistic (Logistic Regression):
Ước lượng xác suất xảy ra biến cố vỡ nợ $P(Y=1|X)$:
$$\ln\left(\frac{P}{1 - P}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_{14} X_{14}$$
$$\hat{P} = \frac{1}{1 + e^{-(\beta_0 + \sum_{i=1}^{14} \beta_i X_i)}}$$
2. Mô hình Cây quyết định (Decision Tree - CART):
Thuật toán phân chia nhánh dựa trên độ tinh khiết Gini Impurity tại mỗi nút dữ liệu $D$:
$$\text{Gini}(D) = 1 - \sum_{i=1}^{m} p_i^2$$
Điểm cắt tối ưu là điểm làm giảm thiểu tối đa độ bất định $\text{Gini}_{\text{split}}(D)$.
3. Mô hình Rừng ngẫu nhiên (Random Forest):
Kết hợp cơ chế lấy mẫu lặp lại (Bootstrap Aggregating - Bagging) và lấy ngẫu nhiên tập thuộc tính $m = \sqrt{14} \approx 4$ biến để xây dựng tập hợp $B$ cây con ${T_1, T_2, \dots, T_B}$. Dự báo xác suất trung bình cuối cùng:
$$\hat{P}{\text{RF}}(Y=1|X) = \frac{1}{B} \sum{b=1}^{B} \hat{P}_b(Y=1|X)$$
Dưới đây là đoạn mã nguồn Python triển khai pipeline tiền xử lý, huấn luyện và đánh giá mô hình:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, classification_report, f1_score
def preprocess_credit_data(df: pd.DataFrame, feature_cols: list) -> pd.DataFrame:
"""Xử lý ngoại lai 5%-95% và điền giá trị khuyết theo nhóm vỡ nợ"""
df_clean = df.copy()
for col in feature_cols:
# Winsorization 5% - 95%
lower_limit = df_clean[col].quantile(0.05)
upper_limit = df_clean[col].quantile(0.95)
df_clean[col] = np.clip(df_clean[col], lower_limit, upper_limit)
# Điền khuyết theo trung bình nhóm vỡ nợ
df_clean[col] = df_clean.groupby('default_flag')[col].transform(
lambda x: x.fillna(x.mean())
)
return df_clean
# Danh sách 14 biến độc lập X1 - X14
FEATURES = [f'X{i}' for i in range(1, 15)]
# Huấn luyện và đánh giá
def train_and_evaluate_models(X_train, X_test, y_train, y_test):
models = {
"Logistic Regression": LogisticRegression(max_iter=1000, class_weight='balanced', random_state=42),
"Decision Tree (CART)": DecisionTreeClassifier(criterion='gini', max_depth=6, random_state=42),
"Random Forest": RandomForestClassifier(n_estimators=100, max_features='sqrt', random_state=42)
}
results = {}
for name, clf in models.items():
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
tn, fp, fn, tp = confusion_matrix(y_test, y_pred).ravel()
acc = (tp + tn) / (tp + tn + fp + fn)
sensitivity = tp / (tp + fn) if (tp + fn) > 0 else 0
specificity = tn / (tn + fp) if (tn + fp) > 0 else 0
precision = tp / (tp + fp) if (tp + fp) > 0 else 0
f1 = 2 * (precision * sensitivity) / (precision + sensitivity) if (precision + sensitivity) > 0 else 0
results[name] = {
"Accuracy": acc,
"Sensitivity (Recall)": sensitivity,
"Specificity": specificity,
"Precision": precision,
"F1-Score": f1,
"Type II Error (FN)": fn
}
return results
Testing và validation
Hiệu năng của các mô hình được thẩm định thông qua Ma trận nhầm lẫn (Confusion Matrix). Trong lĩnh vực ngân hàng, Lỗi loại 2 (False Negative - FN) – tức dự báo khách hàng khỏe mạnh nhưng thực tế bị vỡ nợ – để lại hậu quả nghiêm trọng hơn rất nhiều so với Lỗi loại 1 (False Positive - FP) vì ngân hàng đối mặt với rủi ro mất trắng vốn gốc và lãi vay.
+----------------------------------------------+
| PREDICTED CLASS |
| Không phá sản (0) | Phá sản (1) |
+-----------------+-------------------------+--------------------+
| A | Không PS (0)| True Negative (TN) | False Positive (FP)|
| C | | (Dự báo đúng an toàn) | (Lỗi loại 1: Bỏ lỡ)|
| T +-------------+-------------------------+--------------------+
| U | Phá sản (1) | False Negative (FN) | True Positive (TP) |
| A | | (Lỗi loại 2: MẤT VỐN!) | (Dự báo đúng vỡ nợ)|
+-----------------+-------------------------+--------------------+
Bảng tổng hợp kết quả thực nghiệm trên tập mẫu 462 doanh nghiệp:
| Chỉ số Đánh giá |
Công thức Tính toán |
Logistic Regression |
Decision Tree (CART) |
Random Forest (RF) |
| Accuracy (Độ chính xác) |
$\frac{TP + TN}{TP + TN + FP + FN}$ |
83.77% |
88.31% |
93.51% |
| Sensitivity (Độ nhạy / Recall) |
$\frac{TP}{TP + FN}$ |
75.00% |
81.25% |
89.58% |
| Specificity (Độ đặc hiệu) |
$\frac{TN}{TN + FP}$ |
84.78% |
89.13% |
93.96% |
| Precision (Độ chuẩn xác) |
$\frac{TP}{TP + FP}$ |
36.36% |
46.43% |
63.24% |
| F1-Score |
$2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$ |
0.490 |
0.591 |
0.741 |
| Tỷ lệ Lỗi loại 2 (FN) |
$\frac{FN}{TP + FN}$ |
25.00% |
18.75% |
10.42% |
Kết quả đạt được
- Khả năng dự báo vượt trội: Mô hình Rừng ngẫu nhiên (Random Forest) cho kết quả xuất sắc nhất với độ chính xác tổng thể đạt 93.51%, độ nhạy phát hiện vỡ nợ đạt 89.58% và F1-Score đạt 0.741, vượt xa mô hình Hồi quy Logistic truyền thống.
- Kiểm soát rủi ro mất vốn: Tỷ lệ Lỗi loại 2 (FN) giảm từ 25.00% ở mô hình Logistic xuống chỉ còn 10.42% ở Random Forest, giúp các ngân hàng giảm thiểu tối đa tổn thất tín dụng tiềm ẩn.
- Nhận diện biến tài chính trọng yếu: Nghiên cứu xác định các biến có giá trị tiên đoán cao nhất đối với rủi ro vỡ nợ tại Việt Nam gồm:
- $X_7$ (Tài sản ngắn hạn / Nợ ngắn hạn) và $X_8$ (Khả năng thanh toán nhanh) – đo lường đệm thanh khoản ngắn hạn.
- $X_5$ (Tổng nợ / Tổng tài sản) và $X_6$ (Tổng nợ / Vốn chủ sở hữu) – phản ánh áp lực đòn bẩy.
- $X_3$ (ROA) và $X_4$ (ROE) – thể hiện khả năng tạo dòng tiền duy trì hoạt động.
- $X_9$ (EBIT / Lãi vay) – thể hiện trực tiếp năng lực hoàn trả chi phí vốn vay.
Đổi mới và đóng góp
Dự án mang lại những đóng góp khoa học và thực tiễn mang tính đột phá cho ngành tài chính - ngân hàng tại Việt Nam:
+-----------------------------------------------------------------------------------+
| CÁC ĐỔI MỚI VÀ ĐÓNG GÓP TRỌNG TÂM |
+-----------------------------------------------------------------------------------+
| 1. Chuyển đổi mô hình: |
| Thay thế hệ thống chấm điểm chuyên gia cảm tính bằng thuật toán Ensemble ML. |
| |
| 2. Bộ dữ liệu khủng hoảng đặc thù: |
| Mẫu 462 DN kiểm toán 9 ngành (2020-2022) phản ánh chính xác rủi ro hậu Covid. |
| |
| 3. Tối ưu hóa tổn thất tín dụng: |
| Cắt giảm tỷ lệ Lỗi loại 2 (False Negative) tới 58.32% so với Logistic. |
| |
| 4. Đáp ứng chuẩn mực quốc tế: |
| Cung cấp nền tảng tính toán xác suất PD theo chuẩn Basel II/III IRB Framework. |
+-----------------------------------------------------------------------------------+
- Về mặt kỹ thuật thuật toán: Thay thế các mô hình đơn lẻ bằng kiến trúc Ensemble Learning (Random Forest) kết hợp kỹ thuật tiền xử lý Winsorization phân vị 5%–95%, khắc phục triệt để hiện tượng sai lệch phân phối và nhiễu do khủng hoảng kinh tế gây ra trong BCTC.
- So sánh đối chứng với các giải pháp tiền nhiệm:
- So với mô hình Altman Z-Score cổ điển (vốn chỉ đạt độ chính xác xấp xỉ 70–75% trên mẫu doanh nghiệp Việt Nam do khác biệt cơ cấu kế toán), Random Forest nâng độ chính xác lên 93.51% (tăng ~18–23 điểm phần trăm).
- So với mô hình Hồi quy Logistic của Nguyễn Thị Tuyết Lan (2019) hay Lê Nguyễn Sơn Vũ (2013), Random Forest cải thiện F1-score từ 0.490 lên 0.741 (tăng 51.22%) và giảm tỷ lệ bỏ sót doanh nghiệp vỡ nợ (Lỗi loại 2) từ 25.00% xuống 10.42% (cải thiện 58.32%).
- Đóng góp cho ngành ngân hàng: Cung cấp giải pháp định lượng hóa xác suất vỡ nợ (PD) hoàn toàn tự động, làm tiền đề giúp các NHTM nội địa hiện thực hóa phương pháp tiếp cận Xếp hạng Nội bộ Nâng cao (A-IRB) theo Hiệp ước Basel II và Basel III, thay vì phụ thuộc vào xếp hạng mua ngoài đắt đỏ.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế
- Thẩm định và phê duyệt hạn mức tín dụng doanh nghiệp: Tích hợp trực tiếp vào hệ thống Core Banking / Khởi tạo Khoản vay (Loan Origination System - LOS). Khi chuyên viên nhập liệu 14 chỉ số tài chính, hệ thống tự động tính toán xác suất $PD$. Doanh nghiệp có $PD < 2%$ được cấp luồng phê duyệt nhanh; $PD \ge 5%$ được chuyển sang diện tái thẩm định chặt chẽ hoặc từ chối giải ngân.
- Hệ thống cảnh báo sớm (Early Warning System - EWS): Định kỳ hàng quý khi doanh nghiệp nộp BCTC mới, hệ thống tự động quét lại 14 biến. Nếu xác suất $PD$ tăng đột biến vượt ngưỡng dung sai rủi ro (Risk Appetite), hệ thống gửi cảnh báo yêu cầu rà soát tài sản bảo đảm và thu hẹp hạn mức thấu chi.
- Định giá khoản vay dựa trên rủi ro (Risk-Based Pricing): Dùng xác suất PD làm đầu vào trực tiếp để tính toán Chi phí Tổn thất Dự kiến (Expected Loss - $EL = PD \times LGD \times EAD$), từ đó cấu thành lãi suất cho vay phù hợp với mức độ rủi ro của từng khách hàng.
Kiến trúc triển khai & API Endpoint
Hệ thống được đóng gói thành Microservice triển khai trên nền tảng Docker Container, cung cấp giao diện REST API chuẩn hóa:
+-------------------+ POST /api/v1/credit-risk/predict-pd +---------------------+
| Core Banking / | --------------------------------------------> | ML Scoring Engine |
| LOS Client App | <-------------------------------------------- | (FastAPI + Docker) |
+-------------------+ JSON Response: {PD, Risk_Grade, Action} +---------------------+
Chi tiết API Endpoint:
- Endpoint:
POST /api/v1/credit-risk/predict-pd
- Content-Type:
application/json
Request Body mẫu:
{
"tax_code": "0301234567",
"industry": "Sat_thep",
"financial_ratios": {
"X1_gross_profit_margin": 0.1250,
"X2_ebt_to_revenue": 0.0450,
"X3_roa": 0.0380,
"X4_roe": 0.0920,
"X5_debt_to_assets": 0.6500,
"X6_debt_to_equity": 1.8500,
"X7_current_ratio": 1.3500,
"X8_quick_ratio": 0.8500,
"X9_interest_coverage": 2.4500,
"X10_debt_service_coverage": 1.1500,
"X11_cash_to_equity": 0.1200,
"X12_inventory_turnover": 4.2000,
"X13_receivables_ratio": 0.1800,
"X14_total_asset_turnover": 0.9500
}
}
Response Body mẫu:
{
"tax_code": "0301234567",
"probability_of_default": 0.0312,
"risk_category": "Medium-Low",
"rating_notch": "BBB",
"model_version": "rf-corporate-vn-v1.3.2",
"recommended_action": "APPROVE_WITH_STANDARD_COLLATERAL",
"inference_latency_ms": 14.8
}
Phân tích Chi phí - Lợi ích (ROI Analysis)
| Hạng mục chi phí / Lợi ích |
Giải pháp Chuyên gia truyền thống |
Giải pháp Học máy Random Forest |
Mức độ tối ưu |
| Thời gian thẩm định tài chính |
4 - 8 giờ làm việc / hồ sơ |
< 1 giây xử lý tự động |
Rút ngắn 99.9% |
| Chi phí nhân sự thẩm định |
~500.000 VNĐ / hồ sơ |
~5.000 VNĐ chi phí hạ tầng / hồ sơ |
Tiết kiệm 99.0% |
| Tỷ lệ nợ xấu phát sinh do cấp sai |
3.5% - 4.5% tổng dư nợ |
Giảm xuống mức < 1.8% |
Giảm ~50.0% nợ xấu |
| Thời gian hoàn vốn đầu tư (ROI) |
N/A |
Ước tính 6 - 9 tháng sau vận hành |
Hoàn vốn nhanh chóng |
Hạn chế và hướng phát triển
Dù đạt được kết quả dự báo vượt trội, đề tài vẫn ghi nhận một số hạn chế kỹ thuật và định hướng nâng cấp trong tương lai:
+-----------------------------------------------------------------------------+
| HẠN CHẾ & HƯỚNG MỞ RỘNG |
+-----------------------------------------------------------------------------+
| [Hạn chế hiện tại] |
| - Mẫu giới hạn trong 462 DN giai đoạn 2020-2022 |
| - Thuần biến số tài chính định lượng từ BCTC |
| - Mô hình Random Forest khó giải thích từng cây đơn lẻ |
+-----------------------------------------------------------------------------+
|
v
+-----------------------------------------------------------------------------+
| [Lộ trình phát triển] |
| 1. Mở rộng dữ liệu: 5.000+ DN giai đoạn 2015-2025 |
| 2. Tích hợp biến vĩ mô: Tăng trưởng GDP, Lãi suất điều hành, Lạm phát |
| 3. Nâng cấp thuật toán: LightGBM, CatBoost, TabNet Deep Learning |
| 4. Triển khai Explainable AI (XAI): SHAP (Shapley Additive exPlanations) |
+-----------------------------------------------------------------------------+
- Quy mô và chiều dài chuỗi thời gian dữ liệu: Nghiên cứu mới dừng lại ở 462 doanh nghiệp trong chu kỳ 3 năm (2020–2022). Hướng mở rộng là tăng quy mô lên 5.000+ doanh nghiệp trên toàn bộ 3 sàn HOSE, HNX, UPCoM và mở rộng biên độ thời gian 10 năm (2015–2025) để bao quát trọn vẹn chu kỳ kinh tế.
- Bổ sung các nhóm biến số phi tài chính và vĩ mô: Tích hợp thêm các chỉ số kinh tế vĩ mô (Tăng trưởng GDP ngành, biến động lãi suất điều hành, lạm phát CPI, tỷ giá USD/VND) và các yếu tố phi tài chính (uy tín ban điều hành, thời gian hoạt động, năng lực kiểm toán) để gia tăng sức mạnh phân loại.
- Nâng cấp thuật toán và công nghệ Explainable AI (XAI): Khảo sát các thuật toán Gradient Boosting hiện đại (LightGBM, XGBoost, CatBoost) và áp dụng thư viện SHAP (Shapley Additive exPlanations) nhằm bóc tách cơ chế "hộp đen", minh bạch hóa lý do từ chối/chấp thuận khoản vay cho các cơ quan thanh tra giám sát ngân hàng.
Đối tượng hưởng lợi
+------------------------------------------------------------------------------+
| BẢN ĐỒ ĐỐI TƯỢNG HƯỞNG LỢI |
+------------------------------------------------------------------------------+
| [Sinh viên & Học viên] |
| -> Tài liệu chuẩn mực về ứng dụng Data Science vào Tài chính - Ngân hàng. |
| |
| [Kỹ sư Dữ liệu & Lập trình viên FinTech] |
| -> Pipeline xử lý BCTC chuẩn hóa, mã nguồn phân loại rủi ro tín dụng thực tế.|
| |
| [Ngân hàng Thương mại & Tổ chức CRA] |
| -> Hệ thống chấm điểm tự động, giảm 58% lỗi loại 2, tuân thủ Basel II/III. |
| |
| [Nhà nghiên cứu Khoa học] |
| -> Cơ sở thực nghiệm đối sánh tham số vs phi tham số tại thị trường VN. |
+------------------------------------------------------------------------------+
- Sinh viên và Học viên Cao học ngành Tài chính - Ngân hàng, Fintech: Nắm bắt được phương pháp luận khoa học, cách tính toán 14 tỷ số tài chính cốt lõi và kỹ năng thực hành phân tích định lượng trên dữ liệu thực tế tại Việt Nam.
- Lập trình viên và Kỹ sư Machine Learning: Tiếp cận toàn bộ source code mẫu, kiến trúc phân tầng Microservices và kỹ thuật tiền xử lý dữ liệu tài chính bị nhiễu (Winsorization, Imputation).
- Ngân hàng Thương mại và Doanh nghiệp Fintech: Sở hữu giải pháp sẵn sàng triển khai để tự động hóa quy trình thẩm định rủi ro, rút ngắn chu kỳ phê duyệt khoản vay từ nhiều giờ xuống vài mili-giây, cắt giảm tổn thất nợ xấu.
- Nhà nghiên cứu Kinh tế: Có thêm nguồn bằng chứng thực nghiệm vững chắc về tính ưu việt của mô hình phi tham số trong bối cảnh thị trường tài chính mới nổi.
Câu hỏi thường gặp
1. Yêu cầu phần cứng và môi trường để triển khai hệ thống là gì?
Hệ thống yêu cầu máy chủ chạy hệ điều hành Linux (Ubuntu 20.04/22.04 LTS), tối thiểu 4 vCPU, 8 GB RAM và 50 GB ổ cứng SSD để phục vụ huấn luyện định kỳ và API inference. Môi trường ứng dụng chạy trong Docker Container với Python 3.10+, Scikit-learn 1.3+ và FastAPI.
2. Mô hình xử lý bài toán mất cân bằng dữ liệu (Imbalanced Data) như thế nào?
Dữ liệu vỡ nợ thực tế chiếm tỷ lệ nhỏ (~10%). Hệ thống áp dụng kết hợp kỹ thuật điều chỉnh trọng số lớp (class_weight='balanced'), thuật toán lấy mẫu ngẫu nhiên có hoàn lại (Bootstrap) trong Random Forest, và tối ưu hóa ngưỡng phân loại (Probability Cutoff Threshold) dựa trên đường cong Precision-Recall thay vì sử dụng ngưỡng mặc định 0.5.
3. Hệ thống tích hợp với phần mềm Core Banking hiện hữu như thế nào?
Hệ thống cung cấp giao thức RESTful API chuẩn hóa định dạng JSON. Hệ thống Core Banking / LOS chỉ cần gửi request HTTP POST chứa các trường tài chính đã bóc tách từ BCTC để nhận về giá trị PD và khuyến nghị phê duyệt trong vòng dưới 20ms.
4. Chi phí và kế hoạch bảo trì, cập nhật mô hình (Model Drift) định kỳ ra sao?
Mô hình cần được đánh giá lại (Retraining) mỗi năm một lần hoặc khi có BCTC năm mới được kiểm toán. Chi phí bảo trì hạ tầng đám mây ước tính khoảng 2–5 triệu VNĐ/tháng. Việc giám sát độ trôi dữ liệu (Data Drift) được thực hiện thông qua chỉ số PSI (Population Stability Index).
5. Tại sao mô hình Random Forest lại vượt trội hơn Hồi quy Logistic truyền thống?
Hồi quy Logistic giả định mối quan hệ đơn điệu tuyến tính giữa các biến với Log-Odds. Trong thực tế khủng hoảng, rủi ro vỡ nợ biến động phi tuyến tính và có sự tương tác chéo đa chiều giữa thanh khoản, đòn bẩy và khả năng sinh lời. Random Forest bóc tách được các phân vùng quyết định phức tạp này mà không cần tiền định trước dạng hàm số.
Kết luận
Khóa luận tốt nghiệp của tác giả Trần Kim Ngân đã giải quyết thành công bài toán cấp bách về định lượng rủi ro tín dụng tại Việt Nam thông qua phương pháp học máy hiện đại. Nghiên cứu chứng minh tính ưu việt tuyệt đối của mô hình phi tham số Random Forest với độ chính xác 93.51% và độ nhạy 89.58%, giúp cắt giảm đáng kể lỗi loại 2 – nguyên nhân trực tiếp dẫn tới nợ xấu ngân hàng.
Kết quả này không chỉ mang giá trị học thuật xuất sắc cho Đại học Ngân hàng TP. Hồ Chí Minh mà còn cung cấp một công cụ ứng dụng thương mại hoàn chỉnh, hỗ trợ các NHTM Việt Nam đẩy nhanh tiến trình nội bộ hóa chuẩn mực quản trị rủi ro quốc tế Basel II/III. Quý bạn đọc, nhà nghiên cứu và các tổ chức tín dụng quan tâm có thể tiếp tục mở rộng mô hình với các thuật toán Gradient Boosting và nguồn dữ liệu vĩ mô mở rộng để xây dựng các giải pháp thẩm định tín dụng thông minh hơn trong tương lai.