library(readxl)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.1
library(epitools)
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.1
library(DT)
## Warning: package 'DT' was built under R version 4.3.1
library(energy)
## Warning: package 'energy' was built under R version 4.3.1
options(digits = 4)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.1
## Warning: package 'tidyr' was built under R version 4.3.1
## Warning: package 'readr' was built under R version 4.3.1
## Warning: package 'purrr' was built under R version 4.3.1
## Warning: package 'dplyr' was built under R version 4.3.1
## Warning: package 'forcats' was built under R version 4.3.1
## Warning: package 'lubridate' was built under R version 4.3.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(caret)
## Warning: package 'caret' was built under R version 4.3.1
## Loading required package: lattice
##
## Attaching package: 'caret'
##
## The following object is masked from 'package:purrr':
##
## lift
##
## The following objects are masked from 'package:DescTools':
##
## MAE, RMSE
Khách hàng là nguồn cung cấp doanh thu, lợi nhuận cho doanh nghiệp. Việc tăng số lượng khách hàng giúp doanh nghiệp mở rộng quy mô và định hướng chiến lược phát triển dài hạn. Những khách hàng mới mang đến thêm nguồn thu cho doanh nghiệp, đồng thời tăng cường sự đa dạng trong tệp khách hàng và tạo ra nhiều cơ hội tiếp cận thị trường mới.
Khách hàng đóng vai trò quan trọng nhất đối với bất kỳ ngân hàng nào và họ có thể quyết định sự tồn tại, phát triển của ngân hàng đó. Nếu không có khách hàng sẽ không có ai mua, sử dụng sản phẩm, dịch vụ. Theo đó, việc khách hàng rút tài khoản khỏi ngân hàng có thể ảnh hưởng đến nguồn tiền gửi, lợi nhuận và không thể tồn tại, phát triển.Vì vậy bài nghiên cứu muốn phân tích các yếu tố ảnh hưởng đến quyết định của khách hàng.
Phân tích các yếu tố ảnh hưởng đến việc khách hàng quyết định rút tài khoản rời khỏi ngân hàng.
Dữ liệu được thu thập từ trang web kaggle.com . Trong bài này dữ liệu bao gồm 1000 khách hàng với 7 yếu tố được xem là có tác động đến việc khách hàng quyết định rút tài khoản rời khỏi ngân hàng.
Bài nghiên cứu sử dụng phương pháp hồi quy Logistic giải thích sự tương tác của các yếu tố lên biến phụ thuộc trong hồi quy thông qua 3 mô hình Logit, Probit, Cloglog. Từ đó đánh giá kết quả hồi quy và lựa chọn mô hình phù hợp nhất để giải quyết được các mục tiêu đề ra.
Chương 1: Tổng quan nghiên cứu
Chương 2: Cơ sở lý thuyết và dữ liệu nghiên cứu
CHương 3: Phân tích dữ liệu
Chương 4: Kết quả mô hình nghiên cứu
Chương 5: Kết luận và khuyến nghị
Bộ dữ liệu này chứa thông tin chi tiết về khách hàng của ngân hàng và phản ánh thực tế liệu khách hàng đã rời ngân hàng (đóng tài khoản) hay tiếp tục là khách hàng.
Dữ liệu bao gồm 7 Biến và 1000 quan sát.
Exited : Khách hàng có rời khỏi ngân hàng hay không?, có 2 giá trị 1 (rời khỏi) và 0(không rời khỏi)
Gender : Giới Tính của khách hàng, có 2 giá trị Female và Male
Age : Tuổi của khách hàng
Tenure : Số năm khách hàng gắn bó
HasCrCard :Có thẻ tín dụng hay không?, có 2 giá trị Yes và No
IsActiveMember : Có phải là khách hàng thân thiết hay không?, có 2 giá trị Yes và No
EstimatedSalary : Tiền lương của khách hàng
SLTL<- read_excel("C:/Users/pc/Downloads/SLPT.xlsx")
str(SLTL)
## tibble [1,000 × 8] (S3: tbl_df/tbl/data.frame)
## $ RowNumber : num [1:1000] 1 2 3 4 5 6 7 8 9 10 ...
## $ Gender : chr [1:1000] "Male" "Male" "Female" "Female" ...
## $ Age : num [1:1000] 47 33 40 43 32 55 47 39 45 33 ...
## $ Tenure : num [1:1000] 5 1 5 4 2 6 5 4 1 5 ...
## $ HasCrCard : chr [1:1000] "Yes" "No" "No" "Yes" ...
## $ IsActiveMember : chr [1:1000] "No" "Yes" "Yes" "Yes" ...
## $ EstimatedSalary: num [1:1000] 162761 175179 177100 66406 59560 ...
## $ Exited : num [1:1000] 0 0 0 0 0 0 0 0 1 1 ...
datatable(SLTL)
\(Exited= \beta_0 + \beta_1 Gender + \beta_2Age+\beta_3HasCrCard+\beta_4IsActiveMember+\beta_5EstimatedSalary\)
Biến phụ thuộc là biến Exited
Biệc độc lập là Gender, Age, HasCrCard, IsActiveMember, EstimatedSalary
###3.1.1 Biến định tính làm biến phụ thuộc
Ta chọn biến Exited làm biến phụ thuộc. Vì việc khách hàng rời bỏ có thể bị ảnh hưởng bởi các yếu tố như là độ tuổi, tiền lương, giới tính, ….
Bảng Tần Số
table(SLTL$Exited)
##
## 0 1
## 787 213
Bảng Tần Suất
table(SLTL$Exited)/sum(table(SLTL$Exited))
##
## 0 1
## 0.787 0.213
Đồ thị
ggplot(SLTL,aes(Exited))+ geom_bar(color = "green", fill = "green")+ geom_text(aes(label = scales :: percent(after_stat(count/sum(count)), accuracy= 0.01)), stat= 'count', color = 'black', vjust = -.5)+ ylab("Number")+ xlab("Exited")
Trong 1000 khách hàng của ngân hàng :
Có 787 khách hàng ( chiếm 78.7% ) không rời khỏi ngân hàng.
Có 213 khách hàng ( chiếm 21.3% ) rời khỏi ngân hàng.
Ta chọn biến Tenure làm biến phụ thuộc Vì muốn phân tích số năm khách hàng gắn bó với ngân hàng có chịu ảnh hưởng bởi các yếu tố khác hay không.
summary(SLTL$Tenure)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 3.00 5.00 5.03 7.00 10.00
Số năm khách hàng gắn bó với ngân hàng nhiều nhất là : 10 năm
Số năm khách hàng gắn bó với ngân hàng thấp nhất là 0 năm
Số năm trung bình khách hàng gắn bó với ngân hàng là 5 năm
table(SLTL$Tenure)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 40 91 106 111 96 112 102 102 99 83 58
Đồ thị
hist(SLTL$Tenure)
table(SLTL$Gender)
##
## Female Male
## 463 537
table(SLTL$Gender)/sum(table(SLTL$Gender))
##
## Female Male
## 0.463 0.537
Đồ thị
ggplot(SLTL,aes(Gender))+ geom_bar(color = "blue", fill = "blue")+ geom_text(aes(label = scales :: percent(after_stat(count/sum(count)), accuracy= 0.01)), stat= 'count', color = 'black', vjust = -.5)+ ylab("Number")+ xlab("Gender")
Trong 1000 khách hàng của ngân hàng :
Có 463 khách hàng ( chiếm 46.3% ) thuộc giới tính là Nữ
Có 537 khách hàng ( chiếm 53.7% ) thuộc giới tính là Nam
table(SLTL$HasCrCard)
##
## No Yes
## 304 696
table(SLTL$HasCrCard)/sum(table(SLTL$HasCrCard))
##
## No Yes
## 0.304 0.696
Đồ thị
ggplot(SLTL,aes(HasCrCard))+ geom_bar(color = "blue", fill = "blue")+ geom_text(aes(label = scales :: percent(after_stat(count/sum(count)), accuracy= 0.01)), stat= 'count', color = 'black', vjust = -.5)+ ylab("Number")+ xlab("HasCrCard")
Trong 1000 khách hàng của ngân hàng :
Có 304 khách hàng ( chiếm 30.4% ) không có sử dụng thẻ tín dụng.
Có 696 khách hàng ( chiếm 69.6% ) có sử dụng thẻ tín dụng.
table(SLTL$IsActiveMember)
##
## No Yes
## 494 506
table(SLTL$IsActiveMember)/sum(table(SLTL$IsActiveMember))
##
## No Yes
## 0.494 0.506
Đồ thị
ggplot(SLTL,aes(IsActiveMember))+ geom_bar(color = "green", fill = "green")+ geom_text(aes(label = scales :: percent(after_stat(count/sum(count)), accuracy= 0.01)), stat= 'count', color = 'black', vjust = -.5)+ ylab("Number")+ xlab("IsActiveMember")
Trong 1000 khách hàng của ngân hàng :
Có 494 khách hàng ( chiếm 49.4% ) không phải là thành viên thân thiết của ngân hàng.
Có 506 khách hàng ( chiếm 50.6% ) là thành viên thân thiết của ngân hàng.
summary(SLTL$EstimatedSalary)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 247 52539 101665 100789 147290 199971
Tiền lương ước tính cao nhất là : 199970.7$
Tiền lương ước tính thấp nhất là 247.4$
Tiền lương ước tính trung bình là 100789.1$
Đồ thị
hist(SLTL$EstimatedSalary)
summary(SLTL$Age)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.0 31.0 37.0 39.1 44.0 85.0
Tuổi của khách hàng cao nhất là : 85 tuổi
Tuổi của khách hàng thấp nhất là 18 tuổi
Trung bình Tuổi của khách hàng là 39 tuổi
Đồ thị
hist(SLTL$Age)
Bảng tần suất
A<-table(SLTL$HasCrCard,SLTL$Exited)
prop.table(A)
##
## 0 1
## No 0.236 0.068
## Yes 0.551 0.145
addmargins(A)
##
## 0 1 Sum
## No 236 68 304
## Yes 551 145 696
## Sum 787 213 1000
Trong 787 người không rời khỏi ngân hàng có 236 người không có thẻ tín dụng và 551 người có thẻ tín dụng.
Trong 213 người rời khỏi ngân hàng có 68 người không có thẻ tín dụng và 145 người có thẻ tín dụng.
ggplot(SLTL, aes(Exited, fill = HasCrCard)) + geom_bar(position = 'dodge')
Tính rủi ro tương đối
riskratio(A)
## $data
##
## 0 1 Total
## No 236 68 304
## Yes 551 145 696
## Total 787 213 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## No 1.0000 NA NA
## Yes 0.9314 0.722 1.201
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.5839 0.6146 0.5855
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
riskratio(A, rev = 'c')
## $data
##
## 1 0 Total
## No 68 236 304
## Yes 145 551 696
## Total 213 787 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## No 1.00 NA NA
## Yes 1.02 0.9495 1.095
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.5839 0.6146 0.5855
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ chênh
oddsratio(A)
## $data
##
## 0 1 Total
## No 236 68 304
## Yes 551 145 696
## Total 787 213 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## No 1.0000 NA NA
## Yes 0.9126 0.6605 1.27
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.5839 0.6146 0.5855
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người không rời khỏi và rời khỏi ngân hàng mà không có thẻ tín dụng so với người không rời khỏi và rời khỏi ngân hàng mà có thẻ tín dụng là 0.9126
oddsratio(A, rev = 'c')
## $data
##
## 1 0 Total
## No 68 236 304
## Yes 145 551 696
## Total 213 787 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## No 1.000 NA NA
## Yes 1.096 0.7875 1.514
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.5839 0.6146 0.5855
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người rời khỏi và không rời khỏi ngân hàng mà không có thẻ tín dụng so với người rời khỏi và không rời khỏi ngân hàng mà có thẻ tín dụng là 1.096.
Bảng tần suất
E <-table(SLTL$IsActiveMember,SLTL$Exited)
prop.table(E)
##
## 0 1
## No 0.364 0.130
## Yes 0.423 0.083
addmargins(E)
##
## 0 1 Sum
## No 364 130 494
## Yes 423 83 506
## Sum 787 213 1000
Trong 213 người rời khỏi ngân hàng có 130 người không phải là thành viên thân thiết và 83 người có là khách hàng thân thiết.
Trong 787 người không rời khỏi ngân hàng có 364 người không phải là thành viên thân thiết và 423 người là khách hàng thân thiết
ggplot(SLTL, aes(Exited, fill = IsActiveMember)) + geom_bar(position = 'dodge')
Tính rủi ro tương đối
riskratio(E)
## $data
##
## 0 1 Total
## No 364 130 494
## Yes 423 83 506
## Total 787 213 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## No 1.0000 NA NA
## Yes 0.6233 0.4874 0.7971
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.0001297 0.0001476 0.0001293
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
riskratio(E, rev = 'c')
## $data
##
## 1 0 Total
## No 130 364 494
## Yes 83 423 506
## Total 213 787 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## No 1.000 NA NA
## Yes 1.135 1.063 1.211
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.0001297 0.0001476 0.0001293
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ chênh
oddsratio(E)
## $data
##
## 0 1 Total
## No 364 130 494
## Yes 423 83 506
## Total 787 213 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## No 1.0000 NA NA
## Yes 0.5501 0.4027 0.748
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.0001297 0.0001476 0.0001293
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người không rời khỏi và rời khỏi ngân hàng mà không là thành viên thân thiết so với người không rời khỏi và rời khỏi ngân hàng mà là thành viên thân thiết là 0.5501
oddsratio(E, rev = 'c')
## $data
##
## 1 0 Total
## No 130 364 494
## Yes 83 423 506
## Total 213 787 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## No 1.000 NA NA
## Yes 1.818 1.337 2.484
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.0001297 0.0001476 0.0001293
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người rời khỏi và không rời khỏi ngân hàng mà không là thành viên thân thiết so với người rời khỏi và không rời khỏi ngân hàng mà là thành viên thân thiết là 1.818
Bảng tần suất
R <-table(SLTL$Gender,SLTL$Exited)
prop.table(R)
##
## 0 1
## Female 0.333 0.130
## Male 0.454 0.083
addmargins(R)
##
## 0 1 Sum
## Female 333 130 463
## Male 454 83 537
## Sum 787 213 1000
Trong 787 người không rời khỏi ngân hàng có 333 người có giới tính là nữ và 454 người có giới tính là nam.
Trong 213 người rời khỏi ngân hàng có 130 người có giới tính là nữ và 83 người có giới tính là nam.
Tính rủi ro tương đối
riskratio(R)
## $data
##
## 0 1 Total
## Female 333 130 463
## Male 454 83 537
## Total 787 213 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Female 1.0000 NA NA
## Male 0.5505 0.4305 0.7038
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 1.241e-06 1.4e-06 1.169e-06
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
riskratio(R, rev = 'c')
## $data
##
## 1 0 Total
## Female 130 333 463
## Male 83 454 537
## Total 213 787 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## Female 1.000 NA NA
## Male 1.175 1.099 1.257
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 1.241e-06 1.4e-06 1.169e-06
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ chênh
oddsratio(R)
## $data
##
## 0 1 Total
## Female 333 130 463
## Male 454 83 537
## Total 787 213 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Female 1.0000 NA NA
## Male 0.4689 0.3431 0.6381
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Female NA NA NA
## Male 1.241e-06 1.4e-06 1.169e-06
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người không rời khỏi và rời khỏi ngân hàng có giới tính là nữ so với người không rời khỏi và rời khỏi ngân hàng có giới tính là nam là 0.4689
oddsratio(E, rev = 'c')
## $data
##
## 1 0 Total
## No 130 364 494
## Yes 83 423 506
## Total 213 787 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## No 1.000 NA NA
## Yes 1.818 1.337 2.484
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.0001297 0.0001476 0.0001293
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người rời khỏi và không rời khỏi ngân hàng có giới tính là nữ so với người rời khỏi và không rời khỏi ngân hàng có giới tính là nam là 1.818
Bảng tần suất
Salary <- cut(SLTL$EstimatedSalary, breaks = c(0,100789,199971), labels = c('thấp', 'cao'))
SLTL <- mutate(SLTL,Salary)
T <-table(SLTL$Salary,SLTL$Exited)
prop.table(T)
##
## 0 1
## thấp 0.389 0.107
## cao 0.398 0.106
addmargins(T)
##
## 0 1 Sum
## thấp 389 107 496
## cao 398 106 504
## Sum 787 213 1000
Trong 787 người không rời khỏi ngân hàng có 389 người có thu nhập thấp và 398 người có thu nhập cao.
Trong 213 người rời khỏi ngân hàng có 107 người có thu nhập thấp và 106 người có thu nhập cao.
Tính rủi ro tương đối
riskratio(T)
## $data
##
## 0 1 Total
## thấp 389 107 496
## cao 398 106 504
## Total 787 213 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## thấp 1.0000 NA NA
## cao 0.9749 0.7682 1.237
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.835 0.8773 0.8346
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
riskratio(T, rev = 'c')
## $data
##
## 1 0 Total
## thấp 107 389 496
## cao 106 398 504
## Total 213 787 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## thấp 1.000 NA NA
## cao 1.007 0.944 1.074
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.835 0.8773 0.8346
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ chênh
oddsratio(T)
## $data
##
## 0 1 Total
## thấp 389 107 496
## cao 398 106 504
## Total 787 213 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## thấp 1.0000 NA NA
## cao 0.9683 0.7148 1.312
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.835 0.8773 0.8346
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người không rời khỏi và rời khỏi ngân hàng có thu nhập thấp so với người không rời khỏi và rời khỏi ngân hàng có thu nhập cao là 0.9683
oddsratio(T, rev = 'c')
## $data
##
## 1 0 Total
## thấp 107 389 496
## cao 106 398 504
## Total 213 787 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## thấp 1.000 NA NA
## cao 1.033 0.7625 1.399
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.835 0.8773 0.8346
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người rời khỏi và không rời khỏi ngân hàng tài khoản có thu nhập thấp so với người rời khỏi và không rời khỏi ngân hàng có thu nhập cao là 1.033
Bảng tần suất
Age1 <- cut(SLTL$Age, breaks = c(0,30,85), labels = c('duoi 30', 'tren 30'))
SLTL <- mutate(SLTL,Age1)
Z<-table(SLTL$Age1,SLTL$Exited)
prop.table(Z)
##
## 0 1
## duoi 30 0.192 0.017
## tren 30 0.595 0.196
addmargins(Z)
##
## 0 1 Sum
## duoi 30 192 17 209
## tren 30 595 196 791
## Sum 787 213 1000
Trong 787 người không rời khỏi ngân hàng có 192 người dưới 30 tuổi và 595 người trên 30 tuổi .
Trong 213 người rời khỏi ngân hàng có 17 người dưới 30 tuổi và 196 người trên 30 tuổi.
Tính rủi ro tương đối
riskratio(Z)
## $data
##
## 0 1 Total
## duoi 30 192 17 209
## tren 30 595 196 791
## Total 787 213 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.000 NA NA
## tren 30 3.046 1.901 4.882
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 1.882e-08 2.378e-08 1.722e-07
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
riskratio(Z, rev = 'c')
## $data
##
## 1 0 Total
## duoi 30 17 192 209
## tren 30 196 595 791
## Total 213 787 1000
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.0000 NA NA
## tren 30 0.8188 0.7736 0.8667
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 1.882e-08 2.378e-08 1.722e-07
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ chênh
oddsratio(Z)
## $data
##
## 0 1 Total
## duoi 30 192 17 209
## tren 30 595 196 791
## Total 787 213 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.000 NA NA
## tren 30 3.687 2.249 6.442
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 1.882e-08 2.378e-08 1.722e-07
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người không rời khỏi và rời khỏi ngân hàng mà dưới 30 tuổi so với người không rút và rút tài khoản mà trên 30 tuổi là 3.687
oddsratio(Z, rev = 'c')
## $data
##
## 1 0 Total
## duoi 30 17 192 209
## tren 30 196 595 791
## Total 213 787 1000
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.0000 NA NA
## tren 30 0.2712 0.1552 0.4447
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 1.882e-08 2.378e-08 1.722e-07
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người rời khỏi và không rời khỏi ngân hàng mà dưới 30 tuổi so với người rời khỏi và không rời khỏi ngân hàng mà trên 30 tuổi là 0.2712
Bảng tần suất
Tenure1 <- cut(SLTL$Tenure, breaks = c(0,5,10), labels = c('ít', 'nhiều'))
SLTL <- mutate(SLTL,Tenure1)
M <-table(SLTL$Salary,SLTL$Tenure1)
prop.table(M)
##
## ít nhiều
## thấp 0.2698 0.2229
## cao 0.2677 0.2396
addmargins(M)
##
## ít nhiều Sum
## thấp 259 214 473
## cao 257 230 487
## Sum 516 444 960
Trong 516 khách hàng gắn bó dưới 5 năm của ngân hàng có 259 người có thu nhập thấp và 257 người có thu nhập cao. .
Trong 444 khách hàng gắn bó trên 5 năm của ngân hàng có 214 người có thu nhập thấp và 230 người người có thu nhập cao.
Tính rủi ro tương đối
riskratio(M)
## $data
##
## ít nhiều Total
## thấp 259 214 473
## cao 257 230 487
## Total 516 444 960
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## thấp 1.000 NA NA
## cao 1.044 0.9106 1.197
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.5384 0.5603 0.5375
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
riskratio(M, rev = 'c')
## $data
##
## nhiều ít Total
## thấp 214 259 473
## cao 230 257 487
## Total 444 516 960
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## thấp 1.0000 NA NA
## cao 0.9638 0.857 1.084
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.5384 0.5603 0.5375
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ chênh
oddsratio(M)
## $data
##
## ít nhiều Total
## thấp 259 214 473
## cao 257 230 487
## Total 516 444 960
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## thấp 1.000 NA NA
## cao 1.083 0.8401 1.397
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.5384 0.5603 0.5375
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người gắn bó dưới 5 năm và gắn bó trên 5 năm mà có thu nhập thấp so với người gắn bó dưới 5 năm và gắn bó trên 5 năm mà có thu nhập cao là 1.083
oddsratio(M, rev = 'c')
## $data
##
## nhiều ít Total
## thấp 214 259 473
## cao 230 257 487
## Total 444 516 960
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## thấp 1.0000 NA NA
## cao 0.9234 0.7161 1.19
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thấp NA NA NA
## cao 0.5384 0.5603 0.5375
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người gắn bó trên 5 năm và gắn bó dưới 5 năm mà có thu nhập thấp so với người gắn bó trên 5 năm và gắn bó dưới 5 năm mà có thu nhập cao là 0.9234
Bảng tần suất
N <-table(SLTL$Age1,SLTL$Tenure1)
prop.table(N)
##
## ít nhiều
## duoi 30 0.11979 0.09271
## tren 30 0.41771 0.36979
addmargins(N)
##
## ít nhiều Sum
## duoi 30 115 89 204
## tren 30 401 355 756
## Sum 516 444 960
Trong 516 khách hàng gắn bó dưới 5 năm của ngân hàng có 115 người dưới 30 tuổi và 401 người trên 30 tuổi .
Trong 444 khách hàng gắn bó trên 5 năm của ngân hàng có 89 người dưới 30 tuổi và 355 người trên 30 tuổi.
Tính rủi ro tương đối
riskratio(N)
## $data
##
## ít nhiều Total
## duoi 30 115 89 204
## tren 30 401 355 756
## Total 516 444 960
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.000 NA NA
## tren 30 1.076 0.905 1.28
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 0.3989 0.429 0.3972
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
riskratio(N, rev = 'c')
## $data
##
## nhiều ít Total
## duoi 30 89 115 204
## tren 30 355 401 756
## Total 444 516 960
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.0000 NA NA
## tren 30 0.9409 0.8196 1.08
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 0.3989 0.429 0.3972
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ chênh
oddsratio(N)
## $data
##
## ít nhiều Total
## duoi 30 115 89 204
## tren 30 401 355 756
## Total 516 444 960
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.000 NA NA
## tren 30 1.143 0.8379 1.564
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 0.3989 0.429 0.3972
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người gắn bó dưới 5 năm và gắn bó trên 5 năm mà dưới 30 tuổi so với người gắn bó dưới 5 năm và gắn bó trên 5 năm mà trên 30 tuổi là 1.143
oddsratio(N, rev = 'c')
## $data
##
## nhiều ít Total
## duoi 30 89 115 204
## tren 30 355 401 756
## Total 444 516 960
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## duoi 30 1.0000 NA NA
## tren 30 0.8746 0.6393 1.193
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## duoi 30 NA NA NA
## tren 30 0.3989 0.429 0.3972
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ giữa người gắn bó trên 5 năm và gắn bó dưới 5 năm mà dưới 30 tuổi so với người gắn bó trên 5 năm và gắn bó dưới mà trên 30 tuổi là 0.8746.
Kiểm định tính độc lập
Giả thuyết:
chisq.test(A)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: A
## X-squared = 0.21, df = 1, p-value = 0.6
Với p-value = 0.6445 > 0.05 , chấp nhận H0. Vì vậy chưa có cơ sở để nói biến HasCrCard có liên quan đến Biến Exited.
Kiểm định tính độc lập
Giả thuyết:
chisq.test(E)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: E
## X-squared = 14, df = 1, p-value = 2e-04
Với p-value = 0.0001 < 0.05 , bác bỏ H0. Vì vậy Biến IsActiveMember có liên quan đến Biến Exited.
Kiểm định tính độc lập
Giả thuyết:
chisq.test(R)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: R
## X-squared = 23, df = 1, p-value = 2e-06
Với p-value < 0.05 , bác bỏ H0. Vì vậy biến Gender có liên quan đến Biến Exited.
Kiểm định tính độc lập
Giả thuyết:
chisq.test(SLTL$Exited,SLTL$EstimatedSalary)
## Warning in chisq.test(SLTL$Exited, SLTL$EstimatedSalary): Chi-squared
## approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: SLTL$Exited and SLTL$EstimatedSalary
## X-squared = 1000, df = 998, p-value = 0.5
Với p-value > 0.05 , chấp nhận H0. Vì vậy chưa có cơ sở để nói biến EstimatedSalary có liên quan đến Biến Exited.
Kiểm định tính độc lập
Giả thuyết:
chisq.test(SLTL$Exited,SLTL$Age)
## Warning in chisq.test(SLTL$Exited, SLTL$Age): Chi-squared approximation may be
## incorrect
##
## Pearson's Chi-squared test
##
## data: SLTL$Exited and SLTL$Age
## X-squared = 214, df = 62, p-value <2e-16
Với p-value < 0.05 , bác bỏ H0.Vì vậy Biến Age có liên quan đến Biến Exited.
ggplot(SLTL,aes(Exited))+ geom_bar(color = "black", fill = "white")+ geom_text(aes(label = scales :: percent(after_stat(count/sum(count)))), stat= 'count', color = 'black', vjust = -.5)+ ylab("Số người")+ xlab("Exited")
ggplot(SLTL,aes(Gender))+ geom_bar(color = "black", fill = "white")+ geom_text(aes(label = scales :: percent(after_stat(count/sum(count)))), stat= 'count', color = 'black', vjust = -.5)+ ylab("Số người")+ xlab("Gender")
Ước lượng tỷ lệ khách hàng nam rời khỏi ngân hàng:
d<- SLTL[SLTL$Gender == "Male",]
prop.test(length(d$Gender), length(SLTL$Gender), p = 0.54)
##
## 1-sample proportions test with continuity correction
##
## data: length(d$Gender) out of length(SLTL$Gender), null probability 0.54
## X-squared = 0.025, df = 1, p-value = 0.9
## alternative hypothesis: true p is not equal to 0.54
## 95 percent confidence interval:
## 0.5055 0.5682
## sample estimates:
## p
## 0.537
Ước lượng tỷ lệ khách hàng nữ rời khỏi ngân hàng:
d<- SLTL[SLTL$Gender == "Female",]
prop.test(length(d$Gender), length(SLTL$Gender), p = 0.46)
##
## 1-sample proportions test with continuity correction
##
## data: length(d$Gender) out of length(SLTL$Gender), null probability 0.46
## X-squared = 0.025, df = 1, p-value = 0.9
## alternative hypothesis: true p is not equal to 0.46
## 95 percent confidence interval:
## 0.4318 0.4945
## sample estimates:
## p
## 0.463
Ước lượng sự chênh lệch
rmm<- SLTL[SLTL$Gender == "Male",]
rmm1<-d[d$Exited=="0",]
rmf <- SLTL[SLTL$Gender == 'Female',]
rmf1<-rmf[rmf$Exited=="1",]
a <- c(nrow(rmm), nrow(rmf))
b <- c(nrow(rmm1), nrow(rmf1))
prop.test(b,a)
##
## 2-sample test for equality of proportions with continuity correction
##
## data: b out of a
## X-squared = 114, df = 1, p-value <2e-16
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.2794 0.3993
## sample estimates:
## prop 1 prop 2
## 0.6201 0.2808
cv <- SLTL[, sapply(SLTL, is.numeric)]
cor_matrix <- cor(cv)
cor_matrix
## RowNumber Age Tenure EstimatedSalary Exited
## RowNumber 1.000000 0.02390 0.004749 -0.008825 -0.007737
## Age 0.023898 1.00000 0.033367 -0.026122 0.281193
## Tenure 0.004749 0.03337 1.000000 0.048866 -0.032832
## EstimatedSalary -0.008825 -0.02612 0.048866 1.000000 -0.017332
## Exited -0.007737 0.28119 -0.032832 -0.017332 1.000000
Sau khi kiểm định tính độc lập thì mô hình nghiên cứu bao gồm biến phụ thuộc là Exited và 3 biến độc lập là IsActiveMember, Gender, Age.
MH1 <- glm(Exited ~ IsActiveMember + Gender + Age , family= binomial( link = 'logit'), data=SLTL)
levels(factor(SLTL$Exited))
## [1] "0" "1"
summary(MH1)
##
## Call:
## glm(formula = Exited ~ IsActiveMember + Gender + Age, family = binomial(link = "logit"),
## data = SLTL)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.21363 0.31024 -10.36 < 2e-16 ***
## IsActiveMemberYes -0.92923 0.17685 -5.25 1.5e-07 ***
## GenderMale -0.83198 0.16839 -4.94 7.8e-07 ***
## Age 0.06656 0.00733 9.08 < 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: 1035.81 on 999 degrees of freedom
## Residual deviance: 907.32 on 996 degrees of freedom
## AIC: 915.3
##
## Number of Fisher Scoring iterations: 5
Kiểm định tính phù hợp của mô hình logit:
H0: Mô hình không phù hợp với dữ liệu
H1: Mô hình phù hợp với dữ liệu
lr_test1 <- anova(MH1, test = "Chisq")
p_value1 <- lr_test1$Pr[2]
p_value1
## [1] 0.0001234
Với p-value < 5%. Ta kết luận mô hình logit phù hợp với dữ liệu.
MH2 <- glm(Exited ~ IsActiveMember + Gender + Age , family= binomial( link = 'probit'), data=SLTL)
summary(MH2)
##
## Call:
## glm(formula = Exited ~ IsActiveMember + Gender + Age, family = binomial(link = "probit"),
## data = SLTL)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.91499 0.17677 -10.83 < 2e-16 ***
## IsActiveMemberYes -0.50098 0.09849 -5.09 3.6e-07 ***
## GenderMale -0.48086 0.09544 -5.04 4.7e-07 ***
## Age 0.03897 0.00418 9.33 < 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: 1035.81 on 999 degrees of freedom
## Residual deviance: 906.47 on 996 degrees of freedom
## AIC: 914.5
##
## Number of Fisher Scoring iterations: 5
Kiểm định tính phù hợp của mô hình probit:
H0: Mô hình không phù hợp với dữ liệu
H1: Mô hình phù hợp với dữ liệu
lr_test <- anova(MH2, test = "Chisq")
p_value <- lr_test$Pr[2]
p_value
## [1] 0.0001234
Với p-value < 5%. Ta kết luận mô hình probit phù hợp với dữ liệu.
MH3 <- glm(Exited ~ IsActiveMember + Gender + Age , family= binomial( link = 'cloglog'), data=SLTL)
levels(factor(SLTL$Exited))
## [1] "0" "1"
summary(MH3)
##
## Call:
## glm(formula = Exited ~ IsActiveMember + Gender + Age, family = binomial(link = "cloglog"),
## data = SLTL)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.90897 0.25337 -11.48 < 2e-16 ***
## IsActiveMemberYes -0.91602 0.15197 -6.03 1.7e-09 ***
## GenderMale -0.68526 0.14211 -4.82 1.4e-06 ***
## Age 0.05344 0.00568 9.42 < 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: 1035.81 on 999 degrees of freedom
## Residual deviance: 908.26 on 996 degrees of freedom
## AIC: 916.3
##
## Number of Fisher Scoring iterations: 7
Kiểm định tính phù hợp của mô hình cloglog:
H0: Mô hình không phù hợp với dữ liệu
H1: Mô hình phù hợp với dữ liệu
lr_test <- anova(MH3, test = "Chisq")
p_value <- lr_test$Pr[2]
p_value
## [1] 0.0001234
Với p-value < 5%. Ta kết luận mô hình cloglog phù hợp với dữ liệu.
Tiêu chí AIC
aic1 <- AIC(MH1)
aic2 <- AIC(MH2)
aic3 <- AIC(MH3)
AIC <-cbind(aic1,aic2,aic3)
AIC
## aic1 aic2 aic3
## [1,] 915.3 914.5 916.3
Tiêu chí Deviance
de1 <- deviance(MH1)
de2 <- deviance(MH2)
de3 <- deviance(MH3)
deviance <- cbind(de1,de2,de3)
deviance
## de1 de2 de3
## [1,] 907.3 906.5 908.3
Tiêu chí Brier Score
bs1 <- BrierScore(MH1)
bs2 <- BrierScore(MH2)
bs3 <- BrierScore(MH3)
BrierScore <- cbind(bs1,bs2,bs3)
BrierScore
## bs1 bs2 bs3
## [1,] 0.1458 0.1459 0.1453
-> Giá trị của 3 tiêu chí trên càng nhỏ nghĩa là mô hình càng tốt.Vì vậy ta lựa chọn mô hình hàm hồi quy probit.
summary(MH2)
##
## Call:
## glm(formula = Exited ~ IsActiveMember + Gender + Age, family = binomial(link = "probit"),
## data = SLTL)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.91499 0.17677 -10.83 < 2e-16 ***
## IsActiveMemberYes -0.50098 0.09849 -5.09 3.6e-07 ***
## GenderMale -0.48086 0.09544 -5.04 4.7e-07 ***
## Age 0.03897 0.00418 9.33 < 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: 1035.81 on 999 degrees of freedom
## Residual deviance: 906.47 on 996 degrees of freedom
## AIC: 914.5
##
## Number of Fisher Scoring iterations: 5
Sau khi thực hiện hồi quy probit, ta được kết quả như sau:
Yếu tố thành viên thân thiết (IsActiveMember) có ý nghĩa thống kê với biến Exited (Khách hàng rời bỏ) cho thấy yếu tố khách hàng thân thiết sẽ ảnh hưởng đến việc khách hàng rời bỏ và yếu tố người là khách hàng thân thiết của ngân hàng có tỷ lệ rời bỏ cao hơn yếu tố người không là khách hàng thân thiết của ngân hàng.
Yếu tố giới tính (Gender) có ý nghĩa thống kê với biến Exited (Khách hàng rời bỏ) cho thấy giới tính sẽ ảnh hưởng đến việc khách hàng rời bỏ và yếu tố khách hàng có giới tính là nam có tỷ lệ rời bỏ cao hơn yếu tố người có giới tính là nữ.
Yếu tố độ tuổi (Age) có ý nghĩa thống kê với biến Exited (Khách hàng rời bỏ) cho thấy yếu tố tuổi cũng sẽ ảnh hưởng đến việc khách hàng rời bỏ.
confint.default(MH2)
## 2.5 % 97.5 %
## (Intercept) -2.26145 -1.56852
## IsActiveMemberYes -0.69403 -0.30794
## GenderMale -0.66793 -0.29380
## Age 0.03079 0.04716
PS <- glm(Tenure~ EstimatedSalary + Age + HasCrCard + Gender+ IsActiveMember , family = poisson(link = 'log'), data = SLTL)
summary(PS)
##
## Call:
## glm(formula = Tenure ~ EstimatedSalary + Age + HasCrCard + Gender +
## IsActiveMember, family = poisson(link = "log"), data = SLTL)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.50e+00 6.39e-02 23.43 <2e-16 ***
## EstimatedSalary 4.77e-07 2.45e-07 1.95 0.051 .
## Age 1.46e-03 1.23e-03 1.19 0.235
## HasCrCardYes 5.05e-03 3.07e-02 0.16 0.869
## GenderMale -2.99e-02 2.83e-02 -1.06 0.291
## IsActiveMemberYes 4.62e-02 2.85e-02 1.63 0.104
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1887.2 on 999 degrees of freedom
## Residual deviance: 1877.7 on 994 degrees of freedom
## AIC: 5113
##
## Number of Fisher Scoring iterations: 5
Qua kết quả nghiên cứu, ta thấy được rằng yếu tố khách hàng thân thiết, giới tính, độ tuổi sẽ ảnh hưởng một phần nào đó đến việc khách hàng quyết định sẽ rời bỏ ngân hàng. Dựa vào đó ngân hàng sẽ có thể đưa ra những chính sách và giải pháp để hạn chế việc khách hàng rời bỏ ngân hàng.
Ngân hàng nên có những chính sách ưu đãi dành cho những khách hàng như tích điểm, khuyến mãi,hưởng lãi suất, phí và chi phí ưu đãi…
các dịch vụ chăm sóc khách hàng cá nhân, bảo đảm cho họ luôn tiếp cận tức khắc với nhân viên phụ trách tài khoản của mình hoặc cấp trên để thực hiện mọi giao dịch, từ việc thanh toán séc đến việc chuyển một số tiền lớn từ tài khoản này đến tài khoản khác, hoặc được tư vấn từ các nhà chuyên môn về thuế, các vấn đề về luật pháp và tài chính
Ngân hàng nên có giải pháp về sản phẩm, dịch vụ, tính năng tốt, có nhân viên phục vụ riêng và đầu tư tốt về công nghệ.
Cải thiện các kỹ năng và thái độ khi chăm sóc khách hàng để họ có những trải nghiệm tốt để được phục vụ tai ngân hàng.
T.K.Thanh, T.M.Tường, V.A.L.Duy, Bài giảng Phân tích dữ liệu định tính.