1. Giới Thiệu Bộ Dữ Liệu

Bộ dữ liệu này là một phần của chiến dịch tiếp thị qua điện thoại được thực hiện bởi một ngân hàng tại Bồ Đào Nha, nhằm quảng bá sản phẩm tiền gửi kỳ hạn.

Đây là một biến thể của bộ dữ liệu nổi tiếng: Bank Marketing Dataset từ Kaggle.

Số quan sát: 2,675

Số biến: 17

# Đọc dữ liệu

data <- read.csv("C:/Users/Welcome !/OneDrive - UFM/Desktop/bank1.csv")
dim(data)
## [1] 2675   17

Biến định lượng

Biến Mô tả
1. age Tuổi của khách hàng
2. balance Số dư tài khoản ngân hàng
3. day Ngày trong tháng thực hiện cuộc gọi
4. duration Thời lượng cuộc gọi cuối cùng (tính bằng giây)
5. campaign Số lần liên hệ trong chiến dịch hiện tại
6. pdays Số ngày kể từ lần liên hệ cuối
7. previous Số lần liên hệ trước đó

Biến định tính

Biến Mô tả
8. job Nghề nghiệp của khách hàng (admin., technician, services, retired, …)
9. marital Tình trạng hôn nhân (single, married, divorced)
10. education Trình độ học vấn (primary, secondary, tertiary)
11. default Có nợ xấu hay không (yes/no)
12. housing Có vay mua nhà hay không (yes/no)
13. loan Có vay tiêu dùng hay không (yes/no)
14. contact Phương thức liên hệ (cellular, telephone,)
15. month Tháng thực hiện cuộc gọi (jan, feb, mar, …, dec)
16. poutcome Kết quả chiến dịch marketing trước (success, failure, other)
17. deposit Khách hàng có đăng ký tiền gửi kỳ hạn hay không (yes/no)

#Chuyển đổi các biến cần thiết sang kiểu factor**
data[] <- lapply(data, function(x) if (is.character(x)) as.factor(x) else x)

qual_data <- data[sapply(data, is.factor)]

Hiển thị một vài dòng đầu và cuối của dữ liệu

Nhằm có được cái nhòn tổng quan về bộ dữ liệu ta sử dụng hàm head() và taid() để xem một số dòng đầu và dòng cuối của bộ dữ liệu

head(data)
##   age          job marital education default balance housing loan   contact day
## 1  42       admin.  single secondary      no    -247     yes  yes telephone  21
## 2  33     services married secondary      no    3444     yes   no telephone  21
## 3  53      retired married  tertiary      no    2269      no   no  cellular  17
## 4  37   technician married secondary      no    5115     yes   no  cellular  17
## 5  45 entrepreneur married secondary      no     781      no  yes  cellular  17
## 6  34   management  single  tertiary      no    1494     yes   no  cellular  18
##   month duration campaign pdays previous poutcome deposit
## 1   oct      519        1   166        1    other     yes
## 2   oct      144        1    91        4  failure     yes
## 3   nov     1091        2   150        1  success     yes
## 4   nov     1210        2   171        4  failure     yes
## 5   nov      652        2   126        2  failure     yes
## 6   nov      596        1   182        1    other     yes
tail(data)
##      age         job  marital education default balance housing loan  contact
## 2670  30 blue-collar   single secondary      no     971     yes   no cellular
## 2671  40 blue-collar divorced   primary      no      54     yes   no cellular
## 2672  37  management  married  tertiary      no    1594     yes   no cellular
## 2673  60     retired divorced  tertiary      no    -134      no   no cellular
## 2674  35 blue-collar  married secondary      no      80     yes  yes cellular
## 2675  43  technician  married secondary      no       0      no  yes cellular
##      day month duration campaign pdays previous poutcome deposit
## 2670  17   apr      283        1   317        2    other      no
## 2671  13   may       10        5   362        3    other      no
## 2672  17   apr      110        1   260        5  failure      no
## 2673  12   may      243        1   271        4  failure      no
## 2674  21   nov       38        2   172        2  failure      no
## 2675   8   may        9        2   172        5  failure      no

Kiểm tra giá trị thiếu

colSums(is.na(data))
##       age       job   marital education   default   balance   housing      loan 
##         0         0         0         0         0         0         0         0 
##   contact       day     month  duration  campaign     pdays  previous  poutcome 
##         0         0         0         0         0         0         0         0 
##   deposit 
##         0

Tất cả 17 biến trong bộ dữ liệu không có giá trị bị thiếu

2. Tổng quan lý thuyết các mô hình hồi quy trong GLM

2.1 Mô hình tuyến tính tổng quát (GLM – Generalized Linear Model)

Định nghĩa: GLM (Generalized Linear Model) là khung mô hình thống kê tổng quát dùng để mô hình hóa mối quan hệ giữa kỳ vọng của biến phụ thuộc \(Y_i\) và tổ hợp tuyến tính của các biến độc lập, thông qua một hàm liên kết.

Công thức tổng quát:

\[ g(\mu_i) = \eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_k x_{ki} \]

Thành phần của GLM:

  1. Hàm liên kết (Link function): Biến đổi kỳ vọng \(\mu_i\) về dạng tuyến tính.
  2. Hàm tuyến tính (Linear predictor): \(\eta_i = \beta_0 + \sum \beta_k x_k\)
  3. Phân phối cơ sở (Distribution): Thuộc họ hàm mũ (Bernoulli, Poisson, Normal…)

Khi nào sử dụng GLM:

  • Khi biến phụ thuộc không phải là biến liên tục.
  • Khi muốn mô hình hóa xác suất, tần suất hoặc dữ liệu vi phạm giả định hồi quy tuyến tính.

2.2 Hồi quy logistic (Logistic Regression)

Định nghĩa: Sử dụng khi biến phụ thuộc là nhị phân (0/1). Dùng hàm liên kết logit để mô hình hóa xác suất.

Ba thành phần:

  • Phân phối: Bernoulli
  • Hàm liên kết: \(\log\left(\frac{p_i}{1 - p_i}\right)\)
  • Hàm tuyến tính: \(\eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_k x_{ki}\)

Công thức:

\[ \log\left(\frac{p_i}{1 - p_i}\right) = \eta_i \Rightarrow p_i = \frac{\exp(\eta_i)}{1 + \exp(\eta_i)} \]

Khi nào dùng:

  • Biến phụ thuộc là nhị phân (có/không).
  • Muốn dự đoán xác suất xảy ra của một sự kiện.

2.3 Hồi quy probit (Probit Regression)

Định nghĩa: Hồi quy probit sử dụng hàm liên kết là nghịch đảo của hàm phân phối chuẩn tích lũy chuẩn tắc \(\Phi\).

Ba thành phần:

  • Phân phối: Bernoulli
  • Hàm liên kết: \(\Phi^{-1}(p_i)\)
  • Hàm tuyến tính: \(\eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_k x_{ki}\)

Công thức:

\[ \Phi^{-1}(p_i) = \eta_i \Rightarrow p_i = \Phi(\eta_i) \]

Khi nào dùng:

  • Khi sai số tuân theo phân phối chuẩn.
  • Trong các mô hình lựa chọn nhị phân có tính hành vi.

2.4 Hồi quy cloglog (Complementary Log-log)

Định nghĩa: Dùng hàm liên kết không đối xứng để mô hình hóa xác suất xảy ra của các sự kiện hiếm hoặc gần như chắc chắn.

Ba thành phần:

  • Phân phối: Bernoulli
  • Hàm liên kết: \(\log(-\log(1 - p_i))\)
  • Hàm tuyến tính: \(\eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_k x_{ki}\)

Công thức:

\[ \log(-\log(1 - p_i)) = \eta_i \Rightarrow p_i = 1 - \exp(-\exp(\eta_i)) \]

Khi nào dùng:

  • Khi sự kiện xảy ra hiếm hoặc gần như chắc chắn.
  • Mô hình hóa dữ liệu sinh tồn hoặc thời gian xảy ra sự kiện.

2.5 Hồi quy logistic đa thức (Multinomial Logistic Regression)

Định nghĩa: Mở rộng của hồi quy logistic dùng cho biến phụ thuộc có nhiều mức không có thứ tự.

Ba thành phần:

  • Phân phối: Multinomial
  • Hàm liên kết: Logit cho từng nhóm
  • Hàm tuyến tính: \(\eta_{ij} = \beta_{0j} + \beta_{1j} x_{1i} + \dots + \beta_{kj} x_{ki}\)

Công thức:

\[ \log\left(\frac{P(Y = j)}{P(Y = \text{base})}\right) = \eta_{ij}, \quad j = 1, ..., J-1 \]

Khi nào dùng:

  • Khi biến phụ thuộc có nhiều mức không có thứ tự rõ ràng (ví dụ: phương tiện đi lại).

2.6 Hồi quy logistic thứ tự (Ordinal Logistic Regression)

Định nghĩa: Sử dụng khi biến phụ thuộc có nhiều mức và có thứ tự phân cấp.

Ba thành phần:

  • Phân phối: Cumulative multinomial
  • Hàm liên kết: Cumulative logit
  • Hàm tuyến tính: Chung cho mọi mức \(\eta_i = \beta_1 x_{1i} + \dots + \beta_k x_{ki}\)

Công thức:

\[ \log\left(\frac{P(Y \leq j)}{P(Y > j)}\right) = \alpha_j - \eta_i \]

Khi nào dùng:

  • Khi biến phản hồi có nhiều mức thứ tự (như xếp hạng, đánh giá mức độ).

2.7 Hồi quy Poisson (Poisson Regression)

Định nghĩa: Dùng khi biến phụ thuộc là biến đếm, thể hiện số lần sự kiện xảy ra.

Ba thành phần:

  • Phân phối: Poisson
  • Hàm liên kết: \(\log(\mu_i)\)
  • Hàm tuyến tính: \(\eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_k x_{ki}\)

Công thức:

\[ \log(\mu_i) = \eta_i \Rightarrow \mu_i = \exp(\eta_i) \]

Khi nào dùng:

  • Dữ liệu đếm (số cuộc gọi, số sự kiện, số lần vi phạm…)

2.8 Bảng tổng hợp so sánh các mô hình GLM

Tiêu chí Logistic Probit Cloglog Multinomial Ordinal Poisson
Loại biến phụ thuộc Nhị phân (0/1) Nhị phân (0/1) Nhị phân (0/1) Đa lớp không thứ tự Đa lớp có thứ tự Biến đếm (0, 1, 2,…)
Phân phối ngầm Bernoulli Bernoulli Bernoulli Multinomial Cumulative multinomial Poisson
Hàm liên kết \(\log\left(\frac{p}{1-p} \right)\) \(\Phi^{-1}(p)\) \(\log(-\log(1 - p))\) Logit (cho từng lớp) Cumulative logit \(\log(\mu)\)
Tính đối xứng Không Không
Giải thích hệ số Odds ratio Không trực tiếp Gián tiếp Odds ratio Odds tích lũy Tỷ lệ thay đổi theo log
Khi nào dùng Sự kiện nhị phân phổ biến Giả định sai số chuẩn Sự kiện hiếm hoặc gần chắc chắn Nhiều lớp không thứ tự Nhiều lớp có thứ tự Biến đếm
Ứng dụng phổ biến Vay vốn, bệnh, spam Hành vi lựa chọn Tử vong, sự kiện hiếm Chọn phương tiện Mức độ hài lòng Số ca bệnh, số lỗi
Hàm tuyến tính Chung \(\eta_i = \beta_0 + \sum \beta_k x_{ki}\) Như logistic Như logistic Riêng từng lớp Dùng chung cho mọi mức Chung cho toàn bộ

3. Phân tích theo quyết định mở tài khoản tiền gửi có kỳ hạn

3.1 Biến deposit

# Tạo bảng tần số
freq_tabledeposit <- table(qual_data$deposit)

# Tính tỷ lệ phần trăm
percent_tabledeposit <- prop.table(freq_tabledeposit) * 100
##  :Số khách hàng có/không gửi tiền kỳ hạn hay
## 
##   no  yes 
##  889 1786
## Tỷ lệ khách hàng có/không gửi tiền kỳ hạe:
## 
##    no   yes 
## 33.23 66.77
library(ggplot2)

# Chuyển bảng tần số sang dataframe
df_deposit <- as.data.frame(table(qual_data$deposit))
colnames(df_deposit) <- c("deposit", "count")

# Vẽ biểu đồ có số liệu trên đầu cột
ggplot(df_deposit, aes(x = deposit, y = count, fill = deposit)) +
  geom_bar(stat = "identity", width = 0.6) +
  geom_text(aes(label = count), vjust = -0.5, size = 4) +
  scale_fill_manual(values = c("#006666", "#FFcccc")) +
  labs(title = "Biểu đồ cột thể hiện số khách hàng có/không gửi tiền có kỳ hạn ",
       x = "Trạng thái gửi tiền",
       y = "Số khách hàng ") +
  theme_minimal()

3.2 Ước lượng và Kiểm định Giả thuyết cho Tỷ lệ

\[ \begin{cases} H_0: \text{Tỷ lệ khách hàng đồng ý mở tiền gửi kỳ hạn là 12% },p = 0.12 \\ H_1: \text{Tỷ lệ khách hàng đồng ý mở tiền kỳ hạn gửi khác 12%},p \ne 0.12 \end{cases} \]

# Tạo bảng tần số cho biến deposit
freq_tabledeposit <- table(qual_data$deposit)

# Lấy số lượng khách hàng trả lời "yes"
n_yes <- freq_tabledeposit["yes"]
n_total <- sum(freq_tabledeposit)

# Thực hiện ước lượng khoảng tin cậy 95% cho tỷ lệ "yes"
prop.test(x = n_yes, n = n_total, p = 0.12, conf.level = 0.95, correct = FALSE)
## 
##  1-sample proportions test without continuity correction
## 
## data:  n_yes out of n_total, null probability 0.12
## X-squared = 7597.8, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.12
## 95 percent confidence interval:
##  0.6495837 0.6852626
## sample estimates:
##         p 
## 0.6676636

Kết quả kiểm định cho thấy:

Giá trị thống kê kiểm định (Chi-squared): X-squared = 7597.8

Bậc tự do: df = 1

Giá trị p (p-value): < 2.2e-16, tức là gần bằng 0

Khoảng tin cậy 95% cho tỷ lệ thực tế: từ 0.6496 đến 0.6853

Ước lượng tỷ lệ mẫu thực tế (p̂): 0.6677 (≈ 66.8%)

Vì p-value rất nhỏ (< 0.05) → bác bỏ giả thuyết H₀.

Do đó, kết luận rằng tỷ lệ khách hàng đồng ý mở tiền gửi kỳ hạn khác 12%.

Thực tế, tỷ lệ khách hàng mở tiền gửi theo mẫu là khoảng 66.8%, cao hơn rất nhiều so với giả thuyết 12%.

3.3 Tác động của quyết định vay mua nhà(housing) đến quyết định đăng ký tiền gửi của khách hàng(deposit)

# Tạo bảng tần số thể hiện tác động của việc vay mua nhà đến quyết định đăng ký tiền gửi của khách hàng
table_housing_deposit <- table(qual_data$housing, qual_data$deposit)

# Gán nhãn rõ ràng cho hàng và cột
rownames(table_housing_deposit) <- c("Không vay mua nhà", "Có vay mua nhà")
colnames(table_housing_deposit) <- c("Không gửi tiền kỳ hạn", "Có gửi tiền kỳ hạn")
##  Bảng tần số chéo thể hiện tác động của việc vay mua nhà đến quyết định đăng ký tiền gửi của khách hàng:
##                    
##                     Không gửi tiền kỳ hạn Có gửi tiền kỳ hạn
##   Không vay mua nhà                   282               1166
##   Có vay mua nhà                      607                620
# Tính tỷ lệ phần trăm theo hàng
prop_housing_deposit <- prop.table(table_housing_deposit, margin = 1)

cat("Tỷ lệ phần trăm đăng ký tiền gửi theo từng nhóm khách hàng (theo tình trạng vay mua nhà):\n")
## Tỷ lệ phần trăm đăng ký tiền gửi theo từng nhóm khách hàng (theo tình trạng vay mua nhà):
print(round(prop_housing_deposit * 100, 2))
##                    
##                     Không gửi tiền kỳ hạn Có gửi tiền kỳ hạn
##   Không vay mua nhà                 19.48              80.52
##   Có vay mua nhà                    49.47              50.53
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Tạo bảng dữ liệu tần số giữa housing và deposit
df_bar <- as.data.frame(table(qual_data$housing, qual_data$deposit))
colnames(df_bar) <- c("housing", "deposit", "count")

# Gắn nhãn rõ ràng cho các biến
df_bar$housing <- factor(df_bar$housing,
                         levels = c("no", "yes"),
                         labels = c("Không vay mua nhà", "Có vay mua nhà"))

df_bar$deposit <- factor(df_bar$deposit,
                         levels = c("no", "yes"),
                         labels = c("Không gửi tiền kỳ hạn", "Có gửi tiền kỳ hạn"))

# Tính vị trí để đặt nhãn số liệu trên cột chồng
df_bar <- df_bar %>%
  group_by(housing) %>%
  mutate(position = cumsum(count) - count / 2)

# Vẽ biểu đồ cột chồng với nhãn số
ggplot(df_bar, aes(x = housing, y = count, fill = deposit)) +
  geom_bar(stat = "identity") +
  geom_text(aes(y = position, label = count), color = "black", size = 4) +
  labs(
    title = "Tác động của vay mua nhà đến quyết định gửi tiền kỳ hạn",
    x = "Tình trạng vay mua nhà",
    y = "Số lượng khách hàng",
    fill = "Tình trạng gửi tiền kỳ hạn"
  ) +
  theme_minimal(base_size = 13)

3.3.1 Ước lượng hiệu tỷ lệ và kiểm định giả thuyết

Trong đó:

p1 là tỷ lệ khách hàng mở tiền gửi trong nhóm không vay mua nhà

𝑝2 là tỷ lệ khách hàng mở tiền gửi trong nhóm có đang vay mua nhà \[ \begin{cases} H_0: \text{Tỷ lệ khách hàng đồng ý mở tiền gửi trong nhóm có vay mua nhà bằng với tỷ lệ khách hàng đồng ý mở tiền gửi trong nhóm không vay mua nhà. },p1 = p2 \\ H_1: \text{Tỷ lệ khách hàng đồng ý mở tiền gửi trong hai nhóm khác nhau.},p1 \ne p2 \end{cases} \]

# Lấy số lượng khách hàng có deposit = "yes" trong từng nhóm housing
x1 <- table_housing_deposit["Có vay mua nhà", "Có gửi tiền kỳ hạn"]     # Nhóm có vay mua nhà
n1 <- sum(table_housing_deposit["Có vay mua nhà", ])               # Tổng số nhóm housing = yes

x2 <- table_housing_deposit["Không vay mua nhà", "Có gửi tiền kỳ hạn"]      # Nhóm không vay mua nhà
n2 <- sum(table_housing_deposit["Không vay mua nhà", ])                # Tổng số nhóm housing = no

# Thực hiện kiểm định 2 tỷ lệ
prop.test(x = c(x1, x2), n = c(n1, n2), correct = FALSE)
## 
##  2-sample test for equality of proportions without continuity correction
## 
## data:  c(x1, x2) out of c(n1, n2)
## X-squared = 269.31, df = 1, p-value < 2.2e-16
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  -0.3345726 -0.2653296
## sample estimates:
##    prop 1    prop 2 
## 0.5052975 0.8052486

Kết quả kiểm định tỷ lệ cho hai nhóm cho thấy p-value < 0.05, do đó bác bỏ giả thuyết H₀. Có bằng chứng thống kê cho thấy tỷ lệ khách hàng đồng ý mở tiền gửi kỳ hạn khác nhau giữa nhóm có vay mua nhà và nhóm không vay. Cụ thể, tỷ lệ ở nhóm có vay nhà là 80.5%, cao hơn đáng kể so với nhóm không vay là 50.5%. Khoảng tin cậy 95% cho hiệu số tỷ lệ nằm trong khoảng từ -33.5% đến -26.5%.

3.3.2 Bài toán kiểm định độc lập giữa hai biến

\[ \begin{cases} H_0: \text{Hai biến housing và deposit độc lập với nhau. } \\ H_1: \text{Hai biến housing và deposit không độc lập.} \end{cases} \]

# Tạo bảng chéo tần số giữa hai biến housing và deposit
table_hd <- table(qual_data$housing, qual_data$deposit)

# Thực hiện kiểm định chi bình phương kiểm tra độc lập
chisq.test(table_hd)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table_hd
## X-squared = 267.96, df = 1, p-value < 2.2e-16

Hiệu chỉnh Yates: một sự điều chỉnh trong kiểm định Chi bình phương để cải thiện độ chính xác khi mẫu nhỏ.

Sau khi thực hiện kiểm định Chi bình phương với hiệu chỉnh Yates để kiểm tra mối quan hệ giữa hai biến định tính là housing (khách hàng có vay mua nhà hay không) và deposit (khách hàng có đồng ý mở tiền gửi kỳ hạn hay không), ta thu được kết quả như sau:

Giá trị thống kê Chi-squared: 433.38

Bậc tự do: 1

Giá trị p-value: nhỏ hơn 2.2e-16 (≈ 0) ta bác bỏ giả thuyết H₀.

Hai biến housing và deposit không độc lập với nhau.

Nói cách khác, tình trạng vay mua nhà của khách hàng có ảnh hưởng đến quyết định gửi tiền có kỳ hạn. Khách hàng không vay mua nhà có xu hướng gửi tiền kỳ hạn nhiều hơn so với nhóm khách hàng có vay.

3.3.3 Relative Risk

Risk Ratio (RR) hay còn gọi là tỷ số rủi ro, dùng để so sánh xác suất xảy ra một sự kiện giữa hai nhóm.

Sự kiện quan tâm: Khách hàng đồng ý gửi tiền kỳ hạn (deposit = yes)

Hai nhóm so sánh:

Nhóm 1 (nhóm tham chiếu): Khách hàng không vay mua nhà (housing = no)

Nhóm 2: Khách hàng có vay mua nhà (housing = yes)

# Tải thư viện cần thiết
library(epitools)

# 1. Tạo bảng chéo giữa biến housing và deposit
tbl <- table(qual_data$housing, qual_data$deposit)

# 2. Đặt tên rõ ràng cho hàng và cột
rownames(tbl) <- c("Không vay mua nhà", "Có vay mua nhà")
colnames(tbl) <- c("Không gửi tiền kỳ hạn", "Có gửi tiền kỳ hạn")

# 3. Tính Risk Ratio (RR)
cat("\nKết quả Risk Ratio:\n")
## 
## Kết quả Risk Ratio:
rr_result <- riskratio(tbl)
print(rr_result)
## $data
##                    
##                     Không gửi tiền kỳ hạn Có gửi tiền kỳ hạn Total
##   Không vay mua nhà                   282               1166  1448
##   Có vay mua nhà                      607                620  1227
##   Total                               889               1786  2675
## 
## $measure
##                    risk ratio with 95% C.I.
##                      estimate     lower     upper
##   Không vay mua nhà 1.0000000        NA        NA
##   Có vay mua nhà    0.6275049 0.5904403 0.6668963
## 
## $p.value
##                    two-sided
##                     midp.exact fisher.exact   chi.square
##   Không vay mua nhà         NA           NA           NA
##   Có vay mua nhà             0 4.403729e-61 1.603195e-60
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

\[ \text{RR} = \frac{620/1227}{1166/1448} = 0.6275049 \] Ý nghĩa RR = 0.6275049 :

Khách hàng có vay mua nhà chỉ có khả năng mở tiền gửi kỳ hạn bằng khoảng 62.75% so với khách hàng không vay mua nhà. Điều này cho thấy: việc đang vay mua nhà có thể làm giảm xác suất khách hàng đăng ký tiền gửi kỳ hạn.


Sự kiện quan tâm: Khách hàng đồng ý gửi tiền kỳ hạn (deposit = yes)

Hai nhóm so sánh:

Nhóm 1 (nhóm tham chiếu):Khách hàng có vay mua nhà (housing = yes)

Nhóm 2: Khách hàng không vay mua nhà (housing = no)

# Sắp xếp lại để 'housing = yes' nằm trên → trở thành nhóm tham chiếu
tbl1 <- tbl[c("Có vay mua nhà", "Không vay mua nhà"), ]

# Tính Risk Ratio với nhóm tham chiếu là 'housing = ye
 riskratio(tbl1)
## $data
##                    
##                     Không gửi tiền kỳ hạn Có gửi tiền kỳ hạn Total
##   Có vay mua nhà                      607                620  1227
##   Không vay mua nhà                   282               1166  1448
##   Total                               889               1786  2675
## 
## $measure
##                    risk ratio with 95% C.I.
##                     estimate    lower    upper
##   Có vay mua nhà    1.000000       NA       NA
##   Không vay mua nhà 1.593613 1.499483 1.693651
## 
## $p.value
##                    two-sided
##                     midp.exact fisher.exact   chi.square
##   Có vay mua nhà            NA           NA           NA
##   Không vay mua nhà          0 4.403729e-61 1.603195e-60
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

\[ \text{RR} = \frac{1166/1448}{620/1227} = 1.593613 \] Khách hàng không vay mua nhà có khả năng gửi tiền kỳ hạn cao hơn khoảng 1.59 lần so với khách hàng có vay mua nhà.

3.3.4 Odds Ratio

Odds Ratio (OR) hay Tỷ số chênh lệch, là một chỉ số thống kê dùng để đo lường mối liên hệ giữa hai biến phân loại (thường là biến nhị phân), đặc biệt trong các nghiên cứu y học, xã hội, tài chính và kinh tế học.

Sự kiện quan tâm: Khách hàng gửi tiền kỳ hạn (deposit = yes)

Nhóm tham chiếu: Khách hàng không vay mua nhà (housing = no)

Nhóm so sánh (quan tâm): Khách hàng có vay mua nhà (housing = yes)

oddsratio(tbl)
## $data
##                    
##                     Không gửi tiền kỳ hạn Có gửi tiền kỳ hạn Total
##   Không vay mua nhà                   282               1166  1448
##   Có vay mua nhà                      607                620  1227
##   Total                               889               1786  2675
## 
## $measure
##                    odds ratio with 95% C.I.
##                      estimate     lower     upper
##   Không vay mua nhà 1.0000000        NA        NA
##   Có vay mua nhà    0.2472356 0.2080297 0.2932527
## 
## $p.value
##                    two-sided
##                     midp.exact fisher.exact   chi.square
##   Không vay mua nhà         NA           NA           NA
##   Có vay mua nhà             0 4.403729e-61 1.603195e-60
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

\[ \text{OR} = \frac{620/607}{1166/282} = 0.2472356 \]

Kết quả này cho thấy rằng khách hàng có vay mua nhà có khả năng gửi tiền kỳ hạn thấp hơn đáng kể so với khách hàng không vay mua nhà.

Cụ thể, tỷ lệ khả năng gửi tiền kỳ hạn ở nhóm có vay mua nhà chỉ bằng khoảng 24.72% so với nhóm không vay mua nhà.


Sự kiện quan tâm: Khách hàng đồng ý gửi tiền kỳ hạn (deposit = yes)

Hai nhóm so sánh:

Nhóm 1 (nhóm tham chiếu):Khách hàng có vay mua nhà (housing = yes)

Nhóm 2: Khách hàng không vay mua nhà (housing = no)

oddsratio(tbl1)
## $data
##                    
##                     Không gửi tiền kỳ hạn Có gửi tiền kỳ hạn Total
##   Có vay mua nhà                      607                620  1227
##   Không vay mua nhà                   282               1166  1448
##   Total                               889               1786  2675
## 
## $measure
##                    odds ratio with 95% C.I.
##                     estimate    lower    upper
##   Có vay mua nhà     1.00000       NA       NA
##   Không vay mua nhà  4.04474 3.410028 4.807005
## 
## $p.value
##                    two-sided
##                     midp.exact fisher.exact   chi.square
##   Có vay mua nhà            NA           NA           NA
##   Không vay mua nhà          0 4.403729e-61 1.603195e-60
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Phân tích tỷ số chênh lệch cho thấy rằng việc không vay mua nhà có liên quan chặt chẽ đến hành vi gửi tiền kỳ hạn. Khách hàng không vay nhà có khả năng gửi tiền kỳ hạn cao gấp hơn 4 lần so với khách hàng đang vay mua nhà

3.4 Hồi quy logistic

3.4.1 Hồi quy đơn biến

# Chuyển các biến nhị phân về dạng 0/1
data$deposit <- ifelse(data$deposit == "yes", 1, 0)
data$loan <- ifelse(data$loan == "yes", 1, 0)

# Kiểm tra lại biến
str(data)
## 'data.frame':    2675 obs. of  17 variables:
##  $ age      : int  42 33 53 37 45 34 46 43 33 46 ...
##  $ job      : Factor w/ 11 levels "admin.","blue-collar",..: 1 8 6 10 3 5 5 5 10 11 ...
##  $ marital  : Factor w/ 3 levels "divorced","married",..: 3 2 2 2 2 3 2 2 3 1 ...
##  $ education: Factor w/ 3 levels "primary","secondary",..: 2 2 3 2 2 3 3 3 3 2 ...
##  $ default  : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ balance  : int  -247 3444 2269 5115 781 1494 0 1429 149 3354 ...
##  $ housing  : Factor w/ 2 levels "no","yes": 2 2 1 2 1 2 1 2 2 2 ...
##  $ loan     : num  1 0 0 0 1 0 0 0 0 0 ...
##  $ contact  : Factor w/ 2 levels "cellular","telephone": 2 2 1 1 1 1 1 1 1 1 ...
##  $ day      : int  21 21 17 17 17 18 18 19 19 19 ...
##  $ month    : Factor w/ 12 levels "apr","aug","dec",..: 11 11 10 10 10 10 10 10 10 10 ...
##  $ duration : int  519 144 1091 1210 652 596 716 1015 424 522 ...
##  $ campaign : int  1 1 2 2 2 1 2 1 2 1 ...
##  $ pdays    : int  166 91 150 171 126 182 110 198 182 174 ...
##  $ previous : int  1 4 1 4 2 1 3 2 1 1 ...
##  $ poutcome : Factor w/ 3 levels "failure","other",..: 2 1 3 1 1 2 2 2 2 3 ...
##  $ deposit  : num  1 1 1 1 1 1 1 1 1 1 ...
# Hồi quy đơn biến với biến balance
model_deposit_simple <- glm(deposit ~ balance, data = data, family = "binomial")

# Kết quả
summary(model_deposit_simple)
## 
## Call:
## glm(formula = deposit ~ balance, family = "binomial", data = data)
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept) 5.756e-01  4.889e-02  11.773  < 2e-16 ***
## balance     7.564e-05  1.788e-05   4.232 2.32e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3401.6  on 2674  degrees of freedom
## Residual deviance: 3378.2  on 2673  degrees of freedom
## AIC: 3382.2
## 
## Number of Fisher Scoring iterations: 4

Mô hình hồi quy logistic: deposit ~ balance

Mô hình được xây dựng nhằm phân tích mối quan hệ giữa xác suất khách hàng gửi tiền định kỳ (deposit) và biến độc lập số dư tài khoản (balance). Đây là mô hình hồi quy logistic đơn biến, sử dụng phân phối nhị thức (binomial) và liên kết logit.

Phương trình hồi quy (logit)

\[ \log\left( \frac{p}{1 - p} \right) = 0.5756 + 0.00007564 \times \text{balance} \]

Trong đó: - \(p\): xác suất khách hàng gửi tiền định kỳ - balance: số dư tài khoản của khách hàng

Diễn giải các hệ số

  • Hệ số chặn (Intercept = 0.5756):
    Đây là log odds (logit) của việc gửi tiền khi số dư bằng 0. Mặc dù không mang nhiều ý nghĩa thực tế (vì khách hàng thường không có số dư bằng 0), nhưng hệ số này vẫn cần thiết để hoàn thiện mô hình.

  • Hệ số balance = 0.00007564:
    Khi số dư tài khoản tăng thêm 1 đơn vị (ví dụ 1 USD), log odds của khả năng khách hàng gửi tiền tăng 0.00007564 đơn vị. Nếu số dư tăng 1.000 đơn vị, log odds sẽ tăng khoảng 0.07564.

Tỷ số odds (odds ratio)

\[ \text{OR}_{balance} = e^{0.00007564} \approx 1.0000756 \]

→ Khi số dư tăng 1 đơn vị, odds (tỷ số khả năng gửi tiền so với không gửi) tăng khoảng 0.0076%.
→ Nếu số dư tăng 1.000 đơn vị, odds tăng khoảng 7.86%.

Ý nghĩa thống kê

  • Giá trị p-value của biến balance là 2.32e-05 < 0.001, cho thấy biến này có ý nghĩa thống kê rất cao (** ở mức 1%). Điều này chứng minh rằng balance là một yếu tố có ảnh hưởng thực sự đến quyết định gửi tiền của khách hàng.

Độ phù hợp của mô hình

  • Null deviance = 3401.6
  • Residual deviance = 3378.2
  • AIC = 3382.2

Chênh lệch giữa null deviance và residual deviance cho thấy biến balance có đóng góp vào mô hình, làm giảm sai số.

Kết luận

Mô hình hồi quy logistic đơn biến cho thấy rằng số dư tài khoản có tác động tích cực và có ý nghĩa thống kê đến xác suất khách hàng gửi tiền định kỳ. Dù hệ số có vẻ nhỏ, nhưng với các khoản tiền lớn, tác động của balance đến hành vi gửi tiền là đáng kể. Đây là một biến quan trọng và nên được đưa vào các mô hình dự đoán hành vi tài chính trong ngân hàng.

3.4.2 Hồi quy đa biến

# Hồi quy đa biến
model_deposit_multi <- glm(deposit ~ balance + age + job + marital, data = data, family = "binomial")

# Kết quả
summary(model_deposit_multi)
## 
## Call:
## glm(formula = deposit ~ balance + age + job + marital, family = "binomial", 
##     data = data)
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## (Intercept)       1.385e-01  2.773e-01   0.499 0.617596    
## balance           5.767e-05  1.767e-05   3.264 0.001099 ** 
## age               7.851e-03  5.033e-03   1.560 0.118805    
## jobblue-collar   -5.980e-01  1.523e-01  -3.927 8.60e-05 ***
## jobentrepreneur  -5.492e-01  3.065e-01  -1.792 0.073115 .  
## jobhousemaid      1.788e-02  3.225e-01   0.055 0.955786    
## jobmanagement     3.084e-01  1.377e-01   2.239 0.025159 *  
## jobretired        8.302e-01  2.463e-01   3.370 0.000750 ***
## jobself-employed  8.891e-02  2.457e-01   0.362 0.717429    
## jobservices      -1.774e-01  1.848e-01  -0.960 0.337019    
## jobstudent        1.130e+00  2.804e-01   4.031 5.54e-05 ***
## jobtechnician    -7.793e-02  1.474e-01  -0.529 0.597053    
## jobunemployed     1.027e+00  2.945e-01   3.486 0.000491 ***
## maritalmarried    9.898e-03  1.497e-01   0.066 0.947277    
## maritalsingle     1.421e-01  1.674e-01   0.849 0.396014    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3401.6  on 2674  degrees of freedom
## Residual deviance: 3249.0  on 2660  degrees of freedom
## AIC: 3279
## 
## Number of Fisher Scoring iterations: 4

Mô hình hồi quy logistic: deposit ~ balance + age + job + marital

Mô hình hồi quy logistic này được xây dựng để phân tích xác suất khách hàng gửi tiền định kỳ (deposit = yes) dựa trên các yếu tố: số dư tài khoản (balance), tuổi (age), nghề nghiệp (job), và tình trạng hôn nhân (marital). Đây là mô hình đa biến sử dụng phân phối nhị thức (binomial) với hàm liên kết logit.

Phương trình hồi quy (logit)

\[ \log\left( \frac{p}{1 - p} \right) = \beta_0 + \beta_1 \cdot \text{balance} + \beta_2 \cdot \text{age} + \beta_3 \cdot \text{job} + \beta_4 \cdot \text{marital} \]

Trong đó: - \(p\): xác suất khách hàng gửi tiền định kỳ - Các biến phân loại (job, marital) được so sánh với nhóm tham chiếu (reference group), mặc định là nhóm đầu tiên theo thứ tự chữ cái.

Diễn giải các hệ số

  • Intercept (0.1385, p = 0.6176): không có ý nghĩa thống kê. Đây là log odds khi tất cả biến độc lập ở giá trị cơ bản (balance = 0, tuổi = 0, job và marital ở nhóm tham chiếu).

  • Balance (0.00005767, p = 0.0011): có ý nghĩa thống kê ở mức 1%. Khi số dư tài khoản tăng 1 đơn vị, log odds của việc gửi tiền tăng khoảng 0.00005767. Dù hệ số nhỏ, nhưng với số dư lớn (ví dụ 1,000 đơn vị), ảnh hưởng sẽ rõ rệt.

  • Age (0.00785, p = 0.1188): không có ý nghĩa thống kê ở mức 5%. Tuổi không ảnh hưởng rõ rệt đến xác suất gửi tiền trong mô hình này.

  • Job variables:

    • blue-collar (-0.598, p < 0.001): có tác động âm và rất có ý nghĩa thống kê. Những người lao động phổ thông có khả năng gửi tiền thấp hơn so với nhóm tham chiếu (có thể là nhóm “admin.”).
    • entrepreneur (-0.549, p = 0.073): ảnh hưởng âm, có ý nghĩa ở mức 10%.
    • management (0.308, p = 0.025): có ý nghĩa thống kê ở mức 5%, tác động tích cực.
    • retired (0.830, p < 0.001): có ảnh hưởng tích cực rất rõ rệt. Người nghỉ hưu có xác suất gửi tiền cao hơn đáng kể.
    • student (1.130, p < 0.001): có ảnh hưởng dương mạnh và rất có ý nghĩa thống kê.
    • unemployed (1.027, p < 0.001): tác động dương và có ý nghĩa thống kê cao. Có thể phản ánh việc gửi tiền từ các khoản hỗ trợ xã hội hoặc tích lũy.

    Các nghề còn lại như housemaid, technician, self-employed, services không có ý nghĩa thống kê.

  • Marital variables:

    • married (0.0099, p = 0.9473)single (0.1421, p = 0.3960): không có ý nghĩa thống kê, cho thấy tình trạng hôn nhân không ảnh hưởng đáng kể đến xác suất gửi tiền.

Độ phù hợp của mô hình

  • Null deviance: 3401.6
  • Residual deviance: 3249.0
  • AIC: 3279

Việc thêm các biến balance, age, job, và marital đã giúp giảm sai số mô hình (từ null deviance 3401.6 xuống còn 3249.0). AIC thấp hơn so với mô hình đơn biến cho thấy mô hình này phù hợp hơn.

Kết luận

Trong mô hình hồi quy logistic này, balance là biến có tác động tích cực và có ý nghĩa thống kê cao đến khả năng gửi tiền định kỳ. Ngoài ra, một số nghề như student, retired, và unemployed cũng có ảnh hưởng tích cực rõ rệt đến hành vi gửi tiền. Ngược lại, các nhóm nghề blue-collarentrepreneur có xác suất gửi tiền thấp hơn nhóm tham chiếu. Tuổi và tình trạng hôn nhân không thể hiện ảnh hưởng đáng kể trong mô hình này.

Kết quả này giúp các tổ chức tài chính nhận diện tốt hơn các nhóm khách hàng tiềm năng cho sản phẩm tiền gửi, từ đó xây dựng chiến lược tiếp cận phù hợp hơn.

3.5 Hồi quy probit

3.5.1 Hồi quy probit đơn biến

model_deposit <- glm(deposit ~ balance, family = binomial(link = "probit"), data = data)
summary(model_deposit)
## 
## Call:
## glm(formula = deposit ~ balance, family = binomial(link = "probit"), 
##     data = data)
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept) 3.660e-01  2.959e-02  12.368  < 2e-16 ***
## balance     4.072e-05  9.960e-06   4.088 4.35e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3401.6  on 2674  degrees of freedom
## Residual deviance: 3379.6  on 2673  degrees of freedom
## AIC: 3383.6
## 
## Number of Fisher Scoring iterations: 4

Diễn giải hệ số

Hệ số chặn (Intercept) có giá trị -1.191 cho thấy rằng khi số dư tài khoản (balance) bằng 0, xác suất một người vay tiền là khá thấp. Điều này phản ánh rằng trong điều kiện không có tiền trong tài khoản, khả năng vay vốn vẫn không cao.

Hệ số của biến balance là -0.00007159 và có ý nghĩa thống kê rất mạnh (p = 0.00012 < 0.001). Dấu âm của hệ số này cho thấy rằng khi số dư tài khoản tăng lên, xác suất khách hàng vay tiền giảm xuống. Nói cách khác, người có nhiều tiền trong tài khoản thì ít có khả năng vay tiền hơn.

Độ phù hợp của mô hình

Null deviance là 1719.3 và residual deviance sau khi thêm biến balance là 1694.9. Sự giảm deviance này thể hiện rằng mô hình có cải thiện khi đưa biến giải thích vào. AIC của mô hình là 1698.9, cho thấy mức độ phù hợp khá tốt và có thể dùng để so sánh với các mô hình khác.

Kết luận

Mô hình hồi quy Probit chỉ ra rằng biến balance có ảnh hưởng tiêu cực và có ý nghĩa thống kê đến khả năng vay tiền của khách hàng. Cụ thể, những người có số dư tài khoản cao hơn sẽ có xác suất vay tiền thấp hơn. Kết quả này phù hợp với lý thuyết kinh tế, cho thấy mô hình có giá trị ứng dụng thực tiễn.

3.5.2 Hồi quy probit đa biến

model_deposit_multi <- glm(deposit ~ age + balance + duration + poutcome,
                           family = binomial(link = "probit"), data = data)
summary(model_deposit_multi)
## 
## Call:
## glm(formula = deposit ~ age + balance + duration + poutcome, 
##     family = binomial(link = "probit"), data = data)
## 
## Coefficients:
##                   Estimate Std. Error z value Pr(>|z|)    
## (Intercept)     -8.118e-01  1.102e-01  -7.365 1.77e-13 ***
## age              1.762e-03  2.368e-03   0.744  0.45680    
## balance          3.332e-05  1.067e-05   3.123  0.00179 ** 
## duration         2.139e-03  1.418e-04  15.086  < 2e-16 ***
## poutcomeother    1.309e-01  7.105e-02   1.843  0.06538 .  
## poutcomesuccess  1.430e+00  7.069e-02  20.232  < 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: 3401.6  on 2674  degrees of freedom
## Residual deviance: 2535.5  on 2669  degrees of freedom
## AIC: 2547.5
## 
## Number of Fisher Scoring iterations: 6

Diễn giải hệ số

Hệ số chặn (Intercept) có giá trị -0.8118 và có ý nghĩa thống kê rất mạnh (p < 0.001). Điều này thể hiện rằng khi tất cả các biến độc lập bằng 0, xác suất khách hàng gửi tiền vào ngân hàng là tương đối thấp.

Biến age có hệ số dương (0.001762) nhưng không có ý nghĩa thống kê (p = 0.4568), cho thấy tuổi của khách hàng không ảnh hưởng rõ rệt đến xác suất gửi tiền trong mô hình này.

Biến balance có hệ số dương (0.00003332) và có ý nghĩa thống kê ở mức 1% (p = 0.00179). Điều này có nghĩa là khi số dư tài khoản tăng, xác suất khách hàng gửi tiền cũng tăng lên. Mối quan hệ này phù hợp với kỳ vọng, vì người có khả năng tài chính tốt hơn thường có xu hướng gửi tiết kiệm.

Biến duration có hệ số dương (0.002139) và có ý nghĩa thống kê rất mạnh (p < 0.001). Đây là biến ảnh hưởng mạnh nhất trong mô hình. Duration phản ánh thời gian cuộc gọi tư vấn – thời lượng cuộc gọi càng dài, khả năng khách hàng đồng ý gửi tiền càng cao.

Biến poutcome (kết quả của chiến dịch tiếp thị trước) có hai mức: - poutcomeother có hệ số dương (0.1309) và có ý nghĩa thống kê ở mức 10% (p = 0.06538), cho thấy ảnh hưởng nhẹ đến xác suất gửi tiền. - poutcomesuccess có hệ số lớn và rất có ý nghĩa thống kê (1.43, p < 0.001). Điều này khẳng định rằng nếu chiến dịch tiếp thị trước đó thành công, thì xác suất khách hàng gửi tiền hiện tại cao hơn rất nhiều.

Độ phù hợp của mô hình

Null deviance ban đầu là 3401.6 và giảm xuống còn 2535.5 sau khi thêm các biến giải thích, cho thấy mô hình cải thiện rõ rệt. AIC đạt 2547.5, là mức khá tốt để đánh giá mức độ phù hợp tổng thể của mô hình.

Kết luận

Mô hình Probit cho thấy các yếu tố ảnh hưởng đến xác suất khách hàng gửi tiền vào ngân hàng bao gồm: số dư tài khoản (balance), thời gian tư vấn (duration), và kết quả chiến dịch tiếp thị trước (poutcome). Tuổi của khách hàng (age) không có ảnh hưởng đáng kể. Đặc biệt, hiệu quả của chiến dịch tiếp thị trước là yếu tố then chốt làm tăng khả năng gửi tiền của khách hàng. Mô hình có ý nghĩa thống kê tổng thể tốt và phản ánh hợp lý hành vi tài chính của người tiêu dùng.

4. Phân tích theo quyết định vay cá nhân của khách hàng

4.1 Biến Loan

# Tạo bảng tần số
freq_tableloan <- table(qual_data$loan)

# Tính tỷ lệ phần trăm
percent_tableloan <- prop.table(freq_tableloan) * 100
## Số khách hàng có/không vay cá nhân   :
## 
##   no  yes 
## 2412  263
## Tỷ lệ phần trăm Số khách hàng có/không vay cá nhân :
## 
##    no   yes 
## 90.17  9.83
# Vẽ biểu đồ cột với màu xanh navy và be
bar_colors <- c("blue", "#000080")  # be và xanh navy

# Tạo biểu đồ
bar_positions <- barplot(freq_tableloan,
                         col = bar_colors,
                         ylim = c(0, max(freq_tableloan) * 1.1),
                         main = "Biểu đồ thể hiện tình trạng vay cá nhân của khách hàng",
                         ylab = "Số lượng khách hàng",
                         xlab = "Tình trạng vay cá nhân (loan)")

# Thêm nhãn số trên đầu cột
text(x = bar_positions,
     y = freq_tableloan,
     labels = freq_tableloan,
     pos = 3,
     cex = 0.9)

4.2 Ước lượng và Kiểm định Giả thuyết cho Tỷ lệ

\[ \begin{cases} H_0: \text{Tỷ lệ khách hàng vay cá nhân là 50% },p = 0.5 \\ H_1: \text{Tỷ lệ khách hàng vay cá nhân khác 50%},p \ne 0.5 \end{cases} \]

# Tạo bảng tần số cho biến loan
freq_table_loan <- table(qual_data$loan)

# Ước lượng và kiểm định giả thuyết cho tỷ lệ khách hàng có loan = "yes"
prop.test(freq_table_loan["yes"], sum(freq_table_loan), p = 0.5, 
          alternative = "two.sided", correct = FALSE)
## 
##  1-sample proportions test without continuity correction
## 
## data:  freq_table_loan["yes"] out of sum(freq_table_loan), null probability 0.5
## X-squared = 1726.4, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.08760405 0.11018349
## sample estimates:
##          p 
## 0.09831776

p-value trong kiểm định này đánh giá xác suất sai lầm khi ta giả sử rằng tỷ lệ khách hàng vay cá nhân là 50%. Vì p-value gần bằng 0, ta bác bỏ giả thuyết H₀: p = 0.5, và kết luận rằng tỷ lệ khách hàng vay cá nhân khác 50%, cụ thể là thấp hơn nhiều (ước lượng thực tế là 9.83%).

4.3 Tỷ lệ giới tính tác động lên quyết định vay cá nhân

# Tạo bảng tần số chéo giữa loan và marital (tên mới để tránh trùng)
freq_marital_loan <- table(qual_data$marital, qual_data$loan)

# Chuyển thành data frame để ggplot sử dụng
df_freq_marital_loan <- as.data.frame(freq_marital_loan)
colnames(df_freq_marital_loan) <- c("marital", "loan", "frequency")

# Vẽ biểu đồ cột chồng theo tần số
library(ggplot2)

ggplot(df_freq_marital_loan, aes(x = marital, y = frequency, fill = loan)) +
  geom_bar(stat = "identity", position = "stack") +
  geom_text(aes(label = frequency), 
            position = position_stack(vjust = 0.5), 
            color = "white", size = 4) +
  scale_fill_manual(values = c("yes" = "#000080", "no" = "brown")) +  # navy & beige
  labs(
    title = "Biểu đồ thể hiện tình trạng hôn nhân tác động đến quuyết định vay cá nhân ",
    x = "Tình trạng hôn nhân (marital)",
    y = "Tần số",
    fill = "Vay cá nhân (loan)"
  ) +
  theme_minimal()

4.3.1 Ước lượng hiệu tỷ lệ và kiểm định giả thuyết

\[ \begin{cases} H_0: \text{Tỷ lệ khách hàng vay tiền ở nhóm đã kết hôn bằng tỷ lệ ở nhóm độc thân } \\ H_1: \text{Tỷ lệ khách hàng vay tiền ở nhóm đã kết hôn khác với nhóm độc thân.} \end{cases} \]

# Tạo bảng tần số loan theo marital
table_marital_loan <- table(qual_data$marital, qual_data$loan)

# Lấy số liệu
x1 <- table_marital_loan["married", "yes"]
n1 <- sum(table_marital_loan["married", ])

x2 <- table_marital_loan["single", "yes"]
n2 <- sum(table_marital_loan["single", ])

# Kiểm định 2 tỷ lệ (2-sample proportion test)
prop.test(x = c(x1, x2), n = c(n1, n2), correct = FALSE)
## 
##  2-sample test for equality of proportions without continuity correction
## 
## data:  c(x1, x2) out of c(n1, n2)
## X-squared = 24.646, df = 1, p-value = 6.888e-07
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.03928032 0.08466633
## sample estimates:
##     prop 1     prop 2 
## 0.12306658 0.06109325

Đây là p-value của giả thuyết H₀: “Tỷ lệ khách hàng vay tiền ở nhóm đã kết hôn bằng với nhóm độc thân”. Vì p-value = 0.0000006888 < 0.05, ta bác bỏ H₀ và kết luận rằng tỷ lệ vay tiền giữa hai nhóm là khác nhau

4.3.2 Kiểm định độc lập giữa hai biến

\[ \begin{cases} H_0: \text{Hai biến loan và marital là độc lập với nhau } \\ H_1: \text{Hai biến không độc lập, tức là có mối liên hệ giữa tình trạng hôn nhân và việc vay tiền.} \end{cases} \]

# Tạo bảng tần số chéo giữa marital và loan
table_marital_loan <- table(qual_data$marital, qual_data$loan)

# Kiểm định độc lập
chisq.test(table_marital_loan)
## 
##  Pearson's Chi-squared test
## 
## data:  table_marital_loan
## X-squared = 25.047, df = 2, p-value = 3.64e-06

p-value = 3.64e-06 là xác suất để có được sự khác biệt rõ rệt trong dữ liệu giữa tình trạng hôn nhân và việc vay tiền cá nhân nếu thật sự không có mối liên hệ nào giữa hai yếu tố này.

Vì p-value = 0.00000364 < 0.05, ta bác bỏ giả thuyết H₀.

Nói cách khác, có bằng chứng thống kê rất mạnh cho thấy giữa tình trạng hôn nhân và hành vi vay tiền có mối liên hệ, tức là hai biến không độc lập.

4.3.3 RR

Sự kiện quan tâm: Khách hàng có vay cá nhân (loan = yes)

Hai nhóm so sánh:

Nhóm 1 (nhóm tham chiếu): Khách hàng đã ly hôn (marital = divorced)

Nhóm 2:

Khách hàng đã kết hôn (marital = married)

Khách hàng độc thân (marital = single)

# Cài gói nếu chưa có
library(epitools)

# Tạo bảng tần số chéo giữa marital và loan
table_marital_loan <- table(qual_data$marital, qual_data$loan)

riskratio(table_marital_loan)
## $data
##           
##              no yes Total
##   divorced  232  23   255
##   married  1304 183  1487
##   single    876  57   933
##   Total    2412 263  2675
## 
## $measure
##           risk ratio with 95% C.I.
##             estimate     lower    upper
##   divorced 1.0000000        NA       NA
##   married  1.3644338 0.9030189 2.061617
##   single   0.6773382 0.4259149 1.077180
## 
## $p.value
##           two-sided
##            midp.exact fisher.exact chi.square
##   divorced         NA           NA         NA
##   married   0.1284498    0.1424984  0.1331357
##   single    0.1103732    0.1197584  0.1003032
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

\[ \text{RR} = \frac{183/1487}{23/255} = 1.3644338 \]

Khách hàng đã kết hôn có tỷ lệ vay cá nhân cao hơn 1.36 lần so với khách hàng đã ly hôn \[ \text{RR} = \frac{57/933}{23/255} = 0.6773382 \]

khách hàng độc thân có tỷ lệ vay thấp hơn nhóm đã ly hôn, chỉ bằng khoảng 0.68 lần (tức thấp hơn 32%).


Sự kiện quan tâm: Khách hàng có vay cá nhân (loan = no)

Hai nhóm so sánh:

Nhóm 1 (nhóm tham chiếu): Khách hàng đã ly hôn (marital = divorced)

Nhóm 2:

Khách hàng đã kết hôn (marital = married)

Khách hàng độc thân (marital = single)

# Tạo bảng tần số chéo giữa marital và loan
table_marital_loan <- table(qual_data$marital, qual_data$loan)

# Đảo ngược cột để "loan = no" là sự kiện quan tâm (nằm ở cột thứ hai)
table_marital_loan_rev <- table_marital_loan[, c("yes", "no")]

# Tính risk ratio với sự kiện quan tâm là loan = no
riskratio(table_marital_loan_rev)
## $data
##           
##            yes   no Total
##   divorced  23  232   255
##   married  183 1304  1487
##   single    57  876   933
##   Total    263 2412  2675
## 
## $measure
##           risk ratio with 95% C.I.
##             estimate     lower    upper
##   divorced 1.0000000        NA       NA
##   married  0.9638708 0.9232276 1.006303
##   single   1.0319880 0.9895731 1.076221
## 
## $p.value
##           two-sided
##            midp.exact fisher.exact chi.square
##   divorced         NA           NA         NA
##   married   0.1284498    0.1424984  0.1331357
##   single    0.1103732    0.1197584  0.1003032
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

\[ \text{RR} = \frac{1304/1487}{232/255} = 0.9638708 \]

Khách hàng đã kết hôn có tỷ lệ không vay thấp hơn 3.6% so với khách hàng đã ly hôn.

\[ \text{RR} = \frac{876/933}{232/255} = 1.0319880 \]

TTỷ lệ khách hàng không vay trong nhóm độc thân cao hơn khoảng 3.2% so với nhóm đã ly hôn.

4.3.4 OR

Sự kiện quan tâm: Khách hàng có vay cá nhân (loan = yes)

Hai nhóm so sánh:

Nhóm 1 (nhóm tham chiếu): Khách hàng đã ly hôn (marital = divorced)

Nhóm 2:

Khách hàng đã kết hôn (marital = married)

Khách hàng độc thân (marital = single)

oddsratio(table_marital_loan)
## $data
##           
##              no yes Total
##   divorced  232  23   255
##   married  1304 183  1487
##   single    876  57   933
##   Total    2412 263  2675
## 
## $measure
##           odds ratio with 95% C.I.
##             estimate     lower    upper
##   divorced 1.0000000        NA       NA
##   married  1.4074033 0.9097004 2.276469
##   single   0.6540632 0.3991163 1.105538
## 
## $p.value
##           two-sided
##            midp.exact fisher.exact chi.square
##   divorced         NA           NA         NA
##   married   0.1284498    0.1424984  0.1331357
##   single    0.1103732    0.1197584  0.1003032
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Đã kết hôn (Married):Xác suất vay cá nhân ở nhóm đã kết hôn có odds cao hơn khoảng 1.41 lần so với nhóm đã ly hôn.

\[ \text{OR} = \frac{183/1304}{23/232} = 1.4074033 \] Độc thân (Single):Xác suất vay cá nhân ở nhóm độc thân có odds thấp hơn khoảng 34.6% so với nhóm đã ly hôn.

\[ \text{OR} = \frac{57/876}{23/232} = 0.6540632 \]


Sự kiện quan tâm: Khách hàng có vay cá nhân (loan = no)

Hai nhóm so sánh:

Nhóm 1 (nhóm tham chiếu): Khách hàng đã ly hôn (marital = divorced)

Nhóm 2:

Khách hàng đã kết hôn (marital = married)

Khách hàng độc thân (marital = single)

oddsratio(table_marital_loan_rev)
## $data
##           
##            yes   no Total
##   divorced  23  232   255
##   married  183 1304  1487
##   single    57  876   933
##   Total    263 2412  2675
## 
## $measure
##           odds ratio with 95% C.I.
##             estimate     lower    upper
##   divorced 1.0000000        NA       NA
##   married  0.7105369 0.4392767 1.099263
##   single   1.5289159 0.9045370 2.505535
## 
## $p.value
##           two-sided
##            midp.exact fisher.exact chi.square
##   divorced         NA           NA         NA
##   married   0.1284498    0.1424984  0.1331357
##   single    0.1103732    0.1197584  0.1003032
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Thực hiện bài toán kiểm định khi có giải thuyết Bài toán ước lượng Khi không có thông tin

4.4 Hồi quy logistic

4.4.1 Hồi quy đơn biến

# Hồi quy đơn biến với biến balance
model_loan_simple <- glm(loan ~ balance, data = data, family = "binomial")

# Kết quả
summary(model_loan_simple)
## 
## Call:
## glm(formula = loan ~ balance, family = "binomial", data = data)
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -1.959e+00  7.971e-02 -24.577  < 2e-16 ***
## balance     -1.989e-04  4.519e-05  -4.401 1.08e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1719.3  on 2674  degrees of freedom
## Residual deviance: 1689.5  on 2673  degrees of freedom
## AIC: 1693.5
## 
## Number of Fisher Scoring iterations: 6

Mô hình hồi quy logistic: loan ~ balance

Mô hình hồi quy logistic này nhằm phân tích mối quan hệ giữa xác suất khách hàng vay tiền (loan = yes) và biến độc lập số dư tài khoản (balance).

Phương trình hồi quy (logit)

\[ \log\left(\frac{p}{1 - p}\right) = -1.959 - 0.0001989 \times \text{balance} \]

Trong đó:
- \(p\): xác suất khách hàng vay tiền
- balance: số dư tài khoản của khách hàng

Diễn giải các hệ số

  • Hệ số chặn (Intercept = -1.959, p < 0.001):
    Đây là log odds của việc vay tiền khi balance = 0. Mặc dù không mang nhiều ý nghĩa thực tế (vì hiếm có khách hàng có số dư bằng 0), hệ số này vẫn cần thiết trong phương trình hồi quy.

  • Hệ số balance = -0.0001989 (p < 0.001):
    Khi số dư tài khoản tăng thêm 1 đơn vị, log odds của việc vay tiền giảm 0.0001989. Với p-value < 0.001, hệ số này có ý nghĩa thống kê, cho thấy balance là yếu tố quan trọng ảnh hưởng đến quyết định vay tiền.

Tỷ số odds (odds ratio)

\[ OR_{\text{balance}} = e^{-0.0001989} \approx 0.9998 \]

→ Khi số dư tài khoản tăng 1 đơn vị, odds vay tiền giảm khoảng 0.02%.
Dù ảnh hưởng nhỏ cho mỗi đơn vị, nhưng với sự gia tăng lớn về số dư, tác động sẽ rõ rệt hơn.

Độ phù hợp của mô hình

  • Null deviance: 1719.3
  • Residual deviance: 1689.5
  • AIC: 1693.5

Việc đưa biến balance vào mô hình làm giảm deviance từ 1719.3 xuống 1689.5, cho thấy mô hình có cải thiện đáng kể trong dự đoán so với mô hình không có biến độc lập.

Kết luận

Mô hình hồi quy logistic đơn biến cho thấy rằng số dư tài khoản có ảnh hưởng có ý nghĩa thống kê đến xác suất khách hàng vay tiền. Cụ thể, khách hàng có số dư càng cao thì khả năng vay tiền càng thấp, phù hợp với kỳ vọng thực tế. Để cải thiện mô hình, có thể đưa thêm các biến như tuổi, nghề nghiệp hoặc lịch sử tín dụng vào mô hình đa biến.

4.4.2 Hồi quy đa biến

# Hồi quy đa biến
model_loan_multi <- glm(loan ~ age + job + education + balance, data = data, family = "binomial")

# Kết quả
summary(model_loan_multi)
## 
## Call:
## glm(formula = loan ~ age + job + education + balance, family = "binomial", 
##     data = data)
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        -2.109e+00  4.361e-01  -4.835 1.33e-06 ***
## age                 6.922e-03  7.055e-03   0.981 0.326526    
## jobblue-collar      1.114e-02  2.245e-01   0.050 0.960444    
## jobentrepreneur     2.995e-01  4.201e-01   0.713 0.475854    
## jobhousemaid       -1.570e+01  5.620e+02  -0.028 0.977705    
## jobmanagement      -1.913e-01  2.562e-01  -0.747 0.455075    
## jobretired         -1.575e+00  4.602e-01  -3.422 0.000622 ***
## jobself-employed    1.237e-01  3.728e-01   0.332 0.739904    
## jobservices        -5.106e-02  2.640e-01  -0.193 0.846627    
## jobstudent         -1.555e+01  3.521e+02  -0.044 0.964784    
## jobtechnician      -1.200e-01  2.158e-01  -0.556 0.578187    
## jobunemployed      -1.006e+00  4.857e-01  -2.070 0.038416 *  
## educationsecondary  2.646e-01  2.643e-01   1.001 0.316889    
## educationtertiary  -1.553e-01  3.146e-01  -0.494 0.621533    
## balance            -1.775e-04  4.481e-05  -3.961 7.48e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1719.3  on 2674  degrees of freedom
## Residual deviance: 1615.2  on 2660  degrees of freedom
## AIC: 1645.2
## 
## Number of Fisher Scoring iterations: 16

Mô hình hồi quy logistic: loan ~ age + job + education + balance

Mô hình này nhằm phân tích xác suất khách hàng vay tiền (loan = yes) dựa trên các đặc điểm nhân khẩu học và tài chính bao gồm: tuổi (age), nghề nghiệp (job), trình độ học vấn (education) và số dư tài khoản (balance). Đây là mô hình hồi quy logistic đa biến, sử dụng phân phối nhị thức (binomial) với liên kết logit.

Phương trình hồi quy (logit)

\[ \log\left( \frac{p}{1 - p} \right) = \beta_0 + \beta_1 \cdot \text{age} + \beta_2 \cdot \text{job} + \beta_3 \cdot \text{education} + \beta_4 \cdot \text{balance} \]

Trong đó: - \(p\): xác suất khách hàng vay tiền - Các biến phân loại (job, education) được so sánh với nhóm tham chiếu (mặc định là nhóm đầu tiên theo thứ tự chữ cái)

Diễn giải các hệ số

  • Intercept (-2.109, p < 0.001):
    Là log odds khi các biến độc lập bằng 0 hoặc ở nhóm tham chiếu. Có ý nghĩa thống kê cao.

  • Age (0.00692, p = 0.327):
    Khi tuổi tăng thêm 1 đơn vị, log odds của việc vay tiền tăng 0.00692. Tuy nhiên, hệ số này không có ý nghĩa thống kê (p > 0.05).

  • Balance (-0.0001775, p < 0.001):
    Biến số dư tài khoản có ý nghĩa thống kê rất cao. Khi số dư tăng 1 đơn vị, log odds vay tiền giảm 0.0001775. Nếu số dư tăng 1,000 đơn vị, odds giảm khoảng 16.3%, cho thấy khách hàng có số dư cao ít có nhu cầu vay hơn.

  • Nghề nghiệp (job):

    • Retired (-1.575, p = 0.0006): khách hàng đã nghỉ hưu có khả năng vay tiền thấp hơn rõ rệt so với nhóm tham chiếu.
    • Unemployed (-1.006, p = 0.038): thất nghiệp cũng làm giảm đáng kể xác suất vay tiền.
    • Các nghề khác như blue-collar, management, student,… không có ý nghĩa thống kê (p > 0.05)
  • Trình độ học vấn (education):

    • Secondary và tertiary đều không có ý nghĩa thống kê (p > 0.3), cho thấy trình độ học vấn chưa ảnh hưởng rõ ràng đến xác suất vay trong mô hình này.

Tỷ số odds (odds ratio)

\[ \text{OR}_{\text{balance}} = e^{-0.0001775} \approx 0.9998 \]

→ Khi số dư tăng 1 đơn vị, odds vay tiền giảm khoảng 0.018%.
→ Nếu số dư tăng 1,000 đơn vị, odds giảm khoảng 16.3%

Độ phù hợp mô hình

  • Null deviance: 1719.3
  • Residual deviance: 1615.2
  • AIC: 1645.2

Mô hình có cải thiện đáng kể so với mô hình không biến (null model). Việc thêm các biến balance, job, age, education đã giúp giảm sai số và cải thiện độ phù hợp mô hình.

Kết luận

Mô hình hồi quy logistic này cho thấy rằng: - Số dư tài khoản (balance) có ảnh hưởng ngược chiều và có ý nghĩa thống kê cao đến khả năng vay tiền. Điều này phản ánh hợp lý rằng khách hàng có dư tiền thường ít cần vay. - Tuổi và học vấn không có ảnh hưởng đáng kể trong mô hình này. - Một số nhóm nghề như nghỉ hưu và thất nghiệp có khả năng vay thấp hơn đáng kể so với nhóm tham chiếu.

Kết quả này cung cấp thông tin quan trọng cho các ngân hàng trong việc phân loại khách hàng mục tiêu và thiết kế sản phẩm tín dụng phù hợp.

4.5 Hồi quy probit

4.5.1 Hồi quy probit đơn biến

model_loan <- glm(loan ~ balance, family = binomial(link = "probit"), data = data)
summary(model_loan)
## 
## Call:
## glm(formula = loan ~ balance, family = binomial(link = "probit"), 
##     data = data)
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -1.191e+00  4.064e-02 -29.297  < 2e-16 ***
## balance     -7.159e-05  1.862e-05  -3.846  0.00012 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1719.3  on 2674  degrees of freedom
## Residual deviance: 1694.9  on 2673  degrees of freedom
## AIC: 1698.9
## 
## Number of Fisher Scoring iterations: 7

Diễn giải hệ số

Hệ số chặn (Intercept) có giá trị -1.191 và có ý nghĩa thống kê rất mạnh (p < 0.001). Điều này cho thấy rằng khi số dư tài khoản (balance) bằng 0, xác suất khách hàng vay tiền là tương đối thấp.

Biến balance có hệ số âm (-0.00007159) và có ý nghĩa thống kê cao (p = 0.00012 < 0.001). Dấu âm của hệ số này cho thấy rằng khi số dư tài khoản tăng, khả năng khách hàng vay tiền giảm. Điều này phù hợp với kỳ vọng thực tiễn rằng người có điều kiện tài chính tốt hơn sẽ ít cần vay vốn hơn.

Độ phù hợp của mô hình

Giá trị null deviance là 1719.3 và residual deviance sau khi đưa biến balance vào mô hình giảm xuống còn 1694.9. Điều này cho thấy mô hình có cải thiện nhất định. Giá trị AIC của mô hình là 1698.9, mức này cho thấy mô hình có độ phù hợp trung bình và có thể so sánh với các mô hình khác.

Kết luận

Mô hình Probit đơn biến cho thấy số dư tài khoản có ảnh hưởng tiêu cực và có ý nghĩa thống kê đến xác suất vay tiền. Cụ thể, khách hàng có nhiều tiền trong tài khoản thì xác suất vay tiền thấp hơn. Mô hình phản ánh hợp lý hành vi tài chính của khách hàng và có thể được sử dụng trong phân tích ra quyết định tín dụng.

4.5.2 Hồi quy probit đa biến

model_loan_multi <- glm(loan ~ age + education + balance + housing,
                        family = binomial(link = "probit"), data = data)
summary(model_loan_multi)
## 
## Call:
## glm(formula = loan ~ age + education + balance + housing, family = binomial(link = "probit"), 
##     data = data)
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        -1.758e+00  2.015e-01  -8.724  < 2e-16 ***
## age                 2.031e-03  3.047e-03   0.666 0.505149    
## educationsecondary  2.622e-01  1.271e-01   2.063 0.039159 *  
## educationtertiary   9.124e-02  1.335e-01   0.683 0.494415    
## balance            -6.295e-05  1.890e-05  -3.331 0.000865 ***
## housingyes          5.362e-01  7.164e-02   7.485 7.17e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1719.3  on 2674  degrees of freedom
## Residual deviance: 1624.9  on 2669  degrees of freedom
## AIC: 1636.9
## 
## Number of Fisher Scoring iterations: 6

Diễn giải hệ số

Hệ số chặn (Intercept) có giá trị -1.758 và có ý nghĩa thống kê rất cao (p < 0.001). Điều này cho thấy khi các biến độc lập bằng 0 (ví dụ: tuổi bằng 0, không học vấn, không có nhà ở, số dư tài khoản bằng 0), thì xác suất vay tiền là rất thấp.

Biến age có hệ số dương (0.002031) nhưng không có ý nghĩa thống kê (p = 0.505), cho thấy tuổi không có ảnh hưởng rõ ràng đến xác suất vay tiền trong mô hình này.

Biến educationsecondary (trình độ học vấn trung học) có hệ số dương (0.2622) và có ý nghĩa thống kê ở mức 5% (p = 0.039). Điều này cho thấy so với nhóm trình độ tiểu học (mặc định), những người học trung học có xác suất vay tiền cao hơn. Trong khi đó, biến educationtertiary (đại học) không có ý nghĩa thống kê (p = 0.494), nên không thể kết luận chắc chắn về ảnh hưởng của nhóm này.

Biến balance có hệ số âm (-0.00006295) và có ý nghĩa thống kê cao (p = 0.000865), phản ánh rằng khách hàng có số dư tài khoản cao hơn thì khả năng vay tiền thấp hơn. Kết quả này phù hợp với kỳ vọng thực tiễn.

Biến housingyes (có vay mua nhà) có hệ số dương (0.5362) và rất có ý nghĩa thống kê (p < 0.001). Điều này cho thấy khách hàng đã vay mua nhà có khả năng vay thêm cao hơn so với người không vay nhà.

Độ phù hợp của mô hình

Null deviance ban đầu là 1719.3 và giảm xuống còn 1624.9 sau khi đưa các biến giải thích vào mô hình. Mức giảm này thể hiện mô hình có cải thiện rõ rệt. AIC của mô hình là 1636.9, thấp hơn so với mô hình đơn biến trước đó (AIC = 1698.9), cho thấy mô hình này có mức độ phù hợp tốt hơn.

Kết luận

Mô hình Probit cho thấy rằng số dư tài khoản và việc có vay mua nhà là những yếu tố ảnh hưởng rõ rệt và có ý nghĩa thống kê đến xác suất vay tiền. Cụ thể, khách hàng có nhiều tiền hơn thì ít vay, trong khi người đã vay nhà lại có khả năng vay thêm cao hơn. Trình độ học vấn trung học cũng có mối liên hệ tích cực với khả năng vay, trong khi tuổi và trình độ đại học không ảnh hưởng rõ ràng trong mô hình này. Mô hình có độ phù hợp tốt và phản ánh hợp lý hành vi vay vốn của khách hàng.

5. Hồi quy logistic với biến phụ thuộc là biến nhiều biểu hiện

library(nnet)
## Warning: package 'nnet' was built under R version 4.5.1
# Đảm bảo biến phụ thuộc là factor
data$job <- as.factor(data$job)

# Hồi quy logistic đa thức với education và balance là biến độc lập
model_multinom <- multinom(job ~ education , data = data)
## # weights:  44 (30 variable)
## initial  value 6414.369855 
## iter  10 value 4979.066871
## iter  20 value 4834.648311
## iter  30 value 4804.252459
## final  value 4803.822806 
## converged
# Tóm tắt kết quả mô hình
summary(model_multinom)
## Call:
## multinom(formula = job ~ education, data = data)
## 
## Coefficients:
##                 (Intercept) educationsecondary educationtertiary
## blue-collar    2.417930e+00        -2.66506003        -3.9474284
## entrepreneur  -5.878354e-01        -1.91671427        -0.5620145
## housemaid      8.473029e-01        -3.79811973        -2.4565750
## management     4.419635e-01        -2.29416437         1.9030654
## retired        2.221669e+00        -3.34004233        -2.4873950
## self-employed -1.098159e+00        -1.53417166         1.2523048
## services       4.419279e-01        -1.07789021        -2.2337445
## student        1.460035e-04        -1.30488712        -0.6604739
## technician     3.013524e-05        -0.07818915         0.8400932
## unemployed     2.007290e-01        -1.89889752        -0.8939078
## 
## Std. Errors:
##               (Intercept) educationsecondary educationtertiary
## blue-collar     0.3478764          0.3584275         0.4632676
## entrepreneur    0.5577965          0.5953145         0.6167926
## housemaid       0.3984195          0.4738102         0.5086507
## management      0.4272467          0.4545742         0.4481117
## retired         0.3509488          0.3693682         0.4019600
## self-employed   0.6665707          0.7021611         0.6893978
## services        0.4272497          0.4381588         0.5470065
## student         0.4713995          0.4873745         0.5207128
## technician      0.4714131          0.4785730         0.4960762
## unemployed      0.4494723          0.4723872         0.5020229
## 
## Residual Deviance: 9607.646 
## AIC: 9667.646

Biến phụ thuộc (job): Nghề nghiệp – là biến phân loại đa mức (đa thức), gồm nhiều nhóm như blue-collar, entrepreneur, housemaid, management…

Biến độc lập (education): Trình độ học vấn với 3 mức: primary (tham chiếu), secondary, tertiary

Phương pháp: Hồi quy logistic đa thức sử dụng hàm multinom() từ package nnet

tham chiếu cho job: admin.

Nhóm nghề blue-collar

\[ \log\left(\frac{P(\text{blue-collar})}{P(\text{admin.})}\right) = 2.805 - 2.776 \cdot \text{secondary} - 4.057 \cdot \text{tertiary} \]

Giải thích: - So với người có trình độ primary, người có trình độ secondary làm giảm log-odds chọn nghề blue-collar khoảng 2.776 đơn vị. - Người có trình độ tertiary càng ít làm nghề này hơn, log-odds giảm 4.057 đơn vị.

Nhóm nghề management

\[ \log\left(\frac{P(\text{management})}{P(\text{admin.})}\right) = 0.452 - 1.968 \cdot \text{secondary} + 2.110 \cdot \text{tertiary} \]

Giải thích: - Người có trình độ đại học trở lên (tertiary) có khả năng cao hơn làm quản lý. - Trình độ secondary làm giảm khả năng làm management so với người học primary.

Nhóm nghề technician

\[ \log\left(\frac{P(\text{technician})}{P(\text{admin.})}\right) = -0.024 + 0.133 \cdot \text{secondary} + 1.156 \cdot \text{tertiary} \]

Giải thích: - Trình độ tertiary làm tăng mạnh khả năng làm kỹ thuật viên (technician). - Người học secondary tăng nhẹ log-odds so với primary.

  • Biến education có ý nghĩa thống kê đối với nhiều nhóm nghề nghiệp.
  • Người học tertiary (đại học) có xu hướng làm các nghề có chuyên môn cao như management, technician.
  • Người học primary hoặc secondary phổ biến hơn ở các nhóm blue-collar, housemaid.