Trong bối cảnh cạnh tranh khốc liệt của ngành ngân hàng hiện đại, việc hiểu rõ các yếu tố thúc đẩy hành vi của khách hàng là tối quan trọng. Các chiến dịch tiếp thị, đặc biệt là tiếp thị qua điện thoại, đòi hỏi chi phí lớn về thời gian và nhân lực. Do đó, việc tối ưu hóa các chiến dịch này bằng cách xác định các phân khúc khách hàng tiềm năng nhất sẽ mang lại lợi ích kinh tế đáng kể.
Báo cáo này sử dụng bộ dữ liệu “Bank Marketing” từ kho lưu trữ UCI,
ghi lại kết quả của các chiến dịch tiếp thị qua điện thoại của một ngân
hàng Bồ Đào Nha. Nghiên cứu này tập trung vào việc phân tích tác động
của ba biến nhân khẩu học và xã hội cơ bản: tình trạng hôn nhân
(marital), trình độ học vấn
(education), và tình trạng sở hữu nhà ở
(housing) lên hai hành vi tài chính quan
trọng:
Quyết định gửi tiền tiết kiệm có kỳ hạn
(deposit).
Việc có một khoản vay nợ cá nhân
(loan).
Bộ dữ liệu “Bank Marketing” được thu thập từ các chiến dịch tiếp thị qua điện thoại của một ngân hàng Bồ Đào Nha. Dưới đây là mô tả các biến có trong bộ dữ liệu gốc.
| STT | Tên biến | Mô tả |
|---|---|---|
| 1 | age | Tuổi của khách hàng |
| 2 | job | Nghề nghiệp |
| 3 | marital | Tình trạng hôn nhân |
| 4 | education | Trình độ học vấn |
| 5 | default | Có vỡ nợ tín dụng không |
| 6 | balance | Số dư tài khoản trung bình (euro) |
| 7 | housing | Có khoản vay mua nhà không |
| 8 | loan | Có khoản vay cá nhân không |
| 9 | contact | Hình thức liên lạc |
| 10 | day | Ngày cuối cùng liên lạc |
| 11 | month | Tháng cuối cùng liên lạc |
| 12 | duration | Thời lượng cuộc gọi cuối cùng (giây) |
| 13 | campaign | Số lần liên lạc trong chiến dịch này |
| 14 | pdays | Số ngày kể từ lần liên lạc cuối ở chiến dịch trước (-1: chưa từng) |
| 15 | previous | Số lần liên lạc trước chiến dịch này |
| 16 | poutcome | Kết quả của chiến dịch trước |
| 17 | deposit | Khách hàng có gửi tiền tiết kiệm không |
Để có được cái nhìn tổng quan và bước đầu đánh giá tính phù hợp của
tập dữ liệu với mục tiêu nghiên cứu, ta tiến hành kiểm tra cấu trúc của
bộ dữ liệu bằng cách sử dụng hai hàm cơ bản trong R là
dim() và str().
dim() cho biết kích thước của bảng dữ liệu, cụ thể
là số hàng (quan sát) và số cột (biến).## [1] 11162 17
Bộ dữ liệu có 11.162 quan sát và 17 biến.
str() cung cấp thông tin về cấu trúc dữ liệu, bao
gồm tên các biến, kiểu dữ liệu của từng biến (ví dụ: số, chuỗi ký tự,
biến phân loại), cũng như một số giá trị minh họa cho mỗi biến.## 'data.frame': 11162 obs. of 17 variables:
## $ age : int 59 56 41 55 54 42 56 60 37 28 ...
## $ job : chr "admin." "admin." "technician" "services" ...
## $ marital : chr "married" "married" "married" "married" ...
## $ education: chr "secondary" "secondary" "secondary" "secondary" ...
## $ default : chr "no" "no" "no" "no" ...
## $ balance : int 2343 45 1270 2476 184 0 830 545 1 5090 ...
## $ housing : chr "yes" "no" "yes" "yes" ...
## $ loan : chr "no" "no" "no" "no" ...
## $ contact : chr "unknown" "unknown" "unknown" "unknown" ...
## $ day : int 5 5 5 5 5 5 6 6 6 6 ...
## $ month : chr "may" "may" "may" "may" ...
## $ duration : int 1042 1467 1389 579 673 562 1201 1030 608 1297 ...
## $ campaign : int 1 1 1 1 2 2 1 1 1 3 ...
## $ pdays : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ previous : int 0 0 0 0 0 0 0 0 0 0 ...
## $ poutcome : chr "unknown" "unknown" "unknown" "unknown" ...
## $ deposit : chr "yes" "yes" "yes" "yes" ...
Nhận xét: Dữ liệu bao gồm các biến dạng số
(int) và ký tự (chr). Các biến ký tự cần được
xử lý và chuyển đổi sang dạng factor để phục vụ cho các
phân tích thống kê.
Trong bộ dữ liệu này, giá trị bị thiếu được biểu diễn dưới dạng chuỗi
ký tự "unknown". Việc xử lý các giá trị này là bước quan
trọng để đảm bảo tính toàn vẹn của phân tích. Chúng ta sẽ xử lý chúng
bằng cách thay thế bằng giá trị xuất hiện nhiều nhất (mode) cho các biến
phân loại.
# Hàm tìm mode
get_mode <- function(v) {
uniqv <- unique(v[v != "unknown"])
uniqv[which.max(tabulate(match(v[v != "unknown"], uniqv)))]
}
# Đổi tên biến y cho dễ hiểu
bank_df <- bank_data
# Thay thế "unknown" bằng mode cho các cột cần thiết
cols_to_impute <- c("job", "education", "contact")
for (col in cols_to_impute) {
mode_val <- get_mode(bank_df[[col]])
bank_df[[col]][bank_df[[col]] == "unknown"] <- mode_val
}
# Đếm lại tổng số NA trong toàn bộ data frame để xác nhận
final_na_count <- sum(is.na(cols_to_impute))
cat("Tổng số giá trị NA còn lại trong bộ dữ liệu:", final_na_count, "\n")## Tổng số giá trị NA còn lại trong bộ dữ liệu: 0
Để R hiểu đúng các biến là biến định tính, chúng ta chuyển đổi tất cả
các cột đã chọn sang kiểu factor.
Bộ dữ liệu gốc bao gồm nhiều biến, tuy nhiên, nghiên cứu này sẽ chỉ tập trung vào các biến liên quan trực tiếp đến câu hỏi nghiên cứu.
| Tên biến | Mô tả |
|---|---|
| marital | Tình trạng hôn nhân (married, single, divorced) |
| education | Trình độ học vấn (primary, secondary, tertiary, unknown) |
| housing | Có khoản vay mua nhà không (yes, no) |
| deposit | Khách hàng có gửi tiền tiết kiệm không (yes, no) |
| loan | Có khoản vay cá nhân không (yes, no) |
# Lấy các cột cần thiết cho báo cáo này
analysis_df <- bank_df %>%
select(marital, education, housing, deposit, loan)
# Chuyển đổi sang factor
analysis_df <- analysis_df %>%
mutate(across(everything(), as.factor))
# Kiểm tra lại cấu trúc sau khi chuyển đổi
str(analysis_df)## 'data.frame': 11162 obs. of 5 variables:
## $ marital : Factor w/ 3 levels "divorced","married",..: 2 2 2 2 2 3 2 1 2 3 ...
## $ education: Factor w/ 3 levels "primary","secondary",..: 2 2 2 2 3 3 3 2 2 2 ...
## $ housing : Factor w/ 2 levels "no","yes": 2 1 2 2 1 2 2 2 2 2 ...
## $ deposit : Factor w/ 2 levels "no","yes": 2 2 2 2 2 2 2 2 2 2 ...
## $ loan : Factor w/ 2 levels "no","yes": 1 1 1 1 1 2 2 1 1 1 ...
Kết luận: Sau các bước trên, dữ liệu đã được làm sạch và chuẩn hóa kiểu dữ liệu, sẵn sàng cho việc phân tích.
Trước khi đi sâu vào phân tích mối quan hệ phức tạp giữa các biến, bước đầu tiên và quan trọng nhất là hiểu rõ đặc điểm của từng biến một cách riêng lẻ. Phân tích đơn biến (Univariate Analysis) cho phép chúng ta khám phá sự phân bố, các xu hướng trung tâm và các đặc điểm cơ bản của dữ liệu. Việc này cung cấp một nền tảng vững chắc, giúp phát hiện các vấn đề tiềm ẩn như dữ liệu mất cân bằng và định hình các giả thuyết ban đầu cho các bước phân tích sâu hơn.
Trong phần này, chúng ta sẽ lần lượt xem xét sự phân bố của các biến phụ thuộc và các biến độc lập đã được lựa chọn cho nghiên cứu.
Biến phụ thuộc là các biến kết quả mà chúng ta muốn tìm hiểu hoặc dự
đoán. Trong nghiên cứu này, có hai biến phụ thuộc chính là
deposit (quyết định gửi tiền) và loan (tình
trạng vay cá nhân).
deposit)Biến deposit là biến mục tiêu cốt lõi của chiến dịch
tiếp thị. Nó cho biết liệu một khách hàng có đồng ý gửi tiền tiết kiệm
có kỳ hạn hay không sau cuộc gọi. Việc hiểu rõ sự phân bố của biến này
là cực kỳ quan trọng để đánh giá mức độ thành công tổng thể của chiến
dịch và xác định mức độ mất cân bằng của dữ liệu.
Bảng thống kê tần số và tần suất
analysis_df <- analysis_df %>%
mutate(deposit_full = recode(deposit, "no" = "Không đồng ý","yes" = "Đồng ý"))
deposit_summary <- analysis_df %>%
count(deposit_full) %>%
mutate(percentage = n / sum(n)) %>%
arrange(desc(n))
kable(deposit_summary, col.names = c("Quyết định gửi tiền", "Tần số", "Tần suất"), digits = 2, caption = "Thống kê tần suất cho biến Deposit") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center")| Quyết định gửi tiền | Tần số | Tần suất |
|---|---|---|
| Không đồng ý | 5873 | 0.53 |
| Đồng ý | 5289 | 0.47 |
Trực quan hoá
deposit_df <- analysis_df %>%
count(deposit) %>%
mutate(perc = n / sum(n),
label = scales::percent(perc, accuracy = 0.1))
# Vẽ biểu đồ tròn
ggplot(deposit_df, aes(x = "", y = perc, fill = deposit)) +
geom_bar(stat = "identity", width = 1, color = "white") +
coord_polar("y") +
geom_text(aes(label = label), position = position_stack(vjust = 0.5)) +
labs(title = "Phân bố quyết định gửi tiền", fill = "Quyết định gửi tiền") +
theme_void()Nhận xét: Kết quả phân tích cho thấy có 5.873 khách hàng (52.6%) từ chối gửi tiền tiết kiệm và có 5,289 khách hàng (47.4%) đồng ý. Mặc dù chênh lệch không quá lớn, nhưng nhóm từ chối gửi tiền vẫn chiếm tỷ lệ cao hơn. Điều này cho thấy việc thuyết phục khách hàng gửi tiền vẫn còn là một thách thức, và cần được xem xét kỹ lưỡng khi phân tích hành vi khách hàng hoặc xây dựng các mô hình dự đoán hành vi trong tương lai.
loan)Biến loan cung cấp thông tin về một hành vi tài chính
quan trọng khác của khách hàng. Phân tích biến này giúp chúng ta hiểu rõ
hơn về gánh nặng tài chính và đặc điểm tín dụng của mẫu khách hàng.
Bảng thống kê tần số và tần suất
analysis_df <- analysis_df %>%
mutate(loan_full = recode(loan, "no" = "Không","yes" = "Có"))
loan_summary <- analysis_df %>%
count(loan_full) %>%
mutate(percentage = n / sum(n)) %>%
arrange(desc(n))
kable(loan_summary, col.names = c("Vay cá nhân", "Tần số", "Tần suất"), digits = 2, caption = "Thống kê tần suất cho biến Loan") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center")| Vay cá nhân | Tần số | Tần suất |
|---|---|---|
| Không | 9702 | 0.87 |
| Có | 1460 | 0.13 |
Trực quan hoá
loan_df <- analysis_df %>%
count(loan) %>%
mutate(
perc = n / sum(n),
label = scales::percent(perc, accuracy = 0.1)
)
# Vẽ biểu đồ tròn
ggplot(loan_df, aes(x = "", y = perc, fill = loan)) +
geom_bar(stat = "identity", width = 1, color = "white") +
coord_polar("y") +
geom_text(aes(label = label), position = position_stack(vjust = 0.5)) +
labs(title = "Tình trạng vay cá nhân", fill = "Vay nợ cá nhân") +
theme_void()Nhận xét: Phần lớn khách hàng trong bộ dữ liệu không có khoản vay cá nhân nào (86.9%). Chỉ có khoản 13.1% khách hàng đang có một khoản vay. Điều này cho thấy nhóm khách hàng của ngân hàng này nhìn chung không có xu hướng lạm dụng các khoản vay cá nhân.
Chúng ta sẽ tiếp tục khám phá đặc điểm của ba biến độc lập chính:
marital, education, và
housing.
marital)Bảng thống kê tần số và tần suất
analysis_df <- analysis_df %>%
mutate(marital_full = recode(marital, "married" = "Đã kết hôn","single" = "Độc thân", "divorced" = "Đã ly hôn"))
marital_summary <- analysis_df %>%
count(marital_full) %>%
mutate(percentage = n / sum(n)) %>%
arrange(desc(n))
kable(marital_summary, col.names = c("Tình trạng hôn nhân", "Tần số", "Tần suất"), digits = 2, caption = "Phân bố tình trạng hôn nhân") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center")| Tình trạng hôn nhân | Tần số | Tần suất |
|---|---|---|
| Đã kết hôn | 6351 | 0.57 |
| Độc thân | 3518 | 0.32 |
| Đã ly hôn | 1293 | 0.12 |
Trực quan hoá
p_marital <- ggplot(analysis_df, aes(x = marital, fill = marital)) +
geom_bar() +
labs(title = "Phân bố tình trạng hôn nhân", x = "Tình trạng", y = "Số lượng", fill = "Tình trạng") +
geom_text(stat='count', aes(label=..count..), vjust=-0.5, size = 2.5)+
theme_minimal(base_size = 8)+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
marital_df <- analysis_df %>%
count(marital) %>%
mutate(perc = n / sum(n),
label = scales::percent(perc, accuracy = 0.1))
p_marital_pie <- ggplot(marital_df, aes(x = "", y = perc, fill = marital)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = label), position = position_stack(vjust = 0.6), size = 1.8) +
labs(title = "Tình trạng hôn nhân", fill = "Tình trạng")+
theme_minimal(base_size = 8)
p_marital + p_marital_pie
Nhận xét: Đa số khách hàng trong bộ dữ liệu đã kết hôn,
chiếm 56.9% tổng số. Nhóm khách hàng độc thân chiếm khoảng 31.5% và nhóm
khách hàng đã ly hôn chiếm tỷ lệ ít nhất là 11.6%. Cấu trúc nhân khẩu
học này cho thấy đối tượng khách hàng chủ yếu của ngân hàng là những
người đã có gia đình ổn định.
education)Bảng thống kê tần số và tần suất
analysis_df <- analysis_df %>%
mutate(educa_full = recode(education, "primary" = "Tiểu học","secondary" = "Trung học", "tertiary" = "Đại học"))
education_summary <- analysis_df %>%
count(educa_full) %>%
mutate(percentage = n / sum(n)) %>%
arrange(desc(n))
kable(education_summary, col.names = c("Trình độ học vấn", "Tần số", "Tần suất"), digits = 2, caption = "Thống kê tần suất cho biến education") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center")| Trình độ học vấn | Tần số | Tần suất |
|---|---|---|
| Trung học | 5973 | 0.54 |
| Đại học | 3689 | 0.33 |
| Tiểu học | 1500 | 0.13 |
Trực quan hoá
p_educa <- ggplot(analysis_df, aes(x = education, fill = education)) +
geom_bar() +
labs(title = "Phân bố trình độ học vấn", x = "Bậc học", y = "Số lượng", fill = "Bậc học") +
geom_text(stat='count', aes(label=..count..), vjust=-0.5, size = 2.5)+
theme_minimal(base_size = 8)+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
educa_df <- analysis_df %>%
count(education) %>%
mutate(perc = n / sum(n),
label = scales::percent(perc, accuracy = 0.1))
p_educa_pie <- ggplot(educa_df, aes(x = "", y = perc, fill = education)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = label), position = position_stack(vjust = 0.6), size = 1.8) +
labs(title = "Trình độ học vấn", fill = "Bậc học")+
theme_minimal(base_size = 8)
p_educa + p_educa_pie
Nhận xét: Nhóm khách hàng có trình độ học vấn là bậc
trung học là phổ biến nhất, chiếm hơn một nửa số lượng quan sát (53.5%).
Nhóm khách hàng có trình độ đại học đứng thứ hai (33.0%) và nhóm khách
hàng có trình độ tiểu học chiếm tỷ lệ thấp nhất (13.4%).
housing)Bảng thống kê tần số và tần suất
analysis_df <- analysis_df %>%
mutate(house_full = recode(housing, "yes" = "Có","no" = "Không"))
housing_summary <- analysis_df %>%
count(house_full) %>%
mutate(percentage = n / sum(n)) %>%
arrange(desc(n))
kable(housing_summary, col.names = c("Vay mua nhà", "Tần số", "Tần suất"), digits = 2, caption = "Phân bố tình trạng vay mua nhà") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "center")| Vay mua nhà | Tần số | Tần suất |
|---|---|---|
| Không | 5881 | 0.53 |
| Có | 5281 | 0.47 |
Trực quan hoá
house_df <- analysis_df %>%
count(housing) %>%
mutate(
perc = n / sum(n),
label = scales::percent(perc, accuracy = 0.1)
)
# Vẽ biểu đồ tròn
ggplot(house_df, aes(x = "", y = perc, fill = housing)) +
geom_bar(stat = "identity", width = 1, color = "white") +
coord_polar("y") +
geom_text(aes(label = label), position = position_stack(vjust = 0.5)) +
labs(title = "Tình trạng vay mua nhà", fill = "Vay mua nhà") +
theme_void()
Nhận xét: Nhóm khách hàng có vay mua nhà chiếm đa số
với 52.7% và nhóm khách hàng không vay chiếm 47.3%. Điều này cho thấy
một phần lớn khách hàng của ngân hàng đang có một cam kết tài chính dài
hạn.
Phần này sử dụng các phương pháp thống kê suy luận để ước lượng khoảng tin cậy và kiểm định các giả thuyết về tỷ lệ trong tổng thể dựa trên dữ liệu mẫu.
deposit và hạng mục quan tâm:
yesChúng ta kiểm định giả thuyết liệu tỷ lệ khách hàng gửi tiền trong tổng thể có khác 50% hay không. Bài toán kiểm định:
\[ \begin{cases} H_0 : p = 0.45 \quad (\text{Tỷ lệ tiền gửi bằng 45%}) \\ H_1: p \neq 0.45 \quad (\text{Tỷ lệ tiền gửi khác 45%}) \end{cases} \]
deposit_yes_count <- sum(analysis_df$deposit == "yes")
total_count <- nrow(analysis_df)
prop_test_result_deposit <- prop.test(deposit_yes_count, total_count, p = 0.45)
prop_test_result_deposit##
## 1-sample proportions test with continuity correction
##
## data: deposit_yes_count out of total_count, null probability 0.45
## X-squared = 25.535, df = 1, p-value = 4.344e-07
## alternative hypothesis: true p is not equal to 0.45
## 95 percent confidence interval:
## 0.4645427 0.4831551
## sample estimates:
## p
## 0.4738398
Kết luận: Với p-value < 4.344e-07 (nhỏ hơn mức ý nghĩa α = 0.05), bác bỏ giả thuyết H₀. Tỷ lệ thực tế của việc gửi tiền khác 45%. Khoảng tin cậy 95% cho tỷ lệ này là từ 46.45% đến 48.32%.
loan và hạng mục quan tâm:
yesTương tự, chúng ta kiểm định cho tỷ lệ khách hàng có vay cá nhân. Bài toán kiểm định: \[ \begin{cases} H_0 : p = 0.1 \quad (\text{Tỷ lệ vay cá nhân bằng 10%}) \\ H_1: p \neq 0.1 \quad (\text{Tỷ lệ vay cá nhân khác 10%}) \end{cases} \]
loan_yes_count <- sum(analysis_df$loan == "yes")
prop_test_result_loan <- prop.test(loan_yes_count, total_count, p = 0.1)
prop_test_result_loan##
## 1-sample proportions test with continuity correction
##
## data: loan_yes_count out of total_count, null probability 0.1
## X-squared = 117.32, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.1
## 95 percent confidence interval:
## 0.1246287 0.1372291
## sample estimates:
## p
## 0.1308009
Kết luận: Với p-value < 2.2e-16, chúng ta bác bỏ H₀. Khoảng tin cậy 95% cho tỷ lệ khách hàng có vay cá nhân trong tổng thể là từ 12.46% đến 13.72%.
Trong phần này, chúng ta sẽ tiến hành phân tích mối quan hệ giữa hai biến phụ thuộc là deposit (quyết định gửi tiền) và loan (khoản vay cá nhân) với từng biến độc lập bao gồm marital (tình trạng hôn nhân), education (trình độ học vấn) và housing (tình trạng vay mua nhà).
Phương pháp phân tích được sử dụng:
Bảng tần số chéo (Contingency Table): Được sử dụng để trình bày số lượng quan sát trong từng nhóm kết hợp giữa biến phụ thuộc và biến độc lập. Đây là công cụ nền tảng để hiểu sự phân bố dữ liệu theo từng nhóm và là tiền đề để áp dụng các kiểm định thống kê.
Trực quan hóa dữ liệu (Data Visualization): Sử dụng biểu đồ cột nhóm (grouped bar chart) để thể hiện sự khác biệt trong lựa chọn hoặc hành vi của khách hàng theo từng nhóm biến độc lập. Biểu đồ giúp người đọc dễ dàng hình dung và so sánh sự chênh lệch giữa các nhóm.
Kiểm định Chi-bình phương (Chi-square test - χ²): Đây là công cụ thống kê chính để kiểm tra mức độ độc lập giữa hai biến phân loại. Cụ thể, kiểm định này được sử dụng để xác định xem liệu sự phân bố của một biến phụ thuộc có bị ảnh hưởng bởi giá trị của biến độc lập hay không.
Giả thuyết H₀: Không có mối quan hệ giữa hai biến (chúng độc lập với nhau).
Giả thuyết H₁: Có mối quan hệ giữa hai biến (chúng không độc lập).
Việc sử dụng kiểm định này cho phép chúng ta đưa ra kết luận mang tính thống kê về sự tồn tại của mối quan hệ giữa các nhóm khách hàng theo từng đặc điểm xã hội – kinh tế (tình trạng hôn nhân, học vấn, vay mua nhà) và hành vi tài chính (gửi tiền, vay tiền).
Ý nghĩa của p-value:
Nếu P-value < 0.05: Bác bỏ giả thuyết H₀, kết luận rằng có mối liên hệ thống kê có ý nghĩa giữa hai biến.
Nếu P-value ≥ 0.05: Không đủ bằng chứng để bác bỏ H₀, tức là không có mối liên hệ rõ ràng giữa hai biến trong dữ liệu.
Việc kết hợp cả mô tả bằng bảng, biểu đồ trực quan và kiểm định thống kê sẽ giúp phân tích trở nên toàn diện hơn, cung cấp cả cái nhìn định lượng và định tính, đồng thời củng cố mức độ tin cậy cho các kết luận được rút ra.
Câu hỏi nghiên cứu: Tình trạng hôn nhân ảnh hưởng như thế nào đến khả năng khách hàng gửi tiền tiết kiệm?
Bảng tần số chéo và trực quan hóa
# Bảng tần số
tbl_marital_deposit <- table(analysis_df$marital_full, analysis_df$deposit_full)
kable(tbl_marital_deposit, caption = "Bảng tần số chéo giữa Marital và Deposit") %>% kable_styling(full_width = F)| Không đồng ý | Đồng ý | |
|---|---|---|
| Đã ly hôn | 671 | 622 |
| Đã kết hôn | 3596 | 2755 |
| Độc thân | 1606 | 1912 |
# Trực quan hóa
ggplot(analysis_df, aes(x = marital, fill = deposit)) +
geom_bar(position = "dodge") +
geom_text(stat = "count",
aes(label = ..count..),
position = position_dodge(width = 1),
vjust = -0.3) + # đẩy số lên trên đầu cột
labs(y = "Số lượng", title = "Quyết định gửi tiền theo tình trạng hôn nhân") +
theme_minimal()Nhận xét:
Nhóm khách hàng đã kết hôn chiếm tỷ lệ không đồng ý gửi tiền cao nhất (3596 người) trong tổng số, cho thấy họ có xu hướng thận trọng hơn trong việc tham gia gửi tiền so với nhóm còn lại.
Ở nhóm độc thân, số lượng khách hàng đồng ý gửi tiền (1912) vượt qua số khách không đồng ý (1606), cho thấy tình trạng độc thân có thể liên quan đến mức độ sẵn sàng chấp nhận rủi ro cao hơn hoặc linh hoạt hơn trong quyết định tài chính.
Với 671 khách không đồng ý và 622 khách đồng ý, nhóm khách hàng đã ly hôn có sự phân bố khá đồng đều giữa hai lựa chọn, phản ánh thái độ trung lập hoặc phân hóa rõ rệt trong quyết định gửi tiền của nhóm này.
Kiểm định Chi-bình phương (Chi-squared Test)
Bài toán kiểm định: \[ \begin{cases} H_0: \text{Tình trạng hôn nhân và quyết định gửi tiền là độc lập.}\\ H_1: \text{Tình trạng hôn nhân và quyết định gửi tiền có mối quan hệ với nhau.} \end{cases} \]
##
## Pearson's Chi-squared test
##
## data: tbl_marital_deposit
## X-squared = 109.58, df = 2, p-value < 2.2e-16
Nhận xét: Giá trị p-value rất nhỏ (< 2.2e-16), bác bỏ H₀ và kết luận rằng có mối liên hệ có ý nghĩa thống kê giữa tình trạng hôn nhân và quyết định gửi tiền.
Câu hỏi nghiên cứu: Trình độ học vấn ảnh hưởng như thế nào đến khả năng khách hàng gửi tiền tiết kiệm?
tbl_edu_deposit <- table(analysis_df$educa_full, analysis_df$deposit_full)
kable(tbl_edu_deposit, caption = "Bảng tần số chéo giữa Education và Deposit") %>% kable_styling(full_width = F)| Không đồng ý | Đồng ý | |
|---|---|---|
| Tiểu học | 909 | 591 |
| Trung học | 3271 | 2702 |
| Đại học | 1693 | 1996 |
ggplot(analysis_df, aes(x = education, fill = deposit)) +
geom_bar(position = "dodge") +
geom_text(stat = "count",
aes(label = ..count..),
position = position_dodge(width = 1),
vjust = -0.3) + # đẩy số lên trên đầu cột
labs(y = "Số lượng", title = "Quyết định gửi tiền theo trình độ học vấn")+
scale_y_continuous(labels = scales::percent) + theme_minimal()Nhận xét:
Trong nhóm khách hàng có trình độ đại học, số người đồng ý gửi tiền (1996 người) cao hơn số không đồng ý (1693 người). Điều này cho thấy nhóm khách hàng có học vấn cao thường có niềm tin lớn hơn vào sản phẩm gửi tiền, có thể do hiểu biết tốt hơn về lợi ích tài chính.
Nhóm khách hàng có trình độ trung học chiếm tỷ lệ lớn nhất trong tổng thể khách hàng, số lượng khách từ chối gửi tiền (3271 người) cao hơn số đồng ý (2702 người). Điều này phản ánh rằng khách hàng trình độ trung học có thể chưa thực sự tin tưởng hoặc chưa thấy rõ lợi ích của việc gửi tiền.
Trong nhóm khách hàng có trình độ tiểu học, chỉ có 591 người đồng ý gửi tiền trong khi có 909 người từ chối. Điều này cho thấy trình độ học vấn thấp có thể là rào cản trong việc tiếp cận và tin tưởng các dịch vụ tài chính, dẫn đến tỷ lệ gửi tiền thấp hơn rõ rệt.
Kiểm định Chi-bình phương (Chi-squared Test)
Bài toán kiểm định: \[ \begin{cases} H_0: \text{Trình độ học vấn và quyết định gửi tiền là độc lập.}\\ H_1: \text{Trình độ học vấn và quyết định gửi tiền có mối quan hệ với nhau.} \end{cases} \]
##
## Pearson's Chi-squared test
##
## data: tbl_edu_deposit
## X-squared = 116.27, df = 2, p-value < 2.2e-16
Nhận xét: Trình độ học vấn có liên quan mật thiết đến quyết định gửi tiền của khách hàng, với p-value < 2.2e-16.
Câu hỏi nghiên cứu: Việc có khoản vay mua nhà ảnh hưởng thế nào đến khả năng gửi tiền?
tbl_housing_deposit <- table(analysis_df$house_full, analysis_df$deposit_full)
kable(tbl_housing_deposit, caption = "Bảng tần số chéo giữa Housing và Deposit") %>% kable_styling(full_width = F)| Không đồng ý | Đồng ý | |
|---|---|---|
| Không | 2527 | 3354 |
| Có | 3346 | 1935 |
ggplot(analysis_df, aes(x = housing, fill = deposit)) +
geom_bar(position = "dodge") +
geom_text(stat = "count",
aes(label = ..count..),
position = position_dodge(width = 1),
vjust = -0.3) + # đẩy số lên trên đầu cột
labs(y = "Số lượng", title = "Quyết định gửi tiền dựa trên tình trạng vay mua nhà") + theme_minimal()Nhận xét:
Trong nhóm không vay mua nhà, số lượng khách hàng đồng ý gửi tiền (3354 người) vượt khá xa số không đồng ý (2527 người). Điều này cho thấy rằng khách hàng không có gánh nặng tài chính thường có khả năng tài chính dư dả hơn để tham gia các sản phẩm gửi tiền.
Ở nhóm có khoản vay mua nhà, số lượng khách hàng từ chối gửi tiền (3346 người) cao hơn nhiều so với người đồng ý gửi tiền (1935 người). Điều này phản ánh rằng những khách hàng đang gánh khoản nợ vay có thể ưu tiên trả nợ hơn là gửi tiết kiệm, dẫn đến tỷ lệ gửi tiền thấp.
Sự khác biệt rõ rệt về hành vi gửi tiền giữa hai nhóm cho thấy tình trạng tài chính cá nhân (cụ thể là khoản vay mua nhà) có ảnh hưởng đáng kể đến quyết định tài chính của khách hàng. Khách hàng vay mua nhà có xu hướng thận trọng hơn và ít tham gia gửi tiền.
Kiểm định Chi-bình phương (Chi-squared Test)
Bài toán kiểm định: \[ \begin{cases} H_0: \text{Vay mua nhà và quyết định gửi tiền là độc lập.}\\ H_1: \text{Vay mua nhà và quyết định gửi tiền có mối quan hệ với nhau.} \end{cases} \]
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tbl_housing_deposit
## X-squared = 463.19, df = 1, p-value < 2.2e-16
Nhận xét: Giá trị p-value < 2.2e-16, tình trạng vay mua nhà và quyết định gửi tiền của khách hàng có mối quan hệ với nhau.
Câu hỏi nghiên cứu: Liệu có sự khác biệt có ý nghĩa thống kê về tỷ lệ có khoản vay cá nhân giữa các nhóm khách hàng có tình trạng hôn nhân khác nhau (độc thân, đã kết hôn, đã ly hôn) hay không?
tbl_marital_loan <- table(analysis_df$marital_full, analysis_df$loan_full)
kable(tbl_marital_loan, caption = "Bảng tần số chéo giữa Marital và Loan") %>% kable_styling(full_width = F)| Không | Có | |
|---|---|---|
| Đã ly hôn | 1092 | 201 |
| Đã kết hôn | 5438 | 913 |
| Độc thân | 3172 | 346 |
ggplot(analysis_df, aes(x = marital, fill = loan)) +
geom_bar(position = "dodge") +
geom_text(stat = "count",
aes(label = ..count..),
position = position_dodge(width = 1),
vjust = -0.3) + # đẩy số lên trên đầu cột
labs(y = "Số lượng", title = "Vay cá nhân theo tình trạng hôn nhân") + theme_minimal()Nhận xét:
Trong cả ba nhóm khách hàng (đã ly hôn, đã kết hôn, độc thân), số lượng khách hàng không vay cá nhân đều chiếm tỷ trọng cao hơn so với nhóm có vay.
Nhóm khách hàng đã kết hôn có số người vay cá nhân cao nhất (913 người) so với các nhóm còn lại. Điều này có thể phản ánh nhu cầu tài chính cao hơn của các hộ gia đình.
Tỷ lệ vay cá nhân thấp nhất thuộc về nhóm khách hàng đã ly hôn (chỉ 201 người).
Kiểm định Chi-bình phương (Chi-squared Test)
Bài toán kiểm định: \[ \begin{cases} H_0: \text{Tình trạng hôn nhân và khoản vay cá nhân là độc lập.}\\ H_1: \text{Tình trạng hôn nhân và khoản vay cá nhân có mối quan hệ với nhau.} \end{cases} \]
##
## Pearson's Chi-squared test
##
## data: tbl_marital_loan
## X-squared = 48.87, df = 2, p-value = 2.443e-11
Nhận xét: Giá trị p-value = 2.443e-11, tình trạng hôn nhân và khoản vay cá nhân của khách hàng có mối quan hệ với nhau.
Câu hỏi nghiên cứu: Trình độ học vấn của khách hàng có phải là một yếu tố tác động có ý nghĩa thống kê đến khả năng họ có một khoản vay cá nhân hay không?
tbl_edu_loan <- table(analysis_df$educa_full, analysis_df$loan_full)
kable(tbl_edu_loan, caption = "Bảng tần số chéo giữa Education và Loan") %>% kable_styling(full_width = F)| Không | Có | |
|---|---|---|
| Tiểu học | 1295 | 205 |
| Trung học | 5081 | 892 |
| Đại học | 3326 | 363 |
ggplot(analysis_df, aes(x = education, fill = loan)) +
geom_bar(position = "dodge") +
geom_text(stat = "count",
aes(label = ..count..),
position = position_dodge(width = 1),
vjust = -0.3) + # đẩy số lên trên đầu cột
labs(y = "Số lượng", title = "Vay cá nhân theo trình độ học vấn") + theme_minimal()Nhận xét:
Khách hàng có trình độ trung học chiếm số lượng lớn nhất cả trong nhóm có vay (892 người) và không vay (5081 người).
Đáng chú ý, nhóm có trình độ đại học (tertiary) có số lượng vay thấp nhất (363 người), thấp hơn cả nhóm tiểu học.
Có thể thấy rằng khách hàng có trình độ học vấn cao hơn chưa chắc có xu hướng vay cá nhân nhiều hơn, điều này phản ánh rằng quyết định vay có thể phụ thuộc vào nhiều yếu tố khác (thu nhập, độ tuổi, rủi ro, mức độ hiểu biết tài chính…).
Kiểm định Chi-bình phương (Chi-squared Test)
Bài toán kiểm định: \[ \begin{cases} H_0: \text{Trình độ học vấn và khoản vay cá nhân là độc lập.}\\ H_1: \text{Trình độ học vấn và khoản vay cá nhân có mối quan hệ với nhau.} \end{cases} \]
##
## Pearson's Chi-squared test
##
## data: tbl_edu_loan
## X-squared = 52.571, df = 2, p-value = 3.841e-12
Nhận xét: Giá trị p-value = 3.841e-12 < 0.05. Có một mối liên hệ có ý nghĩa thống kê giữa trình độ học vấn và việc vay nợ cá nhân.
Câu hỏi nghiên cứu: Việc một khách hàng đã có một khoản vay mua nhà ảnh hưởng như thế nào đến khả năng họ có thêm một khoản vay cá nhân?
tbl_housing_loan <- table(analysis_df$house_full, analysis_df$loan_full)
kable(tbl_housing_loan, caption = "Bảng tần số chéo giữa Housing và Loan") %>% kable_styling(full_width = F)| Không | Có | |
|---|---|---|
| Không | 5256 | 625 |
| Có | 4446 | 835 |
ggplot(analysis_df, aes(x = housing, fill = loan)) +
geom_bar(position = "dodge") +
geom_text(stat = "count",
aes(label = ..count..),
position = position_dodge(width = 1),
vjust = -0.3) + # đẩy số lên trên đầu cột
labs(y = "Số lượng", title = "Vay cá nhân theo tình trạng vay mua nhà") + theme_minimal()Nhận xét:
Trong cả hai nhóm có khoản vay mua nhà và không có khoản vay mua nhà, số lượng khách hàng không vay cá nhân vẫn chiếm tỷ trọng lớn.
Tuy nhiên, nhóm đã có khoản vay mua nhà lại có số người vay cá nhân cao hơn (835 người) so với nhóm không vay mua nhà (625 người).
Điều này gợi ý rằng những người đã vay mua nhà có thể có xu hướng tiếp tục vay thêm, có thể do nhu cầu tài chính tiếp diễn hoặc do họ đã quen thuộc với việc sử dụng sản phẩm tín dụng.
Kiểm định Chi-bình phương (Chi-squared Test)
Bài toán kiểm định: \[ \begin{cases} H_0: \text{Vay mua nhà và khoản vay cá nhân là độc lập.}\\ H_1: \text{Vay mua nhà và khoản vay cá nhân có mối quan hệ với nhau.} \end{cases} \]
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tbl_housing_loan
## X-squared = 65.313, df = 1, p-value = 6.389e-16
Nhận xét: Giá trị p-value = 6.389e-16 < 0.05. Có một mối liên hệ có ý nghĩa thống kê giữa vay mua nhà và việc vay nợ cá nhân.
Relative Risk (RR) hay còn gọi là tỷ số nguy cơ, dùng để so sánh tương đối xác suất xảy ra sự kiện giữa hai nhóm.
Với bảng 2x2:
| Có sự kiện (Yes) | Không có sự kiện (No) | Tổng | |
|---|---|---|---|
| Nhóm A | a | b | a + b |
| Nhóm B | c | d | c + d |
Tỷ lệ trong nhóm A: \(p_1 = \frac{a}{a + b}\)
Tỷ lệ trong nhóm B: \(p_2 = \frac{c}{c + d}\)
\[ RR = \frac{p_1}{p_2} = \frac{a / (a + b)}{c / (c + d)} \]
Ý nghĩa:
RR > 1: Nguy cơ xảy ra sự kiện cao hơn trong nhóm A so với nhóm B.
RR < 1: Nguy cơ xảy ra sự kiện thấp hơn trong nhóm A.
RR = 1: Không có sự khác biệt về nguy cơ giữa hai nhóm.
Ví dụ: Nếu RR = 2, thì nhóm A có nguy cơ gấp 2 lần so với nhóm B.
Ưu điểm:
Trực quan, phù hợp với nghiên cứu đoàn hệ và thử nghiệm lâm sàng.
Có thể kết hợp với khoảng tin cậy (confidence interval) để đánh giá độ tin cậy của kết quả.
Hạn chế:
Không áp dụng được cho nghiên cứu bệnh-chứng (vì không biết tổng thể thực tế).
Dễ bị hiểu nhầm nếu không kèm theo tỷ lệ thực tế.
Để đánh giá mối liên hệ giữa việc có vay mua nhà và khả năng đồng ý
gửi tiền, ta tiến hành tính rủi ro tương đối (RR) dựa trên bảng tần suất
giữa hai biến housing và deposit.
## $data
##
## Không đồng ý Đồng ý Total
## Không 2527 3354 5881
## Có 3346 1935 5281
## Total 5873 5289 11162
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Không 1.0000000 NA NA
## Có 0.6424701 0.6161482 0.6699165
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Không NA NA NA
## Có 0 1.13602e-103 6.456025e-103
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét bảng tần suất:
Trong 5881 người không vay nhà, có 3354 người đồng ý gửi tiền (tỷ lệ: 3354/5881 ≈ 57.0%).
Trong 5281 người có vay nhà, chỉ có 1935 người đồng ý gửi tiền (tỷ lệ: 1935/5281 ≈ 36.6%).
Diễn giải kết quả Relative Risk:
RR = 0.642: Điều này có nghĩa là xác suất một khách
hàng đồng ý gửi tiền khi họ có khoản vay mua nhà chỉ bằng 64.2% so với
khi họ không có khoản vay mua nhà. Nói cách khác, việc có khoản vay mua
nhà làm giảm khoảng 35.8% (1 - 0.642) khả năng khách hàng đó tham gia
gửi tiền tiết kiệm.
Mối liên hệ này rất đáng tin cậy về mặt thống kê. Khoảng tin cậy 95% cho RR nằm hoàn toàn dưới 1 (từ 0.616 đến 0.670), và giá trị p-value cực kỳ nhỏ (gần bằng 0). Điều này khẳng định rằng sự khác biệt quan sát được không phải do ngẫu nhiên, mà phản ánh một mối liên hệ thực sự giữa tình trạng nợ mua nhà và hành vi gửi tiết kiệm.
Để đánh giá mối liên hệ giữa việc có vay mua nhà và khoản vay cá nhân
của khách hàng, ta tiến hành tính rủi ro tương đối (RR) dựa trên bảng
tần suất giữa hai biến housing và loan.
## $data
##
## Không Có Total
## Không 5256 625 5881
## Có 4446 835 5281
## Total 9702 1460 11162
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Không 1.000000 NA NA
## Có 1.487789 1.35055 1.638975
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Không NA NA NA
## Có 4.440892e-16 5.940185e-16 5.071326e-16
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Nhận xét bảng tần suất:
Trong 5881 người không vay nhà, có 625 người có vay cá nhân (tỷ lệ: 625/5881 ≈ 10.6%).
Trong 5281 người có vay nhà, có 835 người có vay cá nhân (tỷ lệ: 835/5281 ≈ 15.8%).
Diễn giải kết quả Relative Risk:
`RR = 1.488: Điều này có nghĩa là xác suất một khách
hàng có khoản vay cá nhân khi họ đã có khoản vay mua nhà cao hơn gần 1.5
lần so với khi họ không có khoản vay mua nhà. Nói cách khác, việc đã có
vay mua nhà liên quan đến việc tăng khoảng 48.8% khả năng có thêm một
khoản vay cá nhân.
1.488. Điều này có nghĩa là xác suất một khách hàng có khoản vay cá nhân khi họ đã có khoản vay mua nhà cao hơn gần 1.5 lần so với khi họ không có khoản vay mua nhà. Nói cách khác, việc đã có vay mua nhà liên quan đến việc tăng khoảng 48.8% khả năng có thêm một khoản vay cá nhân.
Odds Ratio (OR) hay tỷ số chênh là một phép đo so sánh “tỷ lệ cược” (odds) giữa hai nhóm.
Tỷ lệ cược (odds) là gì?
Tỷ lệ cược là tỷ số giữa xác suất xảy ra sự kiện và xác suất không xảy ra sự kiện:
\[ \text{Odds} = \frac{p}{1 - p} \]
Công thức OR:
Với bảng 2x2 như trên:
Odds ở nhóm A: \(\frac{a}{b}\)
Odds ở nhóm B: \(\frac{c}{d}\)
\[ OR = \frac{a/b}{c/d} = \frac{ad}{bc} \]
Ý nghĩa:
OR > 1: Nhóm A có “cược” xảy ra sự kiện cao hơn nhóm B.
OR < 1: Nhóm A có “cược” thấp hơn.
OR = 1: Không có sự khác biệt về odds giữa hai nhóm.
Ví dụ: Nếu OR = 4, thì nhóm A có khả năng xảy ra sự kiện gấp 4 lần theo tỷ lệ cược so với nhóm B.
Ưu điểm:
Bắt buộc sử dụng trong nghiên cứu bệnh-chứng, nơi không thể biết tổng số thực tế (ví dụ khi chọn bệnh nhân có bệnh và đối chứng).
OR có thể ước lượng RR khi tỷ lệ sự kiện hiếm (hiện tượng rare disease assumption).
Hạn chế:
Khó diễn giải trực tiếp như RR.
Khi tỷ lệ sự kiện cao, OR có thể phóng đại mức độ rủi ro so với RR.
## odds ratio with 95% C.I.
## estimate lower upper
## Không 1.0000000 NA NA
## Có 0.4357097 0.4037622 0.470185
Trong đó:
Nhóm tham chiếu: Nhóm “Không” có khoản vay mua nhà được dùng làm mốc so sánh, với OR bằng 1.
Giá trị estimate (0.4357): Đây là Odds Ratio (OR) của nhóm “Có” khoản vay mua nhà so với nhóm “Không”.
Diễn giải kết quả OR:
Tỷ lệ chênh (odds) của việc một khách hàng đồng ý gửi tiền tiết kiệm khi họ có khoản vay mua nhà chỉ bằng 0.436 lần (tức 43.6%) so với tỷ lệ chênh của một khách hàng không có khoản vay mua nhà.
Nói cách khác: Việc có một khoản vay mua nhà làm giảm 56.4% (tính bằng 1 - 0.436) tỷ lệ chênh của việc gửi tiền. Đây là một tác động tiêu cực rất lớn.
Khoảng tin cậy 95% [0.404, 0.470]: Chúng ta có thể tin tưởng 95% rằng OR thực sự trong tổng thể nằm trong khoảng này. Vì khoảng tin cậy hoàn toàn nằm dưới 1 và không chứa 1, chúng ta có thể khẳng định tác động tiêu cực này là có ý nghĩa thống kê cao.
## odds ratio with 95% C.I.
## estimate lower upper
## Không 1.000000 NA NA
## Có 1.579401 1.413335 1.76498
Trong đó:
Nhóm tham chiếu: Nhóm “Không” có khoản vay mua nhà vẫn là mốc so sánh (OR = 1).
Giá trị estimate (1.5794): Đây là Odds Ratio (OR) của nhóm “Có” khoản vay mua nhà so với nhóm “Không”, nhưng lần này là cho hành vi “có vay cá nhân”.
Diễn giải kết quả OR:
Tỷ lệ chênh (odds) của việc một khách hàng có một khoản vay cá nhân khi họ cũng có khoản vay mua nhà cao hơn 1.58 lần so với một khách hàng không có khoản vay mua nhà.
Nói cách khác: Việc có một khoản vay mua nhà liên quan đến việc tăng 58% (tính bằng 1.58 - 1) tỷ lệ chênh của việc có thêm một khoản vay cá nhân. Đây là một tác động tích cực.
Khoảng tin cậy 95% [1.413, 1.765]: Khoảng tin cậy này hoàn toàn nằm trên 1, một lần nữa khẳng định rằng tác động tích cực này là có ý nghĩa thống kê cao.
Mô hình hồi quy logistic (Logistic Regression) là một công cụ thống kê được sử dụng phổ biến để phân tích mối quan hệ giữa một biến phụ thuộc dạng nhị phân (nhận giá trị 0 hoặc 1) và một hoặc nhiều biến độc lập có thể là định lượng hoặc định tính. Không giống như hồi quy tuyến tính cổ điển, mô hình logistic không dự đoán trực tiếp giá trị của biến phụ thuộc mà ước lượng xác suất xảy ra của một sự kiện, thông qua việc sử dụng một hàm liên kết phi tuyến gọi là hàm logit.
Cụ thể, mô hình logistic xây dựng mối quan hệ giữa xác suất xảy ra sự kiện \(p = \text{P(Y = 1 | X)}\) và các biến giải thích \(X_1, X_2,\ldots, X_k\) bằng công thức:
\[ \log\left(\frac{p}{1 - p}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k \]
Trong đó:
\(\beta\) là hệ số ước lượng,
\(X\) là biến độc lập,
\(p\) là xác suất để sự kiện xảy ra, với
\[ p = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \dots + \beta_kX_k)}} \]
Biểu thức bên trái gọi là hàm logit, đại diện cho logarit tự nhiên của odds – tỷ lệ xảy ra sự kiện so với không xảy ra. Phương trình này cho phép mô hình hóa xác suất xảy ra của biến phụ thuộc trong khoảng từ 0 đến 1, một cách phù hợp về mặt toán học và thực tiễn.
Phương pháp ước lượng các tham số \(\beta\) trong mô hình logistic thường được thực hiện thông qua phương pháp ước lượng hợp lý tối đa (Maximum Likelihood Estimation – MLE), nhằm tìm ra bộ tham số tốt nhất để tối đa hóa khả năng xảy ra của mẫu quan sát đã cho. Một ưu điểm đáng chú ý của mô hình logistic là khả năng diễn giải hệ số hồi quy dưới dạng Tỷ số chênh (Odds Ratio – OR), cho phép người phân tích hiểu được mức độ ảnh hưởng của từng biến độc lập đối với xác suất xảy ra sự kiện. Bên cạnh đó, mô hình logistic còn là nền tảng của nhiều phương pháp phân loại phức tạp hơn trong học máy như hồi quy logistic đa thức, hồi quy logistic có điều chuẩn (regularization), hoặc mô hình hồi quy tổng quát (Generalized Linear Model – GLM).
depositMô hình Logit:
\[ \log\left(\frac{\text{P(deposit = 'yes')}}{\text{1 - P(deposit = 'yes')}}\right) = \beta_0 + \beta_1\text{ marital} + \beta_2\text{ education} + \beta_3\text{ housing} \]
# Model cho Deposit
logit_deposit <- glm(deposit ~ marital + education + housing, data = analysis_df, family = binomial(link = "logit"))
summary(logit_deposit)##
## Call:
## glm(formula = deposit ~ marital + education + housing, family = binomial(link = "logit"),
## data = analysis_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.06225 0.07750 0.803 0.42188
## maritalmarried -0.19043 0.06255 -3.044 0.00233 **
## maritalsingle 0.17773 0.06696 2.654 0.00795 **
## educationsecondary 0.20570 0.06068 3.390 0.00070 ***
## educationtertiary 0.44563 0.06459 6.900 5.21e-12 ***
## housingyes -0.79964 0.03928 -20.355 < 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: 14824 on 11156 degrees of freedom
## AIC: 14836
##
## Number of Fisher Scoring iterations: 4
Diễn giải kết quả:
Nhóm tham chiếu (Reference Group): R tự động chọn nhóm đầu tiên theo thứ tự bảng chữ cái làm tham chiếu. Trong trường hợp này là: marital=‘divorced’, education=‘primary’, housing=‘no’. Tất cả các so sánh đều dựa trên các nhóm này.
maritalmarried (-0.190): So với người đã ly hôn,
người đã kết hôn có log-odds gửi tiền thấp hơn 0.19. Đây là tác động
tiêu cực.
maritalsingle (0.178): So với người đã ly hôn, người
độc thân có log-odds gửi tiền cao hơn 0.178. Đây là tác động tích
cực.
educationsecondary (0.206): So với người có học vấn
tiểu học, người có học vấn trung học có log-odds gửi tiền cao hơn
0.206.
educationtertiary (0.446): So với người có học vấn
tiểu học, người có học vấn đại học/cao đẳng có log-odds gửi tiền cao hơn
0.446. Đây là tác động tích cực mạnh nhất trong nhóm học vấn.
housingyes (-0.799): So với người không vay mua nhà,
người có vay mua nhà có log-odds gửi tiền thấp hơn rất nhiều, tới 0.8.
Đây là tác động tiêu cực mạnh nhất trong tất cả các biến.
Độ phù hợp của mô hình:
Null deviance (15443): Đo lường độ lỗi của một mô
hình “rỗng” (chỉ có hệ số chặn, không có biến độc lập nào).
Residual deviance (14824): Đo lường độ lỗi của mô
hình hiện tại của bạn. Giá trị này nhỏ hơn Null deviance cho thấy mô
hình của bạn giải thích dữ liệu tốt hơn mô hình rỗng.
AIC (14836): Là một chỉ số để so sánh các mô hình
khác nhau. Giá trị AIC càng thấp thì mô hình càng tốt (cân bằng giữa độ
phức tạp và độ phù hợp).
loanMô hình Logit:
\[ \log\left(\frac{\text{P(loan = 'yes')}}{\text{1 - P(loan = 'yes')}}\right) = \beta_0 + \beta_1\text{ marital} + \beta_2\text{ education} + \beta_3\text{ housing} \]
# Model cho Loan
logit_loan <- glm(loan ~ marital + education + housing, data = analysis_df, family = binomial(link = "logit"))
summary(logit_loan)##
## Call:
## glm(formula = loan ~ marital + education + housing, family = binomial(link = "logit"),
## data = analysis_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.93074 0.10878 -17.750 < 2e-16 ***
## maritalmarried -0.09654 0.08511 -1.134 0.2566
## maritalsingle -0.48306 0.09622 -5.020 5.15e-07 ***
## educationsecondary 0.15836 0.08438 1.877 0.0606 .
## educationtertiary -0.23577 0.09489 -2.485 0.0130 *
## housingyes 0.40569 0.05721 7.091 1.33e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8659.6 on 11161 degrees of freedom
## Residual deviance: 8511.2 on 11156 degrees of freedom
## AIC: 8523.2
##
## Number of Fisher Scoring iterations: 5
Diễn giải kết quả:
Nhóm tham chiếu: marital = “divorced”,
education = “primary”, housing =
“no”.
maritalmarried (-0.096): So với người đã ly hôn,
người đã kết hôn có log-odds vay tiền thấp hơn 0.096. Tuy nhiên, giá trị
p = 0.2566, cho thấy không có ý nghĩa thống kê.
maritalsingle (-0.483): So với người đã ly hôn,
người độc thân có log-odds vay tiền thấp hơn 0.483. Đây là một tác động
tiêu cực rõ rệt, có ý nghĩa thống kê cao (p < 0.001).
educationsecondary (0.154): So với người có học vấn
tiểu học, người có học vấn trung học có log-odds vay tiền cao hơn 0.154.
P-value = 0.0606, gần mức ý nghĩa 0.05 → có thể xem là gần có ý nghĩa
thống kê.
educationtertiary (-0.236): So với người có học vấn
tiểu học, người có học vấn đại học/cao đẳng có log-odds vay tiền thấp
hơn 0.236. Đây là tác động tiêu cực, có ý nghĩa thống kê ở mức 0.05 (p =
0.013).
housingyes (0.406): So với người không có vay mua
nhà, người có vay mua nhà có log-odds vay tiền cao hơn 0.406. Đây là
biến có tác động mạnh nhất và có ý nghĩa thống kê rất cao (p <
0.001).
Độ phù hợp của mô hình:
Null deviance = 8659.6: Là sai số của mô hình “rỗng”
(chỉ có hệ số chặn).
Residual deviance = 8511.2: Là sai số của mô hình
hiện tại. Vì thấp hơn so với Null deviance, nên mô hình giải thích tốt
hơn mô hình rỗng.
AIC = 8523.2: Thấp cho thấy mô hình có mức độ phù
hợp khá tốt (AIC càng thấp càng tốt).
Mô hình hồi quy Probit là một trong những phương pháp kinh điển được sử dụng trong các phân tích định lượng khi biến phụ thuộc là biến định tính. Mô hình này đặc biệt phù hợp khi mục tiêu là ước lượng xác suất xảy ra của một hiện tượng nhất định, đồng thời đảm bảo xác suất thu được luôn nằm trong khoảng từ 0 đến 1. Điểm khác biệt cơ bản giữa Probit và các mô hình hồi quy tuyến tính là Probit không dự đoán trực tiếp biến phụ thuộc, mà dựa vào một biến tiềm ẩn (latent variable) và sử dụng hàm phân phối tích lũy chuẩn để mô hình hóa mối quan hệ giữa xác suất và các biến giải thích.
Trong mô hình Probit nhị phân – dạng phổ biến nhất – giả định rằng tồn tại một biến liên tục tiềm ẩn \(Y^*\) được xác định bởi: \[ \Phi^{-1}(p) = \beta_0 + \beta_1 X_1+ \dots + \beta_k X_k + \varepsilon,\ \varepsilon \sim \mathcal{N}(0,1) \]
\(Y\) chỉ nhận giá trị 1 nếu \(\Phi^{-1}(p) > 0\) và bằng 0 nếu ngược lại. Từ đó, xác suất để \(Y\) nhận giá trị 1 là: \[ \text{P(Y = 1 | X)} = \Phi(\beta_0 + \beta_1 X_1 + \cdots + \beta_k X_k) \]
Trong đó:
\(\Phi(\cdot)\) là hàm phân phối tích lũy của phân phối chuẩn tắc,
\(\beta_1, \beta_2, \dots + \beta_k\) là các hệ số hồi quy,
\(X_1, X_2, \dots , \beta_k\) là các biến độc lập.
Ngoài mô hình Probit nhị phân, Probit còn được mở rộng cho các trường hợp biến phụ thuộc có nhiều hơn hai mức độ. Trong mô hình Probit có thứ tự (Ordered Probit), biến phụ thuộc là phân loại có thứ tự (ví dụ: mức độ hài lòng), và mô hình sử dụng các ngưỡng cắt (thresholds) để phân chia giá trị của biến tiềm ẩn thành các nhóm thứ tự cụ thể. Trong khi đó, mô hình Probit đa thức (Multinomial Probit – MNP) được áp dụng khi biến phụ thuộc là phân loại không có thứ tự, với nhiều lựa chọn (ví dụ: chọn loại phương tiện di chuyển). MNP cho phép sự tồn tại của mối tương quan giữa các sai số của các lựa chọn khác nhau – điểm mạnh mà các mô hình Logit đa thức không có được do giả định IIA.
Tóm lại, mô hình Probit là một công cụ kinh tế lượng linh hoạt và có nền tảng lý thuyết vững chắc để xử lý các vấn đề phân loại. Dù hệ số trong Probit khó diễn giải trực tiếp, nhưng mô hình này lại được đánh giá cao khi các giả định về phân phối chuẩn của sai số là hợp lý, và nó đặc biệt hữu ích trong các nghiên cứu định tính trong kinh tế học, xã hội học, y tế và nhiều lĩnh vực khác.
depositMô hình Probit: \[ \text{P(deposit = 'yes')}= \Phi(\beta_0 + \beta_1\text{ marital} + \beta_2\text{ education} + \beta_3\text{ housing}) \]
# Model cho Deposit
probit_deposit <- glm(deposit ~ marital + education + housing, data = analysis_df, family = binomial(link = "probit"))
summary(probit_deposit)##
## Call:
## glm(formula = deposit ~ marital + education + housing, family = binomial(link = "probit"),
## data = analysis_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.04024 0.04802 0.838 0.402091
## maritalmarried -0.11846 0.03879 -3.054 0.002259 **
## maritalsingle 0.10994 0.04154 2.647 0.008127 **
## educationsecondary 0.12710 0.03740 3.398 0.000678 ***
## educationtertiary 0.27589 0.03988 6.918 4.59e-12 ***
## housingyes -0.49778 0.02432 -20.466 < 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: 14824 on 11156 degrees of freedom
## AIC: 14836
##
## Number of Fisher Scoring iterations: 4
Diễn giải kết quả:
marital =
“divorced”, education = “primary”, housing =
“no”. Tất cả các so sánh đều dựa trên các nhóm này.Giải thích hệ số:
maritalmarried (-0.11846): So với người đã ly hôn,
người đã kết hôn có log-odds gửi tiền thấp hơn 0.118. Đây là tác động
tiêu cực có ý nghĩa thống kê (p < 0.01).
maritalsingle (0.10994): So với người đã ly hôn,
người độc thân có log-odds gửi tiền cao hơn 0.11. Đây là tác động tích
cực có ý nghĩa thống kê (p < 0.01).
educationsecondary (0.12710): So với người có học
vấn tiểu học, người học trung học có log-odds gửi tiền cao hơn 0.127.
Tác động tích cực và có ý nghĩa thống kê mạnh (p < 0.001).
educationtertiary (0.27589): So với người học tiểu
học, người học đại học/cao đẳng có log-odds gửi tiền cao hơn 0.276. Đây
là tác động tích cực mạnh nhất trong nhóm học vấn (p <
0.001).
housingyes (-0.49778): So với người không vay mua
nhà, người có vay mua nhà có log-odds gửi tiền thấp hơn gần 0.5. Đây là
tác động tiêu cực mạnh nhất trong tất cả các biến (p <
0.001).
Độ phù hợp của mô hình:
Null deviance = 15443: Đo lường độ lỗi của một mô
hình “rỗng” (chỉ có hệ số chặn, không có biến độc lập nào).
Residual deviance = 14824: Giảm, cho thấy mô hình
giải thích dữ liệu tốt hơn mô hình rỗng.
AIC = 14836: Cho thấy mô hình có chất lượng khá tốt
(AIC càng thấp càng tốt).
loanMô hình Probit: \[ \text{P(loan = 'yes')}= \Phi(\beta_0 + \beta_1\text{ marital} + \beta_2\text{ education} + \beta_3\text{ housing}) \]
# Model cho Loan
probit_loan <- glm(loan ~ marital + education + housing, data = analysis_df, family = binomial(link = "probit"))
summary(probit_loan)##
## Call:
## glm(formula = loan ~ marital + education + housing, family = binomial(link = "probit"),
## data = analysis_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.13534 0.05888 -19.283 < 2e-16 ***
## maritalmarried -0.05570 0.04671 -1.193 0.2330
## maritalsingle -0.25710 0.05169 -4.974 6.55e-07 ***
## educationsecondary 0.08521 0.04564 1.867 0.0619 .
## educationtertiary -0.12734 0.05037 -2.528 0.0115 *
## housingyes 0.21596 0.03054 7.072 1.53e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8659.6 on 11161 degrees of freedom
## Residual deviance: 8511.1 on 11156 degrees of freedom
## AIC: 8523.1
##
## Number of Fisher Scoring iterations: 4
Diễn giải kết quả:
Nhóm tham chiếu (Reference Group): marital = “divorced”,
education = “primary”, housing = “no”. Tất cả
các so sánh đều dựa trên các nhóm này.
Giải thích hệ số:
maritalmarried (-0.05570): So với người đã ly hôn,
người đã kết hôn có log-odds vay tiền thấp hơn 0.056. Tác động tiêu cực
nhẹ, không có ý nghĩa thống kê (p = 0.233).
maritalsingle (-0.25710): So với người đã ly hôn,
người độc thân có log-odds vay tiền thấp hơn 0.257. Tác động tiêu cực có
ý nghĩa thống kê mạnh (p < 0.001).
educationsecondary (0.08521): So với người học tiểu
học, người học trung học có log-odds vay tiền cao hơn 0.085. Tác động
tích cực, gần mức ý nghĩa thống kê (p ≈ 0.061).
educationtertiary (-0.12734): So với người học tiểu
học, người học đại học/cao đẳng có log-odds vay tiền thấp hơn 0.127. Tác
động tiêu cực có ý nghĩa thống kê (p < 0.05).
housingyes (0.21596): So với người không vay mua
nhà, người có vay mua nhà có log-odds vay tiền cao hơn 0.216. Tác động
tích cực và có ý nghĩa thống kê mạnh nhất (p < 0.001).
Độ phù hợp của mô hình:
Null deviance = 8659.6: Đo lường độ lỗi của một mô
hình “rỗng” (chỉ có hệ số chặn, không có biến độc lập nào).
Residual deviance = 8511.2: Giảm cho thấy mô hình
cải thiện đáng kể so với mô hình rỗng.
AIC = 8523.1: Mô hình có độ phù hợp tương đối
tốt.
Mô hình hồi quy Cloglog (Complementary Log-Log) là một phương pháp hồi quy tổng quát khác được sử dụng cho biến phụ thuộc nhị phân. Nó là một sự thay thế cho mô hình Logit và Probit, đặc biệt hữu ích trong các tình huống mà xác suất của sự kiện xảy ra hoặc không xảy ra tiệm cận một cách không đối xứng về 0 hoặc 1.
Điểm khác biệt cốt lõi của mô hình Cloglog nằm ở hàm liên kết
(link function) của nó, được định nghĩa là: \[ \text{cloglog}(p) = \ln(-\ln(1-p)) \]
Trong đó p là xác suất của sự kiện xảy ra (Y=1).
Tương tự như Probit, các hệ số β trong mô hình Cloglog
khó diễn giải trực tiếp. Chúng không thể được chuyển
đổi thành Tỷ số chênh (Odds Ratio) một cách đơn giản. Dấu của hệ số vẫn
cho biết hướng tác động, nhưng độ lớn của ảnh hưởng thường được đánh giá
thông qua các tác động biên (marginal effects) hoặc các chỉ số khác tùy
thuộc vào lĩnh vực ứng dụng.
depositMô hình Cloglog: \[ \ln(-\ln(1-P(\text{deposit = 'yes'}))) = \beta_0 + \beta_1\text{ marital} + \beta_2\text{ education} + \beta_3\text{ housing} \]
# Model cho Deposit
cloglog_deposit <- glm(deposit ~ marital + education + housing, data = analysis_df, family = binomial(link = "cloglog"))
summary(cloglog_deposit)##
## Call:
## glm(formula = deposit ~ marital + education + housing, family = binomial(link = "cloglog"),
## data = analysis_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.34297 0.05738 -5.977 2.27e-09 ***
## maritalmarried -0.13180 0.04546 -2.899 0.003741 **
## maritalsingle 0.12780 0.04770 2.679 0.007375 **
## educationsecondary 0.15582 0.04646 3.354 0.000796 ***
## educationtertiary 0.32561 0.04841 6.726 1.74e-11 ***
## housingyes -0.58809 0.02922 -20.129 < 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: 14827 on 11156 degrees of freedom
## AIC: 14839
##
## Number of Fisher Scoring iterations: 5
Diễn giải kết quả:
Giá trị p-value của Intercept và các biến độc lập đều rất nhỏ (p < 0.01), cho thấy các biến đưa vào mô hình là có ý nghĩa thống kê.
Ảnh hưởng của tình trạng hôn nhân (so với nhóm tham chiếu
marital = “divorced”):
Married: hệ số âm (-0.13180), có ý nghĩa (p =
0.003741), người đã kết hôn ít có khả năng gửi tiền hơn.
Single: hệ số dương (0.12780), có ý nghĩa (p =
0.007375), người độc thân có khả năng gửi tiền cao hơn.
Ảnh hưởng của trình độ học vấn ( so với nhóm tham chiếu
education = “primary”:
Secondary: hệ số dương (0.15582), có ý nghĩa mạnh (p
= 0.000796).
Tertiary: hệ số càng dương mạnh hơn (0.32561), có ý
nghĩa thống kê (p < 0.001), trình độ học vấn càng cao thì khả năng
gửi tiền càng tăng.
Ảnh hưởng của tình trạng nhà ở (housing): Housing =
“yes”: hệ số âm lớn (-0.58809), có ý nghĩa cao (p < 2e-16). Những
người có khoản vay mua nhà thì rất ít có khả năng gửi tiền vào ngân
hàng, có thể do đang chịu áp lực tài chính.
AIC = 14839: dùng để so sánh mô hình, càng thấp càng
tốt.
Null deviance giảm đáng kể sau khi thêm biến độc
lập, mô hình cải thiện đáng kể so với mô hình không có biến giải
thích.
Kết luận: Kết quả hồi quy Cloglog cho thấy các biến độc lập như tình trạng hôn nhân, trình độ học vấn và tình trạng vay mua nhà có ảnh hưởng đáng kể đến khả năng gửi tiền vào ngân hàng của khách hàng. Cụ thể, người độc thân có xu hướng gửi tiền nhiều hơn so với các nhóm khác, trong khi người đã kết hôn lại ít có khả năng gửi tiền hơn – có thể do trách nhiệm tài chính trong gia đình. Về trình độ học vấn, khách hàng có trình độ trung học và đại học lần lượt có khả năng gửi tiền cao hơn so với nhóm cơ sở, phản ánh mối quan hệ tích cực giữa mức độ học vấn và nhận thức tài chính. Ngược lại, khách hàng đang vay mua nhà lại có xu hướng không gửi tiền, có thể do thu nhập của họ đang ưu tiên cho trả nợ thay vì tiết kiệm. Tất cả các biến đều có ý nghĩa thống kê cao (p < 0.01), cho thấy mô hình có độ tin cậy tốt. Thêm vào đó, chỉ số AIC thấp và sự giảm mạnh giữa Null deviance và Residual deviance cho thấy mô hình Cloglog phù hợp để dự đoán hành vi gửi tiền.
loanMô hình Cloglog: \[ \ln(-\ln(1-P(\text{loan = 'yes'}))) = \beta_0 + \beta_1\text{ marital} + \beta_2\text{ education} + \beta_3\text{ housing} \]
# Model cho Loan
cloglog_loan <- glm(loan ~ marital + education + housing, data = analysis_df, family = binomial(link = "cloglog"))
summary(cloglog_loan)##
## Call:
## glm(formula = loan ~ marital + education + housing, family = binomial(link = "cloglog"),
## data = analysis_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.00475 0.10066 -19.916 < 2e-16 ***
## maritalmarried -0.08617 0.07809 -1.103 0.2698
## maritalsingle -0.44963 0.08924 -5.038 4.70e-07 ***
## educationsecondary 0.14671 0.07810 1.878 0.0603 .
## educationtertiary -0.21887 0.08862 -2.470 0.0135 *
## housingyes 0.37806 0.05328 7.095 1.29e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8659.6 on 11161 degrees of freedom
## Residual deviance: 8511.3 on 11156 degrees of freedom
## AIC: 8523.3
##
## Number of Fisher Scoring iterations: 5
Diễn giải kết quả:
Multinomial Logistic Regression (MLR) là một mô hình hồi quy mở rộng từ hồi quy logistic nhị phân, được sử dụng trong trường hợp biến phụ thuộc là biến định tính có từ ba phạm trù trở lên và không có thứ tự (nominal outcome). Mục tiêu của mô hình là ước lượng xác suất để một quan sát rơi vào một trong các phạm trù đó, dựa trên các biến độc lập định lượng hoặc định tính.
Trong mô hình này, một phạm trù sẽ được chọn làm phạm trù tham chiếu (reference category), và mô hình sẽ xây dựng các phương trình logit cho từng phạm trù còn lại so với phạm trù tham chiếu. Cụ thể, nếu biến phụ thuộc Y có k phạm trù, thì với mỗi phạm trù j (khác với phạm trù tham chiếu), mô hình có dạng: \[ \log\left(\frac{P(Y = j \mid X)}{P(Y = k \mid X)}\right) = \beta_{j0} + \beta_{j1}X_1 + \cdots + \beta_{jp}X_p \]
Hệ số \(\beta_{jk}\) phản ánh mức thay đổi log-odds của việc chọn mức j so với mức tham chiếu khi biến \(X_k\) tăng một đơn vị. Hàm liên kết sử dụng trong mô hình là logit tổng quát. Việc ước lượng các tham số được thực hiện thông qua phương pháp tối đa hóa hàm hợp lý (MLE).
Mô hình này giả định rằng các quan sát là độc lập với nhau và không có đa cộng tuyến nghiêm trọng giữa các biến độc lập. Ngoài ra, một giả định quan trọng khác là tính độc lập của các lựa chọn không liên quan (Independence of Irrelevant Alternatives – IIA), nghĩa là xác suất lựa chọn một mức không bị ảnh hưởng bởi sự có mặt hay vắng mặt của các mức còn lại.
Mô hình hồi quy logistic đa thức được ứng dụng phổ biến trong các nghiên cứu hành vi lựa chọn như lựa chọn phương tiện giao thông, nghề nghiệp, hoặc thương hiệu sản phẩm.
Chúng ta sẽ tạo một biến kết hợp từ deposit và
loan để phân khúc khách hàng.
# Tạo biến phụ thuộc 4 cấp độ
analysis_df <- analysis_df %>%
mutate(behavior_group = factor(paste0("D:", deposit, "_L:", loan)))
# Đặt nhóm "D:no_L:no" làm mức tham chiếu
analysis_df$behavior_group <- relevel(analysis_df$behavior_group, ref = "D:no_L:no")
# Xây dựng mô hình
multinom_model <- multinom(behavior_group ~ marital + education + housing, data = analysis_df, trace = FALSE)
multinom_model## Call:
## multinom(formula = behavior_group ~ marital + education + housing,
## data = analysis_df, trace = FALSE)
##
## Coefficients:
## (Intercept) maritalmarried maritalsingle educationsecondary
## D:no_L:yes -1.4422773 -0.1367933 -0.5511563 0.1258647
## D:yes_L:no 0.2029767 -0.2050626 0.1236109 0.1921620
## D:yes_L:yes -2.4092275 -0.3045876 -0.2032592 0.5237066
## educationtertiary housingyes
## D:no_L:yes -0.1638417 0.03760164
## D:yes_L:no 0.4324418 -0.86968373
## D:yes_L:yes 0.2774253 -0.09860231
##
## Residual Deviance: 23198.31
## AIC: 23234.31
Diễn giải: Mô hình này cho phép phân tích chi tiết
từng phân khúc. Ví dụ, so với nhóm tham chiếu, nhóm “Có gửi tiền, Không
vay” (D:yes_L:no) có khả năng cao hơn đáng kể nếu họ có học
vấn tertiary và không có khoản vay mua nhà.
Poisson Regression là một mô hình thống kê được thiết kế để phân tích các hiện tượng có bản chất là dữ liệu đếm (count data), trong đó biến phụ thuộc là số lần xảy ra của một sự kiện trong một khoảng thời gian, không gian, hoặc đơn vị quan sát nhất định. Mô hình này đặc biệt phù hợp khi các giá trị của biến phụ thuộc là các số nguyên không âm: 0, 1, 2,…
Về mặt phân phối xác suất, mô hình giả định rằng biến phụ thuộc Y tuân theo phân phối Poisson với kỳ vọng \(\lambda\), đồng thời phương sai của biến này cũng bằng \(\lambda\). Mối quan hệ giữa kỳ vọng \(\lambda\) và các biến độc lập được mô hình hóa thông qua hàm log: \[ \log(\lambda_i) = \beta_0 + \beta_1 X_{i1} + \cdots + \beta_p X_{ip} \]
Từ đó, ta có thể viết lại dạng hàm mũ như sau:
\[ \lambda_i = \exp\left(\beta_0 + \sum_{j=1}^p \beta_j X_{ij} \right) \]
Mô hình sử dụng hàm liên kết log (log-link) và các hệ số được ước lượng thông qua phương pháp tối đa hóa hàm hợp lý (Maximum Likelihood Estimation - MLE), tương tự như trong mô hình hồi quy logistic.
Một giả định quan trọng của mô hình là phương sai bằng trung bình (equidispersion). Tuy nhiên, trong thực tế, dữ liệu đếm thường xuất hiện hiện tượng quá phân tán (overdispersion) – tức là phương sai lớn hơn kỳ vọng. Trong trường hợp này, mô hình Poisson có thể đưa ra ước lượng sai lệch và không hiệu quả, do đó cần cân nhắc sử dụng các mô hình khác như Negative Binomial Regression hoặc Zero-Inflated Models.
Về mặt diễn giải, khi một biến độc lập \(X_j\) tăng một đơn vị (giữ các biến khác không đổi), thì giá trị kỳ vọng \(\lambda\) sẽ thay đổi theo một hệ số tỷ lệ là \(e^{\beta_j}\). Điều này làm cho mô hình Poisson trở nên rất hữu ích trong việc phân tích và dự báo số sự kiện xảy ra, chẳng hạn như: số lượt truy cập website, số vụ tai nạn, số ca bệnh, số lần mua hàng,…
Trong khuôn khổ báo cáo này, chúng ta không có biến phụ thuộc dạng
đếm phù hợp. Tuy nhiên, để minh họa, chúng ta sẽ sử dụng biến
campaign từ bộ dữ liệu gốc.
poisson_df <- bank_df %>% select(campaign, marital, education, housing)
poisson_model <- glm(campaign ~ marital + education + housing, data = poisson_df, family = poisson)
summary(poisson_model)##
## Call:
## glm(formula = campaign ~ marital + education + housing, family = poisson,
## data = poisson_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.92675 0.02369 39.112 < 2e-16 ***
## maritalmarried 0.06412 0.01936 3.312 0.000927 ***
## maritalsingle -0.05236 0.02102 -2.491 0.012724 *
## educationsecondary -0.04299 0.01802 -2.386 0.017031 *
## educationtertiary -0.03254 0.01933 -1.684 0.092217 .
## housingyes 0.01073 0.01205 0.890 0.373350
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 19053 on 11161 degrees of freedom
## Residual deviance: 18964 on 11156 degrees of freedom
## AIC: 47746
##
## Number of Fisher Scoring iterations: 5
Nhận xét: Các yếu tố xã hội này có tác động rất nhỏ (hệ số gần 0) và không có ý nghĩa thống kê lên số lần được liên lạc.
Học vấn là yếu tố then chốt cho việc gửi tiền: Khách hàng có trình độ học vấn càng cao, khả năng họ gửi tiền tiết kiệm càng lớn. Tuy nhiên, học vấn không ảnh hưởng đến quyết định vay nợ cá nhân.
Vay mua nhà là yếu tố chi phối mạnh mẽ: Việc có một khoản vay mua nhà làm giảm mạnh khả năng khách hàng gửi tiền tiết kiệm và cũng làm giảm mạnh khả năng họ có thêm một khoản vay cá nhân.
Tình trạng hôn nhân có tác động nhẹ đến việc gửi tiền nhưng không ảnh hưởng đến việc vay nợ cá nhân.
Mô hình Multinomial đã cung cấp một công cụ phân khúc khách hàng hiệu quả, giúp nhận diện các nhóm khách hàng với tổ hợp hành vi khác nhau, từ đó có thể đề ra các chiến lược kinh doanh phù hợp.
Phạm vi biến: Phân tích chỉ giới hạn trong 3
biến độc lập. Các yếu tố kinh tế như balance (số dư) hay
poutcome (kết quả chiến dịch trước) có thể có tác động mạnh
hơn nhưng đã được loại trừ để tập trung vào mục tiêu của báo
cáo.
Dữ liệu cắt ngang: Dữ liệu chỉ được thu thập tại một thời điểm, do đó chúng ta chỉ có thể xác định mối liên hệ chứ không thể khẳng định quan hệ nhân quả.
Xây dựng mô hình toàn diện: Kết hợp thêm các
biến kinh tế (balance, default) và các biến từ
chiến dịch trước (poutcome, pdays) để xây dựng
một mô hình dự báo có độ chính xác cao
Phân tích tương tác: Khám phá sự tương tác giữa
các biến, ví dụ: liệu tác động của education lên
deposit có khác nhau giữa nhóm có và không có vay mua nhà
hay không.
Sử dụng thuật toán Machine Learning: Áp dụng các thuật toán như Random Forest hoặc Gradient Boosting để có thể tìm ra các mối quan hệ phi tuyến tính phức tạp hơn và cải thiện khả năng dự đoán.