Bộ dữ liệu này là phiên bản rút gọn từ tập dữ liệu Bank Marketing, được trích xuất từ một chiến dịch tiếp thị qua điện thoại của một ngân hàng tại Bồ Đào Nha. Mục tiêu ban đầu là dự đoán khả năng khách hàng đăng ký gửi tiền có kỳ hạn. Trong bản rút gọn này, chỉ giữ lại 8 biến đầu vào có tính mô tả và liên quan cao.
# Đọc thư viện cần thiết
library(xlsx)
## Warning: package 'xlsx' was built under R version 4.4.3
# Đọc dữ liệu từ file Excel
dataDT <- read.xlsx("D:/PTDLDT/data.xlsx", sheetIndex = 1, header = TRUE)
# Loại bỏ các dòng chứa NA (nếu có)
dataDT <- na.omit(dataDT)
# Kiểm tra cấu trúc dữ liệu
str(dataDT)
## 'data.frame': 4521 obs. of 8 variables:
## $ age : num 30 33 35 30 59 35 36 39 41 43 ...
## $ job : chr "unemployed" "services" "management" "management" ...
## $ marital : chr "married" "married" "single" "married" ...
## $ education: chr "primary" "secondary" "tertiary" "tertiary" ...
## $ default : chr "no" "no" "no" "no" ...
## $ housing : chr "no" "yes" "yes" "yes" ...
## $ loan : chr "no" "yes" "no" "yes" ...
## $ contact : chr "cellular" "cellular" "cellular" "unknown" ...
dataDT$job <- as.factor(dataDT$job)
dataDT$marital <- as.factor(dataDT$marital)
dataDT$education <- as.factor(dataDT$education)
dataDT$default <- as.factor(dataDT$default)
dataDT$housing <- as.factor(dataDT$housing)
dataDT$loan <- as.factor(dataDT$loan)
dataDT$contact <- as.factor(dataDT$contact)
Tên biến | Kiểu dữ liệu | Mô tả |
---|---|---|
Age |
Numeric | Tuổi của khách hàng |
Job |
Categorical (factor) | Nghề nghiệp (unemployed, services, management, …) |
Marital |
Categorical (factor) | Tình trạng hôn nhân (single, married, divorced) |
Education |
Categorical (factor) | Trình độ học vấn (primary, secondary, tertiary, unknown) |
Default |
Binary (yes/no) | Khách hàng có nợ xấu không |
Housing |
Binary (yes/no) | Khách hàng có khoản vay mua nhà không |
Loan |
Binary (yes/no) | Khách hàng có khoản vay cá nhân không |
Contact |
Categorical (factor) | Hình thức liên hệ gần nhất (telephone hoặc cellular) |
Tạo bộ dữ liệu chỉ có biến định tính
# Tạo bộ dữ liệu chỉ chứa các biến định tính
data1 <- dataDT[, sapply(dataDT, is.factor)]
# Xem trước dữ liệu mới
str(data1)
## 'data.frame': 4521 obs. of 7 variables:
## $ job : Factor w/ 12 levels "admin.","blue-collar",..: 11 8 5 5 2 5 7 10 3 8 ...
## $ marital : Factor w/ 3 levels "divorced","married",..: 2 2 3 2 2 3 2 2 2 2 ...
## $ education: Factor w/ 4 levels "primary","secondary",..: 1 2 3 3 2 3 3 2 3 1 ...
## $ default : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
## $ housing : Factor w/ 2 levels "no","yes": 1 2 2 2 2 1 2 2 2 2 ...
## $ loan : Factor w/ 2 levels "no","yes": 1 2 1 2 1 1 1 1 1 2 ...
## $ contact : Factor w/ 3 levels "cellular","telephone",..: 1 1 1 3 3 1 1 1 3 1 ...
head(data1)
Lập bảng tần số và tần suất
#Bảng tần số
table(data1$job)
##
## admin. blue-collar entrepreneur housemaid management
## 478 946 168 112 969
## retired self-employed services student technician
## 230 183 417 84 768
## unemployed unknown
## 128 38
#Bảng tần suất
table(data1$job)/sum(table(data1$job))
##
## admin. blue-collar entrepreneur housemaid management
## 0.10572882 0.20924574 0.03715992 0.02477328 0.21433311
## retired self-employed services student technician
## 0.05087370 0.04047777 0.09223623 0.01857996 0.16987392
## unemployed unknown
## 0.02831232 0.00840522
Vẽ biểu đồ cột
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(ggplot2)
# Tạo bảng tần số cho biến job
freq1 <- table(data1$job)
# Chuyển thành data frame
job_freq <- as.data.frame(freq1)
colnames(job_freq) <- c("Job", "Count")
# Vẽ biểu đồ cột
ggplot(job_freq, aes(x = Job, y = Count)) +
geom_col(fill = "#6495ED", color = "black") +
geom_text(aes(label = Count), vjust = -0.5, color = "black") +
labs(title = "Tần số theo nghề nghiệp", x = "Nghề nghiệp", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme(plot.title = element_text(hjust = 0.5))
Dựa vào bảng tần số và biểu đồ trên, ta có các nhận định sau:
Nghề nghiệp phổ biến nhất là management với 969 người, chiếm khoảng 21.4% tổng số mẫu.
Theo sau là blue-collar (946 người, ~20.9%) và technician (768 người, ~17.0%).
Các nhóm nghề ít phổ biến hơn gồm: student (84 người, ~1.9%) và unknown (38 người, ~0.8%).
Tổng cộng, ba nhóm nghề chiếm tỷ lệ cao nhất (management, blue-collar, technician) đã chiếm hơn 59% toàn bộ dữ liệu.
Kết luận:
Phân bố nghề nghiệp không đều, cho thấy các khách hàng trong dữ liệu chủ yếu đến từ các ngành quản lý, lao động phổ thông và kỹ thuật viên.
Lập bảng tần số và tần suất
# Bảng tần số
table(data1$marital)
##
## divorced married single
## 528 2797 1196
# Bảng tần suất
prop.table(table(data1$marital))
##
## divorced married single
## 0.1167883 0.6186684 0.2645432
Vẽ biểu đồ cột
# Biểu đồ cột
library(ggplot2)
freq_marital <- as.data.frame(table(data1$marital))
colnames(freq_marital) <- c("Marital", "Count")
ggplot(freq_marital, aes(x = Marital, y = Count)) +
geom_col(fill = "#6495ED", color = "black") +
geom_text(aes(label = Count), vjust = -0.5) +
labs(title = "Tần số theo tình trạng hôn nhân", x = "Tình trạng hôn nhân", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
Dựa vào bảng tần số và tần suất của biến marital, ta có các nhận định sau:
Nhóm kết hôn (married) chiếm tỷ lệ cao nhất, với 2,797 người, tương ứng khoảng 61.9% tổng số mẫu. Đây là nhóm chiếm ưu thế vượt trội.
Nhóm độc thân (single) chiếm 1,196 người (~26.5%), đứng thứ hai về tần suất.
Nhóm ly hôn (divorced) chỉ chiếm 528 người (~11.7%), là nhóm có số lượng thấp nhất.
Kết luận:
Phân bố tình trạng hôn nhân trong tập dữ liệu này khá chênh lệch, với phần lớn khách hàng là người đã kết hôn. Điều này có thể phản ánh xu hướng hoặc cấu trúc dân số của khách hàng trong tập dữ liệu.
Lập bảng tần số và tần suất
table(data1$education)
##
## primary secondary tertiary unknown
## 678 2306 1350 187
prop.table(table(data1$education))
##
## primary secondary tertiary unknown
## 0.14996682 0.51006415 0.29860650 0.04136253
Vẽ biểu đồ cột
freq_edu <- as.data.frame(table(data1$education))
colnames(freq_edu) <- c("Education", "Count")
ggplot(freq_edu, aes(x = Education, y = Count)) +
geom_col(fill = "#FF9966", color = "black") +
geom_text(aes(label = Count), vjust = -0.5) +
labs(title = "Tần số theo trình độ học vấn", x = "Trình độ", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
Dựa vào bảng tần số và tần suất của biến education, ta có các nhận định sau:
Nhóm có trình độ học vấn secondary chiếm tỷ lệ cao nhất, với 2,306 người, tương ứng khoảng 51.0% tổng số mẫu. Đây là nhóm chiếm ưu thế vượt trội.
Nhóm có trình độ tertiary (đại học, sau đại học) có 1,350 người, chiếm khoảng 29.8%, đứng thứ hai về tần suất.
Nhóm primary có 678 người, tương ứng khoảng 15.0% tổng số mẫu.
Nhóm unknown (không rõ trình độ học vấn) chỉ chiếm 187 người, tương ứng 4.1%, là nhóm có số lượng thấp nhất.
Kết luận:
Phân bố trình độ học vấn trong tập dữ liệu cho thấy phần lớn khách hàng có trình độ học vấn trung học. Điều này có thể phản ánh cấu trúc trình độ học vấn phổ biến trong nhóm khách hàng được khảo sát, đồng thời là yếu tố cần xem xét trong các phân tích liên quan đến hành vi tiêu dùng hoặc khả năng tiếp cận dịch vụ.
Lập bảng tần số và tần suất
table(data1$default)
##
## no yes
## 4445 76
prop.table(table(data1$default))
##
## no yes
## 0.98318956 0.01681044
Vẽ biểu đồ cột
freq_default <- as.data.frame(table(data1$default))
colnames(freq_default) <- c("Default", "Count")
ggplot(freq_default, aes(x = Default, y = Count)) +
geom_col(fill = "#F08080", color = "black") +
geom_text(aes(label = Count), vjust = -0.5) +
labs(title = "Tần số nợ tín dụng xấu", x = "Default", y = "Số lượng") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Dựa vào bảng tần số và tần suất của biến default, ta có các nhận định sau:
Nhóm không có nợ tín dụng xấu (no) chiếm số lượng lớn nhất với 4,445 người, tương ứng khoảng 98.4% tổng số mẫu. Đây là nhóm chiếm ưu thế gần như tuyệt đối.
Nhóm có nợ tín dụng xấu (yes) chỉ có 76 người, chiếm tỷ lệ rất nhỏ, khoảng 1.7%.
Kết luận:
Phân bố nợ tín dụng xấu trong tập dữ liệu cho thấy phần lớn khách hàng không có lịch sử nợ xấu. Điều này phản ánh chất lượng tín dụng tương đối tốt của nhóm khách hàng được khảo sát,
Lập bảng tần số và tần suất
table(data1$housing)
##
## no yes
## 1962 2559
prop.table(table(data1$housing))
##
## no yes
## 0.4339748 0.5660252
Vẽ biểu đồ cột
freq_housing <- as.data.frame(table(data1$housing))
colnames(freq_housing) <- c("Housing", "Count")
ggplot(freq_housing, aes(x = Housing, y = Count)) +
geom_col(fill = "#66CDAA", color = "black") +
geom_text(aes(label = Count), vjust = -0.5) +
labs(title = "Tần số vay mua nhà", x = "Vay nhà", y = "Số lượng") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Dựa vào bảng tần số và tần suất của biến housing, ta có các nhận định sau:
Nhóm có vay mua nhà (yes) chiếm tỷ lệ cao hơn với 2,559 người, tương ứng khoảng 56.6% tổng số mẫu. Đây là nhóm chiếm tỷ trọng lớn trong tập dữ liệu.
Nhóm không vay mua nhà (no) có 1,962 người, chiếm khoảng 43.4%.
Kết luận:
Phân bố dữ liệu cho thấy phần lớn khách hàng trong tập dữ liệu có khoản vay mua nhà. Điều này có thể phản ánh nhu cầu về nhà ở cũng như mức độ tiếp cận tín dụng mua bất động sản của khách hàng trong tập mẫu.
Lập bảng tần số và tần suất
table(data1$loan)
##
## no yes
## 3830 691
prop.table(table(data1$loan))
##
## no yes
## 0.8471577 0.1528423
Vẽ biểu đồ cột
freq_loan <- as.data.frame(table(data1$loan))
colnames(freq_loan) <- c("Loan", "Count")
ggplot(freq_loan, aes(x = Loan, y = Count)) +
geom_col(fill = "#9370DB", color = "black") +
geom_text(aes(label = Count), vjust = -0.5) +
labs(title = "Tần số vay tiêu dùng", x = "Vay tiêu dùng", y = "Số lượng") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Dựa vào bảng tần số và tần suất của biến loan, ta có các nhận định sau:
Nhóm không vay tiêu dùng (no) chiếm số lượng lớn vượt trội với 3.830 người, tương ứng khoảng 84.7% tổng số mẫu. Đây là nhóm chiếm ưu thế rõ rệt.
Nhóm có vay tiêu dùng (yes) chỉ có 691 người, chiếm khoảng 15.3%.
Kết luận:
Phân bố vay tiêu dùng cho thấy đa số khách hàng không sử dụng hình thức vay tiêu dùng, phản ánh sự thận trọng trong chi tiêu hoặc tiếp cận hạn chế với loại hình tín dụng này. Yếu tố này có thể đóng vai trò trong việc xác định mức độ tiêu dùng cá nhân và khả năng tiếp cận tín dụng tiêu dùng trong nghiên cứu hành vi tài chính.
Lập bảng tần số và tần suất
table(data1$contact)
##
## cellular telephone unknown
## 2896 301 1324
prop.table(table(data1$contact))
##
## cellular telephone unknown
## 0.64056625 0.06657819 0.29285556
Vẽ biểu đồ cột
freq_contact <- as.data.frame(table(data1$contact))
colnames(freq_contact) <- c("Contact", "Count")
ggplot(freq_contact, aes(x = Contact, y = Count)) +
geom_col(fill = "#FFD700", color = "black") +
geom_text(aes(label = Count), vjust = -0.5) +
labs(title = "Tần số phương thức liên hệ", x = "Phương thức", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
Dựa vào bảng tần số và tần suất của biến contact, ta có các nhận định sau:
Nhóm liên hệ qua điện thoại di động (cellular) chiếm số lượng lớn nhất với 2.896 người, tương ứng khoảng 64.1% tổng số mẫu. Đây là phương thức liên hệ phổ biến nhất.
Nhóm không rõ phương thức liên hệ (unknown) gồm 1.324 người, chiếm khoảng 29.3%.
Nhóm liên hệ qua điện thoại bàn (telephone) chỉ có 301 người, chiếm khoảng 6.7%.
Kết luận:
Phân bố phương thức liên hệ cho thấy điện thoại di động là kênh liên lạc chủ đạo trong dữ liệu, phản ánh xu hướng sử dụng công nghệ di động phổ biến trong xã hội hiện nay.
Thực hiện kiểm định để xác định xem tỷ lệ khách hàng có vay
tiêu dùng (loan = "yes"
) trong tập dữ liệu có khác
biệt so với 20% hay không.
# Số lượng khách hàng có vay tiêu dùng
sumLoan <- sum(dataDT$loan == "yes")
# Tổng số khách hàng
sumTotal <- length(dataDT$loan)
# Tỷ lệ mẫu
p_hat <- sumLoan / sumTotal
p_hat
## [1] 0.1528423
Giả thuyết kiểm định
Tiến hành kiểm định hai phía với mức ý nghĩa α = 0.05.
# Kiểm định tỷ lệ 1 mẫu với tỷ lệ giả định là 0.20
prop.test(x = sumLoan, n = sumTotal, p = 0.20, conf.level = 0.95, correct = TRUE)
##
## 1-sample proportions test with continuity correction
##
## data: sumLoan out of sumTotal, null probability 0.2
## X-squared = 62.543, df = 1, p-value = 2.607e-15
## alternative hypothesis: true p is not equal to 0.2
## 95 percent confidence interval:
## 0.1425409 0.1637393
## sample estimates:
## p
## 0.1528423
Kết quả kiểm định:
Giá trị thống kê (X-squared): 62.543
Giá trị p (p-value): 2.607e-15 (tức là ≈ 0.000)
Khoảng tin cậy 95% cho tỷ lệ thực: [0.1425409, 0.1637393]
Ước lượng tỷ lệ từ mẫu (p̂): 0.1528423
Kết luận: Với mức ý nghĩa 5%, có đủ bằng chứng thống kê để kết luận rằng tỷ lệ khách hàng có vay tiêu dùng khác 20%.
Thực hiện kiểm định để xác định xem tỷ lệ khách hàng có vay mua nhà (Housing = “yes”) trong tập dữ liệu có khác biệt so với 60% hay không.
# Số lượng khách hàng có vay mua nhà
sumHousing <- sum(dataDT$housing == "yes")
# Tổng số khách hàng
nHousing <- length(dataDT$housing)
# Tỷ lệ mẫu
p_hat_housing <- sumHousing / nHousing
p_hat_housing
## [1] 0.5660252
Giả thuyết kiểm định
Tiến hành kiểm định hai phía với mức ý nghĩa α = 0.05.
# Kiểm định tỷ lệ 1 mẫu với tỷ lệ giả định là 0.60
prop.test(x = sumHousing, n = nHousing, p = 0.60, conf.level = 0.95, correct = TRUE)
##
## 1-sample proportions test with continuity correction
##
## data: sumHousing out of nHousing, null probability 0.6
## X-squared = 21.603, df = 1, p-value = 3.354e-06
## alternative hypothesis: true p is not equal to 0.6
## 95 percent confidence interval:
## 0.5514171 0.5805203
## sample estimates:
## p
## 0.5660252
Kết quả kiểm định:
Giá trị thống kê (X-squared): 21.603
Bậc tự do (df): 1
Giá trị p (p-value): 3.354e-06 ≈ 0.000003354
Khoảng tin cậy 95% cho tỷ lệ thực: [0.541471, 0.5805203]
Ước lượng tỷ lệ từ mẫu (p̂): 0.5660252
Kết luận: Với mức ý nghĩa 5%, có đủ bằng chứng thống kê để kết luận rằng tỷ lệ khách hàng vay mua nhà khác 60%.
Thực hiện kiểm định để xác định xem tỷ lệ khách hàng có nợ quá hạn (Default = “yes”) trong tập dữ liệu có khác biệt so với 5% hay không.
# Số lượng khách hàng có nợ quá hạn
sumDefault <- sum(dataDT$default == "yes")
# Tổng số khách hàng
nDefault <- length(dataDT$default)
# Tỷ lệ mẫu
p_hat_default <- sumDefault / nDefault
p_hat_default
## [1] 0.01681044
Giả thuyết kiểm định
Tiến hành kiểm định hai phía với mức ý nghĩa α = 0.05.
# Kiểm định tỷ lệ 1 mẫu với tỷ lệ giả định là 0.05
prop.test(x = sumDefault, n = nDefault, p = 0.05, conf.level = 0.95, correct = TRUE)
##
## 1-sample proportions test with continuity correction
##
## data: sumDefault out of nDefault, null probability 0.05
## X-squared = 104.15, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.05
## 95 percent confidence interval:
## 0.01335392 0.02111144
## sample estimates:
## p
## 0.01681044
Kết quả kiểm định:
Giá trị thống kê (X-squared): 104.15
Bậc tự do (df): 1
Giá trị p (p-value): < 2.2e-16 (rất gần bằng 0)
Khoảng tin cậy 95% cho tỷ lệ thực: [0.01335392, 0.02111444]
Tỷ lệ ước lượng từ mẫu (p̂): 0.01681044 (≈ 1.68%)
Kết luận: Với mức ý nghĩa 5%, có đủ bằng chứng để kết luận rằng tỷ lệ khách hàng nợ quá hạn không bằng 5%.
Thực hiện kiểm định để xác định xem tỷ lệ khách hàng có trình độ tiểu học (Education = “primary”) trong tập dữ liệu có khác biệt so với 25% hay không.
# Số lượng khách hàng có trình độ đại học
sumEdu <- sum(dataDT$education == "primary")
# Tổng số khách hàng
nEdu <- length(dataDT$education)
# Tỷ lệ mẫu
p_hat_edu <- sumEdu / nEdu
p_hat_edu
## [1] 0.1499668
Giả thuyết kiểm định
Tiến hành kiểm định hai phía với mức ý nghĩa α = 0.05.
# Kiểm định tỷ lệ 1 mẫu với tỷ lệ giả định là 0.25
prop.test(x = sumEdu, n = nEdu, p = 0.25, conf.level = 0.95, correct = TRUE)
##
## 1-sample proportions test with continuity correction
##
## data: sumEdu out of nEdu, null probability 0.25
## X-squared = 240.75, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.25
## 95 percent confidence interval:
## 0.1397493 0.1607850
## sample estimates:
## p
## 0.1499668
Kết quả kiểm định:
Giá trị thống kê (X-squared): 240.75
Bậc tự do (df): 1
Giá trị p (p-value): < 2.2e-16 (≈ 0 – cực kỳ nhỏ)
Khoảng tin cậy 95% cho tỷ lệ thực: [0.1397493, 0.1607850]
Tỷ lệ ước lượng từ mẫu (p̂): 0.1499668 (~14.99%)
Kết luận: Vì p-value < 0.05, nên có đủ cơ sở bác bỏ giả thuyết H₀. Vậy nên có đủ bằng chứng để khẳng định tỷ lệ khách hàng có trình độ tiểu học khác 25%.
Xác định xem tỷ lệ khách hàng có vay tiêu dùng
(loan = "yes"
) lớn hơn 20% hay không.
# Số lượng khách hàng có vay tiêu dùng
sumLoan <- sum(dataDT$loan == "yes")
# Tổng số khách hàng
sumTotal <- length(dataDT$loan)
# Tỷ lệ mẫu
p_hat <- sumLoan / sumTotal
p_hat
## [1] 0.1528423
Giả thuyết kiểm định
Tiến hành kiểm định một phía với mức ý nghĩa α = 0.05.
# Kiểm định một phía: p > 0.20
prop.test(x = sumLoan, n = sumTotal, p = 0.20,
conf.level = 0.95, correct = TRUE, alternative = "greater")
##
## 1-sample proportions test with continuity correction
##
## data: sumLoan out of sumTotal, null probability 0.2
## X-squared = 62.543, df = 1, p-value = 1
## alternative hypothesis: true p is greater than 0.2
## 95 percent confidence interval:
## 0.1441395 1.0000000
## sample estimates:
## p
## 0.1528423
Kết quả kiểm định:
Giá trị thống kê (X-squared): 62.543
Bậc tự do (df): 1
p-value: 1
Khoảng tin cậy 95% cho p (một phía): [0.1441395, 1.0000000]
Tỷ lệ mẫu ước lượng (p̂): 0.1528423 (~15.28%)
Kết luận: Với mức ý nghĩa 5%, không có đủ bằng chứng thống kê để kết luận rằng tỷ lệ khách hàng vay tiêu dùng lớn hơn 20%.
Xác định xem tỷ lệ khách hàng có vay mua nhà (housing = “yes”) nhỏ hơn 60% hay không.
# Số lượng khách hàng có vay mua nhà
sumHousing <- sum(dataDT$housing == "yes")
# Tổng số khách hàng
nHousing <- length(dataDT$housing)
# Tỷ lệ mẫu
p_hat_housing <- sumHousing / nHousing
p_hat_housing
## [1] 0.5660252
Giả thuyết kiểm định
Tiến hành kiểm định một phía với mức ý nghĩa α = 0.05.
# Kiểm định một phía: p < 0.60
prop.test(x = sumHousing, n = nHousing, p = 0.60,
conf.level = 0.95, correct = TRUE, alternative = "less")
##
## 1-sample proportions test with continuity correction
##
## data: sumHousing out of nHousing, null probability 0.6
## X-squared = 21.603, df = 1, p-value = 1.677e-06
## alternative hypothesis: true p is less than 0.6
## 95 percent confidence interval:
## 0.0000000 0.5782167
## sample estimates:
## p
## 0.5660252
Kết quả kiểm định:
Giá trị thống kê (X-squared): 21.603
Bậc tự do (df): 1
Giá trị p (p-value): 1.677e-06 (≈ 0.000001677 – rất nhỏ)
Tỷ lệ ước lượng từ mẫu (p̂): 0.5660252 (~56.60%)
Khoảng tin cậy 95% cho p (một phía): [0.0000000, 0.5782167]
Kết luận: Với mức ý nghĩa 5%, Có đủ bằng chứng thống kê để kết luận rằng tỷ lệ khách hàng vay mua nhà nhỏ hơn 60%.
Xác định xem tỷ lệ khách hàng có nợ quá hạn (default = “yes”) lớn hơn 5% hay không.
# Số lượng khách hàng có nợ quá hạn
sumDefault <- sum(dataDT$default == "yes")
# Tổng số khách hàng
nDefault <- length(dataDT$default)
# Tỷ lệ mẫu
p_hat_default <- sumDefault / nDefault
p_hat_default
## [1] 0.01681044
Giả thuyết kiểm định
Tiến hành kiểm định một phía với mức ý nghĩa α = 0.05.
# Kiểm định một phía: p > 0.05
prop.test(x = sumDefault, n = nDefault, p = 0.05,
conf.level = 0.95, correct = TRUE, alternative = "greater")
##
## 1-sample proportions test with continuity correction
##
## data: sumDefault out of nDefault, null probability 0.05
## X-squared = 104.15, df = 1, p-value = 1
## alternative hypothesis: true p is greater than 0.05
## 95 percent confidence interval:
## 0.01384174 1.00000000
## sample estimates:
## p
## 0.01681044
Kết quả kiểm định:
Giá trị thống kê (X-squared): 104.15
Bậc tự do (df): 1
p-value: 1
Tỷ lệ ước lượng từ mẫu (p̂): 0.0168 (≈ 1.68%)
Khoảng tin cậy 95% cho p (một phía trên): [0.0138, 1.0000]
Kết luận: Vì p-value = 1 > 0.05, Không có đủ bằng chứng thống kê để kết luận rằng tỷ lệ khách hàng nợ quá hạn lớn hơn 5%.
Xác định xem tỷ lệ khách hàng có trình độ tiểu học (education = “primary”) nhỏ hơn 25% hay không.
# Số lượng khách hàng có trình độ đại học
sumEdu <- sum(dataDT$education == "primary")
# Tổng số khách hàng
nEdu <- length(dataDT$education)
# Tỷ lệ mẫu
p_hat_edu <- sumEdu / nEdu
p_hat_edu
## [1] 0.1499668
Giả thuyết kiểm định
Tiến hành kiểm định một phía với mức ý nghĩa α = 0.05.
# Kiểm định một phía: p < 0.25
prop.test(x = sumEdu, n = nEdu, p = 0.25,
conf.level = 0.95, correct = TRUE, alternative = "less")
##
## 1-sample proportions test with continuity correction
##
## data: sumEdu out of nEdu, null probability 0.25
## X-squared = 240.75, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is less than 0.25
## 95 percent confidence interval:
## 0.0000000 0.1590235
## sample estimates:
## p
## 0.1499668
Kết quả kiểm định:
Giá trị thống kê (X-squared): 240.75
Bậc tự do (df): 1
p-value: < 2.2e-16 (rất nhỏ ≈ 0)
Tỷ lệ mẫu (p̂): 0.1499668 (~14.99%)
Khoảng tin cậy 95% (một phía trên): [0.0000000, 0.1590235]
Kết luận: Với mức ý nghĩa α = 0.05, do p-value = 2.2e-16 < 0.05, ta bác bỏ giả thuyết H₀.Có đủ bằng chứng thống kê để khẳng định rằng tỷ lệ khách hàng có trình độ tiểu học nhỏ hơn 25%.
Việc có nhà hay không ảnh hưởng thế nào đến khả năng vay tiền.
Bảng tần số
table_housing_loan <- table(dataDT$housing, dataDT$loan)
table_housing_loan
##
## no yes
## no 1677 285
## yes 2153 406
Vẽ biểu đồ
table_housing_loan <- table(dataDT$housing, dataDT$loan)
library(ggplot2)
ggplot(dataDT, aes(x = housing, fill = loan)) +
geom_bar(position = "dodge") +
labs(title = "Tình trạng nhà cửa và vay tiêu dùng",
x = "Tình trạng nhà cửa", y = "Số lượng") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Dựa trên bảng tần số và biểu đồ, ta nhận thấy rằng:
Trong số những khách hàng không vay mua nhà, có 285 người vay tiêu dùng, chiếm khoảng 14,5%.
Trong khi đó, với nhóm khách hàng có vay mua nhà, có 406 người vay tiêu dùng, chiếm khoảng 15,9%.
Điều này cho thấy rằng tỷ lệ vay tiêu dùng ở nhóm có vay mua nhà cao hơn một chút so với nhóm không vay mua nhà. Biểu đồ cũng minh họa rõ sự chênh lệch nhỏ này khi cột màu xanh (vay tiêu dùng) ở nhóm “yes” (vay mua nhà) cao hơn so với nhóm “no”.
Tuy sự khác biệt là không quá lớn, nhưng nó có thể gợi ý rằng khách hàng vay mua nhà có xu hướng vay thêm tiêu dùng nhiều hơn. Để khẳng định chắc chắn mối quan hệ này có ý nghĩa thống kê hay không, ta cần thực hiện thêm kiểm định thống kê phù hợp
prop_table <- prop.table(table_housing_loan, margin = 1)
prop_table
##
## no yes
## no 0.8547401 0.1452599
## yes 0.8413443 0.1586557
diff_prop <- prop_table["yes", "yes"] - prop_table["no", "yes"]
diff_prop
## [1] 0.01339579
library(epitools)
rr_result <- riskratio(table_housing_loan)
rr_result$measure
## risk ratio with 95% C.I.
## estimate lower upper
## no 1.000000 NA NA
## yes 1.092219 0.9499327 1.255819
Giải thích:
RR = 1.092 nghĩa là nhóm khách hàng có nhà có nguy cơ vay tiêu dùng cao hơn khoảng 9,2% so với nhóm không có nhà.
Nói cách khác, dù có sự chênh lệch nhẹ, ta không thể khẳng định chắc chắn rằng nhóm vay mua nhà có xu hướng vay tiêu dùng nhiều hơn so với nhóm còn lại.
Mặc dù khách hàng có nhà nhà có tỷ lệ vay tiêu dùng cao hơn một chút (RR > 1), nhưng sự khác biệt này chưa đủ để khẳng định có ý nghĩa thống kê. Để đưa ra kết luận chắc chắn, cần thêm dữ liệu hoặc kiểm định bổ sung như kiểm định chi bình phương.
or_result <- oddsratio(table_housing_loan)
or_result$measure
## odds ratio with 95% C.I.
## estimate lower upper
## no 1.000000 NA NA
## yes 1.109426 0.9417053 1.308516
or_result$conf.int
## NULL
Giải thích:
Giả thuyết kiểm định
chisq.test(table_housing_loan)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table_housing_loan
## X-squared = 1.4374, df = 1, p-value = 0.2306
Kết quả kiểm định:
Giá trị thống kê Chi-squared = 1.4374
Bậc tự do (df) = 1
Giá trị p-value = 0.2306
Kết luận: Với p-value = 0.2306, lớn hơn mức ý nghĩa thường dùng là 0.05, ta không đủ bằng chứng để bác bỏ giả thuyết H₀.Nói cách khác, dữ liệu không cho thấy mối liên hệ có ý nghĩa thống kê giữa việc khách hàng vay mua nhà và việc họ vay tiêu dùng.
Xác định xem trình độ học vấn (education) có liên quan đến nghề nghiệp (job) hay không.
table_edu_job <- table(dataDT$education, dataDT$job)
table_edu_job
##
## admin. blue-collar entrepreneur housemaid management retired
## primary 17 369 26 57 39 80
## secondary 393 524 58 28 116 105
## tertiary 51 12 73 22 787 31
## unknown 17 41 11 5 27 14
##
## self-employed services student technician unemployed unknown
## primary 15 25 2 15 26 7
## secondary 76 363 47 520 68 8
## tertiary 88 16 19 211 32 8
## unknown 4 13 16 22 2 15
library(ggplot2)
ggplot(dataDT, aes(x = education, fill = job)) +
geom_bar(position = "dodge") +
labs(title = "Phân phối nghề nghiệp theo trình độ học vấn",
x = "Trình độ học vấn", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
Dựa trên bảng tần số và biểu đồ phân phối nghề nghiệp theo trình độ học vấn, ta có thể rút ra các nhận xét sau:
Trình độ học vấn phổ biến nhất là “secondary” (trung học) với số lượng áp đảo ở hầu hết các nhóm nghề, đặc biệt là:
blue-collar (lao động chân tay) với 524 người.
technician (kỹ thuật viên) với 520 người.
services (dịch vụ) với 363 người.
Những người có trình độ “tertiary” (đại học hoặc cao hơn) chủ yếu làm các công việc:
management (quản lý): 787 người – nhóm nghề chiếm tỷ lệ cao nhất trong bậc học này.
technician: 211 người.
admin.: 51 người, ít hơn nhưng vẫn đáng kể.
Trình độ “primary” (tiểu học) tập trung nhiều nhất ở nhóm:
blue-collar: 369 người, phản ánh đặc điểm nghề nghiệp không yêu cầu trình độ học vấn cao.
services: 25 người, thấp hơn đáng kể.
Người có học vấn “unknown” phân bổ ít và không rõ ràng, phổ biến nhất là ở nhóm services và blue-collar, nhưng số lượng tương đối nhỏ.
Biểu đồ cho thấy mối quan hệ rõ ràng giữa trình độ học vấn và loại công việc. Trình độ học vấn càng cao (như tertiary), tỷ lệ làm các công việc chuyên môn cao (management, technician, admin.) càng nhiều. Trình độ học vấn thấp hơn (primary, secondary) thường gắn với các công việc lao động phổ thông hoặc kỹ thuật
Có sự phân hóa nghề nghiệp rõ rệt theo trình độ học vấn. Việc nâng cao trình độ học vấn có thể giúp cá nhân tiếp cận các công việc chuyên môn và quản lý với mức độ chuyên môn hóa cao hơn. không yêu cầu chuyên môn cao (blue-collar, services).
Giả thuyết kiểm định
chisq.test(table_edu_job)
## Warning in chisq.test(table_edu_job): Chi-squared approximation may be
## incorrect
##
## Pearson's Chi-squared test
##
## data: table_edu_job
## X-squared = 2840, df = 33, p-value < 2.2e-16
Kết quả kiểm định:
Giá trị Chi-squared = 2840
Bậc tự do (df) = 33
p-value < 2.2e-16
Kết luận: Với p-value < 0.05 ta bác bỏ giả thuyết H₀.Điều này có nghĩa là có mối liên hệ có ý nghĩa thống kê giữa trình độ học vấn và nghề nghiệp của khách hàng.