library(readxl)
datadt <- read_excel("C:/data/datadt.xlsx")
datadt
## # A tibble: 10,127 × 8
## age job marital default housing loan term_deposit Total_Relationship_C…¹
## <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <dbl>
## 1 58 mana… married no yes no no 5
## 2 44 tech… single no yes no no 6
## 3 33 entr… married no yes yes no 4
## 4 47 blue… married no yes no no 3
## 5 33 unkn… single no no no no 5
## 6 35 mana… married no yes no no 3
## 7 28 mana… single no yes yes no 6
## 8 42 entr… single yes yes no no 2
## 9 58 reti… married no yes no no 5
## 10 43 tech… single no yes no no 6
## # ℹ 10,117 more rows
## # ℹ abbreviated name: ¹Total_Relationship_Count
datadt$term_deposit<- as.factor(datadt$term_deposit)
datadt$default<- as.factor(datadt$default)
datadt$loan<- as.factor(datadt$loan)
datadt$housing<- as.factor(datadt$housing)
datadt$age<- as.factor(datadt$age)
datadt$job<- as.factor(datadt$job)
Chọn biến loan( Có bị vỡ nợ tín dụng hay không) phụ thuộc vào biến default, marital, term_deposit, total_relationship_count,age,job,housing
TDt1 <- glm(factor(loan) ~ datadt$Total_Relationship_Count + datadt$age + datadt$marital+ datadt$housing +datadt$term_deposit +datadt$job, family = binomial(link = 'logit'), data = datadt)
summary(TDt1)
##
## Call:
## glm(formula = factor(loan) ~ datadt$Total_Relationship_Count +
## datadt$age + datadt$marital + datadt$housing + datadt$term_deposit +
## datadt$job, family = binomial(link = "logit"), data = datadt)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.40256 1.07284 0.375 0.70749
## datadt$Total_Relationship_Count -0.01765 0.01855 -0.951 0.34136
## datadt$age21 -1.22679 1.25911 -0.974 0.32989
## datadt$age22 -2.03264 1.19492 -1.701 0.08893 .
## datadt$age23 -2.12561 1.12159 -1.895 0.05807 .
## datadt$age24 -1.82543 1.09744 -1.663 0.09624 .
## datadt$age25 -1.68955 1.08717 -1.554 0.12017
## datadt$age26 -1.72456 1.07871 -1.599 0.10988
## datadt$age27 -1.98680 1.07876 -1.842 0.06551 .
## datadt$age28 -2.15258 1.07756 -1.998 0.04576 *
## datadt$age29 -2.06401 1.07456 -1.921 0.05476 .
## datadt$age30 -1.82954 1.07150 -1.707 0.08774 .
## datadt$age31 -2.07112 1.07045 -1.935 0.05301 .
## datadt$age32 -2.02801 1.07052 -1.894 0.05817 .
## datadt$age33 -2.21623 1.07246 -2.066 0.03878 *
## datadt$age34 -2.11400 1.07186 -1.972 0.04858 *
## datadt$age35 -2.19785 1.07225 -2.050 0.04039 *
## datadt$age36 -2.27121 1.07311 -2.116 0.03431 *
## datadt$age37 -2.16255 1.07261 -2.016 0.04378 *
## datadt$age38 -2.47342 1.07618 -2.298 0.02154 *
## datadt$age39 -2.33065 1.07432 -2.169 0.03005 *
## datadt$age40 -2.12677 1.07313 -1.982 0.04750 *
## datadt$age41 -1.98114 1.07335 -1.846 0.06493 .
## datadt$age42 -2.27406 1.07668 -2.112 0.03468 *
## datadt$age43 -2.20383 1.07669 -2.047 0.04067 *
## datadt$age44 -2.23476 1.07521 -2.078 0.03767 *
## datadt$age45 -2.34854 1.07868 -2.177 0.02946 *
## datadt$age46 -2.28662 1.07875 -2.120 0.03403 *
## datadt$age47 -2.24978 1.08141 -2.080 0.03749 *
## datadt$age48 -2.60651 1.08738 -2.397 0.01653 *
## datadt$age49 -2.15641 1.07958 -1.997 0.04578 *
## datadt$age50 -2.44604 1.08693 -2.250 0.02442 *
## datadt$age51 -2.52740 1.08773 -2.324 0.02015 *
## datadt$age52 -1.99102 1.08104 -1.842 0.06551 .
## datadt$age53 -2.34997 1.08404 -2.168 0.03017 *
## datadt$age54 -2.67963 1.09611 -2.445 0.01450 *
## datadt$age55 -2.16677 1.08526 -1.997 0.04587 *
## datadt$age56 -2.56987 1.09920 -2.338 0.01939 *
## datadt$age57 -2.26382 1.08766 -2.081 0.03740 *
## datadt$age58 -2.65217 1.10051 -2.410 0.01595 *
## datadt$age59 -1.83647 1.08758 -1.689 0.09130 .
## datadt$age60 -2.49687 1.10222 -2.265 0.02349 *
## datadt$age61 -1.78155 1.26559 -1.408 0.15922
## datadt$maritalsingle -0.33433 0.06313 -5.296 1.19e-07 ***
## datadt$housingyes 0.45283 0.08986 5.039 4.67e-07 ***
## datadt$term_deposityes -0.24556 0.16688 -1.471 0.14116
## datadt$jobblue-collar -0.28680 0.09349 -3.068 0.00216 **
## datadt$jobentrepreneur 0.13807 0.16458 0.839 0.40150
## datadt$jobhousemaid -0.57625 0.27684 -2.081 0.03739 *
## datadt$jobmanagement -0.32578 0.11018 -2.957 0.00311 **
## datadt$jobretired 0.15520 0.19164 0.810 0.41805
## datadt$jobself-employed -0.26411 0.19399 -1.361 0.17336
## datadt$jobservices 0.02444 0.11008 0.222 0.82433
## datadt$jobstudent -3.29254 1.03651 -3.177 0.00149 **
## datadt$jobtechnician -0.03323 0.10438 -0.318 0.75024
## datadt$jobunemployed -0.65242 0.24359 -2.678 0.00740 **
## datadt$jobunknown -1.39132 0.72853 -1.910 0.05617 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8456.6 on 10126 degrees of freedom
## Residual deviance: 8275.6 on 10070 degrees of freedom
## AIC: 8389.6
##
## Number of Fisher Scoring iterations: 6
TDt2 <- glm(factor(loan) ~ datadt$Total_Relationship_Count + datadt$age + datadt$marital+ datadt$housing +datadt$term_deposit +datadt$job , family = binomial(link = 'probit'), data = datadt)
summary(TDt2)
##
## Call:
## glm(formula = factor(loan) ~ datadt$Total_Relationship_Count +
## datadt$age + datadt$marital + datadt$housing + datadt$term_deposit +
## datadt$job, family = binomial(link = "probit"), data = datadt)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.093096 0.591731 0.157 0.874986
## datadt$Total_Relationship_Count -0.009736 0.010130 -0.961 0.336511
## datadt$age21 -0.617875 0.703400 -0.878 0.379720
## datadt$age22 -1.065223 0.659037 -1.616 0.106022
## datadt$age23 -1.119772 0.617632 -1.813 0.069830 .
## datadt$age24 -0.951466 0.605791 -1.571 0.116272
## datadt$age25 -0.868781 0.600743 -1.446 0.148127
## datadt$age26 -0.891008 0.595499 -1.496 0.134591
## datadt$age27 -1.028283 0.595113 -1.728 0.084010 .
## datadt$age28 -1.131582 0.594299 -1.904 0.056902 .
## datadt$age29 -1.078180 0.592790 -1.819 0.068938 .
## datadt$age30 -0.947949 0.591474 -1.603 0.109003
## datadt$age31 -1.082555 0.590681 -1.833 0.066844 .
## datadt$age32 -1.056436 0.590768 -1.788 0.073737 .
## datadt$age33 -1.164381 0.591678 -1.968 0.049076 *
## datadt$age34 -1.108496 0.591483 -1.874 0.060917 .
## datadt$age35 -1.152259 0.591534 -1.948 0.051425 .
## datadt$age36 -1.197475 0.591929 -2.023 0.043073 *
## datadt$age37 -1.132684 0.591813 -1.914 0.055630 .
## datadt$age38 -1.306837 0.593253 -2.203 0.027607 *
## datadt$age39 -1.219067 0.592455 -2.058 0.039623 *
## datadt$age40 -1.115817 0.592186 -1.884 0.059533 .
## datadt$age41 -1.035588 0.592516 -1.748 0.080502 .
## datadt$age42 -1.195424 0.593870 -2.013 0.044121 *
## datadt$age43 -1.156314 0.594003 -1.947 0.051577 .
## datadt$age44 -1.176602 0.593210 -1.983 0.047317 *
## datadt$age45 -1.236565 0.594850 -2.079 0.037637 *
## datadt$age46 -1.201726 0.594940 -2.020 0.043392 *
## datadt$age47 -1.176288 0.596477 -1.972 0.048603 *
## datadt$age48 -1.373059 0.598444 -2.294 0.021769 *
## datadt$age49 -1.130588 0.595690 -1.898 0.057703 .
## datadt$age50 -1.288363 0.598802 -2.152 0.031432 *
## datadt$age51 -1.332347 0.598900 -2.225 0.026104 *
## datadt$age52 -1.038708 0.596783 -1.741 0.081769 .
## datadt$age53 -1.224678 0.597460 -2.050 0.040383 *
## datadt$age54 -1.407229 0.602423 -2.336 0.019494 *
## datadt$age55 -1.138142 0.598743 -1.901 0.057317 .
## datadt$age56 -1.342386 0.604326 -2.221 0.026331 *
## datadt$age57 -1.183351 0.599678 -1.973 0.048460 *
## datadt$age58 -1.382173 0.604741 -2.286 0.022280 *
## datadt$age59 -0.944343 0.600747 -1.572 0.115963
## datadt$age60 -1.304249 0.606564 -2.150 0.031537 *
## datadt$age61 -0.927001 0.712581 -1.301 0.193291
## datadt$maritalsingle -0.181599 0.034217 -5.307 1.11e-07 ***
## datadt$housingyes 0.241389 0.046940 5.143 2.71e-07 ***
## datadt$term_deposityes -0.128756 0.088505 -1.455 0.145726
## datadt$jobblue-collar -0.160384 0.051588 -3.109 0.001877 **
## datadt$jobentrepreneur 0.074078 0.092801 0.798 0.424726
## datadt$jobhousemaid -0.295279 0.140191 -2.106 0.035181 *
## datadt$jobmanagement -0.179304 0.059855 -2.996 0.002738 **
## datadt$jobretired 0.082051 0.105559 0.777 0.436984
## datadt$jobself-employed -0.151626 0.104898 -1.445 0.148329
## datadt$jobservices 0.013452 0.061491 0.219 0.826831
## datadt$jobstudent -1.504946 0.397851 -3.783 0.000155 ***
## datadt$jobtechnician -0.022596 0.057938 -0.390 0.696538
## datadt$jobunemployed -0.354779 0.125987 -2.816 0.004863 **
## datadt$jobunknown -0.688321 0.324585 -2.121 0.033954 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8456.6 on 10126 degrees of freedom
## Residual deviance: 8276.3 on 10070 degrees of freedom
## AIC: 8390.3
##
## Number of Fisher Scoring iterations: 6
TDt3 <- glm(factor(loan) ~datadt$Total_Relationship_Count + datadt$age + datadt$marital+ datadt$housing +datadt$term_deposit +datadt$job, family = binomial(link = 'cloglog'), data = datadt)
summary(TDt3)
##
## Call:
## glm(formula = factor(loan) ~ datadt$Total_Relationship_Count +
## datadt$age + datadt$marital + datadt$housing + datadt$term_deposit +
## datadt$job, family = binomial(link = "cloglog"), data = datadt)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.03123 0.74781 -0.042 0.96669
## datadt$Total_Relationship_Count -0.01622 0.01701 -0.954 0.34026
## datadt$age21 -0.97539 0.93340 -1.045 0.29603
## datadt$age22 -1.69844 0.88885 -1.911 0.05603 .
## datadt$age23 -1.77953 0.80674 -2.206 0.02740 *
## datadt$age24 -1.50841 0.77629 -1.943 0.05201 .
## datadt$age25 -1.39144 0.76323 -1.823 0.06829 .
## datadt$age26 -1.42021 0.75394 -1.884 0.05960 .
## datadt$age27 -1.65940 0.75471 -2.199 0.02790 *
## datadt$age28 -1.80674 0.75361 -2.397 0.01651 *
## datadt$age29 -1.73030 0.74978 -2.308 0.02101 *
## datadt$age30 -1.51748 0.74554 -2.035 0.04181 *
## datadt$age31 -1.73562 0.74461 -2.331 0.01976 *
## datadt$age32 -1.69739 0.74461 -2.280 0.02263 *
## datadt$age33 -1.86625 0.74714 -2.498 0.01249 *
## datadt$age34 -1.77270 0.74627 -2.375 0.01753 *
## datadt$age35 -1.85154 0.74695 -2.479 0.01318 *
## datadt$age36 -1.91548 0.74808 -2.561 0.01045 *
## datadt$age37 -1.82016 0.74726 -2.436 0.01486 *
## datadt$age38 -2.10305 0.75216 -2.796 0.00517 **
## datadt$age39 -1.97795 0.74970 -2.638 0.00833 **
## datadt$age40 -1.78377 0.74776 -2.385 0.01706 *
## datadt$age41 -1.65003 0.74770 -2.207 0.02733 *
## datadt$age42 -1.91950 0.75237 -2.551 0.01073 *
## datadt$age43 -1.85607 0.75223 -2.467 0.01361 *
## datadt$age44 -1.88162 0.75043 -2.507 0.01216 *
## datadt$age45 -1.98955 0.75491 -2.635 0.00840 **
## datadt$age46 -1.93360 0.75496 -2.561 0.01043 *
## datadt$age47 -1.90262 0.75805 -2.510 0.01208 *
## datadt$age48 -2.23090 0.76663 -2.910 0.00361 **
## datadt$age49 -1.81186 0.75554 -2.398 0.01648 *
## datadt$age50 -2.07936 0.76546 -2.716 0.00660 **
## datadt$age51 -2.15561 0.76674 -2.811 0.00493 **
## datadt$age52 -1.66238 0.75685 -2.196 0.02806 *
## datadt$age53 -1.99974 0.76178 -2.625 0.00866 **
## datadt$age54 -2.30005 0.77781 -2.957 0.00311 **
## datadt$age55 -1.82090 0.76233 -2.389 0.01691 *
## datadt$age56 -2.20292 0.78134 -2.819 0.00481 **
## datadt$age57 -1.91585 0.76570 -2.502 0.01235 *
## datadt$age58 -2.27973 0.78308 -2.911 0.00360 **
## datadt$age59 -1.53513 0.76408 -2.009 0.04453 *
## datadt$age60 -2.13350 0.78428 -2.720 0.00652 **
## datadt$age61 -1.45533 0.94088 -1.547 0.12192
## datadt$maritalsingle -0.30797 0.05813 -5.298 1.17e-07 ***
## datadt$housingyes 0.42114 0.08436 4.992 5.97e-07 ***
## datadt$term_deposityes -0.22802 0.15552 -1.466 0.14261
## datadt$jobblue-collar -0.25817 0.08543 -3.022 0.00251 **
## datadt$jobentrepreneur 0.13071 0.14800 0.883 0.37713
## datadt$jobhousemaid -0.53855 0.26296 -2.048 0.04056 *
## datadt$jobmanagement -0.29694 0.10160 -2.923 0.00347 **
## datadt$jobretired 0.14473 0.17504 0.827 0.40831
## datadt$jobself-employed -0.23601 0.17928 -1.316 0.18803
## datadt$jobservices 0.02220 0.09984 0.222 0.82405
## datadt$jobstudent -3.13038 1.01434 -3.086 0.00203 **
## datadt$jobtechnician -0.02499 0.09506 -0.263 0.79264
## datadt$jobunemployed -0.60219 0.22969 -2.622 0.00875 **
## datadt$jobunknown -1.32544 0.71319 -1.858 0.06310 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8456.6 on 10126 degrees of freedom
## Residual deviance: 8275.5 on 10070 degrees of freedom
## AIC: 8389.5
##
## Number of Fisher Scoring iterations: 7
Theo kết quả hồi quy trên, ta có:
AIC(logit) = 8349.2
AIC(probit) = 8350
AIC(cloglog) = 8348.9
Vậy mô hình cloglog có AIC thấp nhất nên phù hợp.
library(caret)
## Warning: package 'caret' was built under R version 4.3.1
## Loading required package: ggplot2
## Loading required package: lattice
## "Mô hình TDt1"
predictions <- predict(TDt1, type = "response")
predicted_classes <- ifelse(predictions >= 0.5, "1", "0")
predictions1<- factor(predicted_classes, levels = c("0","1"))
actual<- factor(TDt1$data$loan, labels = c("0","1"))
confusionMatrix(table(predictions1, actual))
## Confusion Matrix and Statistics
##
## actual
## predictions1 0 1
## 0 8637 1487
## 1 1 2
##
## Accuracy : 0.8531
## 95% CI : (0.846, 0.8599)
## No Information Rate : 0.853
## P-Value [Acc > NIR] : 0.4957
##
## Kappa : 0.0021
##
## Mcnemar's Test P-Value : <2e-16
##
## Sensitivity : 0.999884
## Specificity : 0.001343
## Pos Pred Value : 0.853121
## Neg Pred Value : 0.666667
## Prevalence : 0.852967
## Detection Rate : 0.852869
## Detection Prevalence : 0.999704
## Balanced Accuracy : 0.500614
##
## 'Positive' Class : 0
##
## "Mô hình TDt2"
predictions <- predict(TDt2, type = "response")
predicted_classes <- ifelse(predictions >= 0.5, "1", "0")
predictions1<- factor(predicted_classes, levels = c("0","1"))
actual<- factor(TDt2$data$loan, labels = c("0","1"))
confusionMatrix(table(predictions1, actual))
## Confusion Matrix and Statistics
##
## actual
## predictions1 0 1
## 0 8637 1488
## 1 1 1
##
## Accuracy : 0.853
## 95% CI : (0.8459, 0.8598)
## No Information Rate : 0.853
## P-Value [Acc > NIR] : 0.5069
##
## Kappa : 9e-04
##
## Mcnemar's Test P-Value : <2e-16
##
## Sensitivity : 0.9998842
## Specificity : 0.0006716
## Pos Pred Value : 0.8530370
## Neg Pred Value : 0.5000000
## Prevalence : 0.8529673
## Detection Rate : 0.8528686
## Detection Prevalence : 0.9998025
## Balanced Accuracy : 0.5002779
##
## 'Positive' Class : 0
##
predictions <- predict(TDt3, type = "response")
predicted_classes <- ifelse(predictions >= 0.5, "1", "0")
predictions1<- factor(predicted_classes, levels = c("0","1"))
actual<- factor(TDt3$data$loan, labels = c("0","1"))
confusionMatrix(table(predictions1, actual))
## Confusion Matrix and Statistics
##
## actual
## predictions1 0 1
## 0 8637 1487
## 1 1 2
##
## Accuracy : 0.8531
## 95% CI : (0.846, 0.8599)
## No Information Rate : 0.853
## P-Value [Acc > NIR] : 0.4957
##
## Kappa : 0.0021
##
## Mcnemar's Test P-Value : <2e-16
##
## Sensitivity : 0.999884
## Specificity : 0.001343
## Pos Pred Value : 0.853121
## Neg Pred Value : 0.666667
## Prevalence : 0.852967
## Detection Rate : 0.852869
## Detection Prevalence : 0.999704
## Balanced Accuracy : 0.500614
##
## 'Positive' Class : 0
##
Chọn 5 biến :
Marital : (married/đã kết hôn_single/độc thân)
Default : Có khoản vỡ nợ tín dụng không? (Yes/Có_No/Không)
Loan : Có khoản vay cá nhân không? (Yes/Có_No/Không)
Term_deposit : Có tài khoản tiền gửi có kì hạn không? (Yes/Có_No/Không)
Total_Relationship_Count : Số lượng sản phẩm ngân hàng mà khách hàng đang sở hữu
Trong phần này chúng ta sẽ sử dụng dữ liệu về cuộc khảo sát KH qua điện thoại về đăng kí tài khoản tiền gửi có kì hạn
## *Bảng thống kê mô tả biến Total_Relationship_Count*
summary(datadt$Total_Relationship_Count)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 3.000 4.000 3.813 5.000 6.000
Dựa vào số liệu thống kê, ta thấy số lượng sản phẩm của Nh mà khách hàng sở hữu ít nhất là 1 sản phẩm, nhiều nhất là 6 sản phẩm. Trung bình mỗi khách hàng sẽ sở hữu khoảng 4 sản phẩm của ngân hàng và có 50% số khách hàng sở hữu 4 sản phẩm.
## *Bảng tần suất của biến Marital*
table(datadt$marital)
##
## married single
## 6171 3956
## *Bảng tần suất của biến Marital theo %*
table(datadt$marital)/sum(table(datadt$marital))
##
## married single
## 0.6093611 0.3906389
Dựa vào kết quả phân tích ta thấy % số người được gọi khảo sát cao nhất thuộc vào nhóm người đã kết hôn chiếm 60.93%, sau đó là nhóm người chưa kết hôn chiếm 39,06%
## *Đồ thị cột biến Marital*
library(ggplot2)
datadt |> ggplot(aes(marital)) +
geom_bar(olor = 'blue', fill = 'green')
## Warning in geom_bar(olor = "blue", fill = "green"): Ignoring unknown
## parameters: `olor`
## *Bảng tần suất biến default*
table(datadt$default)
##
## no yes
## 9904 223
## *Bảng tần suất biến default theo %*
table(datadt$default)/sum(table(datadt$default))
##
## no yes
## 0.97797966 0.02202034
Dựa theo kết quả thống kê thì số khách hàng có khoản vỡ nợ khi sử dụng dịch vụ tín dụng của ngân hàng chiếm tỉ lệ rất thấp chỉ khoảng 2,2%.
## *Đồ thị cột biến Default*
library(ggplot2)
datadt |> ggplot(aes(default)) +
geom_bar(olor = 'blue', fill = 'green')
## Warning in geom_bar(olor = "blue", fill = "green"): Ignoring unknown
## parameters: `olor`
## *Bảng tần suất biến loan*
table(datadt$loan)
##
## no yes
## 8638 1489
## *Bảng tần suất biến loan theo %*
table(datadt$loan)/sum(table(datadt$loan))
##
## no yes
## 0.8529673 0.1470327
Theo bảng tần suất về khoản vay cá nhân của khách hàng thì tỉ lệ khách hàng có khoản vay cá nhân chiếm khá thấp khoảng 14.7% và tỉ lệ khách hàng không có khoản vay cá nhân chiếm khá cao 85.29%
## *Đồ thị cột của biến Loan*
library(ggplot2)
datadt |> ggplot(aes(default)) +
geom_bar(olor = 'blue', fill = 'yellow')
## Warning in geom_bar(olor = "blue", fill = "yellow"): Ignoring unknown
## parameters: `olor`
## *Bảng tần số biến term_deposit*
table(datadt$term_deposit)
##
## no yes
## 9770 357
Theo bảng tần số của biến có tài khoản tiết kiệm có kì hạn, số người chưa có tài khoản chiếm khá lớn 9770 trong 10128 người, chỉ có 357 người đã có tài khoản tiết kiệm có kì hạn.
## *Đồ thị cột của biến term_deposit
library(ggplot2)
library(ggplot2)
datadt |> ggplot(aes(default)) +
geom_bar()
## *Bảng tần số biến Total_Relationship_Count*
table(datadt$Total_Relationship_Count)
##
## 1 2 3 4 5 6
## 910 1243 2305 1912 1891 1866
Dựa theo bảng tần số ta thấy:
Có 910 khách hàng sở hữu 1 sản phẩm mà ngân hàng đang cung cấp
Có 1243 khách hàng sở hữu 2 sản phẩm mà ngân hàng đang cung cấp
Có 2305 khách hàng sở hữu 3 sản phẩm mà ngân hàng đang cung cấp
Có 1912 khách hàng sở hữu 4 sản phẩm mà ngân hàng đang cung cấp
Có 1891 khách hàng sở hữu 5 sản phẩm mà ngân hàng đang cung cấp
Có 1866 khách hàng sở hữu 6 sản phẩm mà ngân hàng đang cung cấp
## *Đồ thị cột của biến Total_Relationship_Count *
library(ggplot2)
datadt |> ggplot(aes(Total_Relationship_Count)) +
geom_bar(olor = 'blue', fill = 'pink')
## Warning in geom_bar(olor = "blue", fill = "pink"): Ignoring unknown parameters:
## `olor`
Thống kê mô tả cho hai biến phụ thuộc và 5 biến ở câu 2
tmp <- table(datadt$loan, datadt$marital)
addmargins(tmp)
##
## married single Sum
## no 5190 3448 8638
## yes 981 508 1489
## Sum 6171 3956 10127
Dựa vào bảng ta thấy:
Có 981 khách hàng đã kết hôn có khoản vay cá nhân, 5190 khách hàng đã kết hông không có khoản vay cá nhân.
Có 508 khách hàng chưa kết hôn có khoản vay cá nhân, 3448 khách hàng chưa kết hông không có khoản vay cá nhân.
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.1
##
## Attaching package: 'DescTools'
## The following objects are masked from 'package:caret':
##
## MAE, RMSE
RelRisk(tmp)
## [1] 0.9119685
Tỉ lệ khách hàng đã kết hôn không có khoản vay cá nhân bằng 91,19% tỉ lệ khách hàng đã kết hôn có khoản vay cá nhân
tmp <- table(datadt$loan, datadt$marital)
library(epitools)
riskratio(tmp, rev = 'c')
## $data
##
## single married Total
## no 3448 5190 8638
## yes 508 981 1489
## Total 3956 6171 10127
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## no 1.000000 NA NA
## yes 1.096529 1.053122 1.141725
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 2.013861e-05 2.065198e-05 2.270947e-05
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỉ lệ người đã kết hôn có khoản vay cá nhân gấp 1.096 lần tỉ lệ người đã kết hôn không có khoản vay cá nhân
tmp <- table(datadt$term_deposit, datadt$Total_Relationship_Count)
tmp
##
## 1 2 3 4 5 6
## no 856 1196 2234 1857 1829 1798
## yes 54 47 71 55 62 68
Có 54 khách hàng có tài khoản tiền gửi có kì hạn và sở hữu một sản phẩm của ngân hàng cung cấp, 856 khách hàng không có khoản tiền gửi có kì hạn và sở hữu một sản phẩm của ngân hàng cung cấp.
Có 47 khách hàng có tài khoản tiền gửi có kì hạn và sở hữu 2 sản phẩm của ngân hàng cung cấp, 1196 khách hàng không có khoản tiền gửi có kì hạn và sở hữu 2 sản phẩm của ngân hàng cung cấp.
Có 71 khách hàng có tài khoản tiền gửi có kì hạn và sở hữu 3 sản phẩm của ngân hàng cung cấp, 2234 khách hàng không có khoản tiền gửi có kì hạn và sở hữu 3 sản phẩm của ngân hàng cung cấp.
Có 55 khách hàng có tài khoản tiền gửi có kì hạn và sở hữu 4 sản phẩm của ngân hàng cung cấp, 1857 khách hàng không có khoản tiền gửi có kì hạn và sở hữu 4 sản phẩm của ngân hàng cung cấp.
Có 62 khách hàng có tài khoản tiền gửi có kì hạn và sở hữu 5 sản phẩm của ngân hàng cung cấp, 1829 khách hàng không có khoản tiền gửi có kì hạn và sở hữu 5 sản phẩm của ngân hàng cung cấp.
Có 68 khách hàng có tài khoản tiền gửi có kì hạn và sở hữu 6 sản phẩm của ngân hàng cung cấp, 1798 khách hàng không có khoản tiền gửi có kì hạn và sở hữu 6 sản phẩm của ngân hàng cung cấp.
## *Đồ thị hai biến Term_deposit và Total_Relationship_Count
ggplot(datadt, aes(Total_Relationship_Count, fill =term_deposit )) + geom_bar(position = 'dodge')
tmp <- table(datadt$default, datadt$loan)
addmargins(tmp)
##
## no yes Sum
## no 8468 1436 9904
## yes 170 53 223
## Sum 8638 1489 10127
Dựa vào bảng ta thấy:
Có 53 khách hàng có khoản vay cá nhân và bị vỡ nợ tín dụng, 1436 khách hàng có khoản vay cá nhân không bị vỡ nợ tín dụng.
Có 8468 khách hàng không có khoản vay cá nhân và không bị vỡ nợ tín dụng, 170 khách hàng không có khoản vay cá nhân bị vỡ nợ tín dụng.
## *Đồ thị hai biến Default và Loan*
ggplot(datadt, aes(loan, fill =default )) + geom_bar(position = 'dodge')
### Risk ratio của 2 biến Default và Loan
tmp <- table(datadt$default, datadt$loan)
library(epitools)
riskratio(tmp)
## $data
##
## no yes Total
## no 8468 1436 9904
## yes 170 53 223
## Total 8638 1489 10127
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## no 1.000000 NA NA
## yes 1.639182 1.289584 2.083554
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## no NA NA NA
## yes 0.000298116 0.0002594278 0.0001112387
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Theo bảng thống kê ta thấy,tỉ lệ người có khoản vay cá nhân và bị vỡ nợ tín dụng gấp 1.63 làn người có khoản vay cá nhân và không bị vỡ nợ tín dụng.
##*Kiểm định tính độc lập cho hai biến loan và marital*
chisq.test(table(datadt$marital, datadt$loan))
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table(datadt$marital, datadt$loan)
## X-squared = 17.705, df = 1, p-value = 2.58e-05
Dựa theo kết quả cho thấy việc khách hàng có gia đình hay không có ảnh hưởng đến việc có khoản vay tín dụng ngân hàng
## *Kiểm định tính độc lập cho hai biến term_deposit và marital*
chisq.test(table(datadt$marital, datadt$term_deposit))
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table(datadt$marital, datadt$term_deposit)
## X-squared = 25.857, df = 1, p-value = 3.677e-07
Dựa theo kết quả ta thấy khách hàng có gia đình hay không có ảnh hưởng đến việc khách hàng đó có tài khoản tiền gửi có kì hạn tại ngân hàng.
## *Kiểm định tính độc lập cho hai biến default và marital*
chisq.test(table(datadt$marital, datadt$default))
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: table(datadt$marital, datadt$default)
## X-squared = 0.55911, df = 1, p-value = 0.4546
Dựa theo kết quả cho thấy p-value>0.05 nên chưa đủ cơ sở để kết luận việc có gia đình có ảnh hưởng đến việc kh bị vỡ nợ tín dụng
Ước lượng tỷ lệ khách hàng có nhiều hơn 4 sản phẩm của ngân hàng và đồng thời kiểm định xem tỉ lệ(%) người có nhiều hơn 4 sản phẩm có phải là 40% hay không?
Kiểm định giả thuyết: H0 = 0.4
data <- datadt[datadt$Total_Relationship_Count > 4,]
prop.test(length(data$Total_Relationship_Count), length(datadt$Total_Relationship_Count), p = 0.4)
##
## 1-sample proportions test with continuity correction
##
## data: length(data$Total_Relationship_Count) out of length(datadt$Total_Relationship_Count), null probability 0.4
## X-squared = 35.394, df = 1, p-value = 2.693e-09
## alternative hypothesis: true p is not equal to 0.4
## 95 percent confidence interval:
## 0.3615815 0.3804938
## sample estimates:
## p
## 0.3709884
Với độ tin cậy 95%, ước lượng tỉ lệ khách hàng có số lượng sản phẩm tại ngân hàng nằm trong khoảng 0.361 đến 3804
Ta thấy p_value<0, bác bỏ H0. Vì vậy tỉ lệ khách hàng có nhiều hơn 4 sản phẩm không bằng 40% với mức ý nghĩa 5%.
Tiết kiệm có kỳ hạn là một khoảng tiền cá nhân được người gửi gửi vào tài khoản tiết kiệm trong một khoảng thời gian nhất định do ngân hàng thương mại đưa ra và định trước. Thường khi người gửi chọn phương thức gửi tiết kiệm này thì họ đã có một khoản thu nhập thường xuyên và ổn định đáp ứng đủ cho nhu cầu sinh hoạt hàng tháng của họ vì vậy đa số những khách hàng lựa chọn phương thức này vì mục đích được hưỡng lợi tức nhiều hơn và có được theo định kỳ.
Tuy đây là nghiệp vụ không mang lại lợi nhuận trức tiếp của ngân hàng nhưng nghiệp vụ này đóng vai trò rất lớn trong bộ máy hoạt động của ngân hàng thương mại. Mỗi ngân hàng thương mại kể từ được cấp phép thành lập bắt buộc phải có vốn điều lệ theo quy định của Ngân Hàng Nhà Nước. Nhưng vốn điều lệ ban đầu đó chỉ đủ để mua những tài sản cố định như trụ sở văn phòng, máy móc, trang thiết bị cần thiết cho hoạt động kinh doanh như cấp tín dụng và các dịch vụ bán lẻ ngân hàng khác. Để duy trì và cung cấp đầy đủ các hoạt động khác của ngân hàng thì việc huy động vốn từ khách hàng là một trong những hoạt động cần thiết của ngân hàng thương mại
Ta tiến hành phân tích xem số lượng sản phẩm của ngân hàng mà khách hàng sở hữu có ảnh hưởng đến việc mở tài khoản tiền gửi của khách hàng hay không.
Dữ liệu nghiên cứu có liên quan đến các chiến dịch tiếp thị trực tiếp(gọi điện thoại) của một tổ chức ngân hàng Bồ Đào Nha. Mục tiêu phân loại là khảo sát có đăng kí tài khoản tiền gửi có kì hạn hay không.
Dữ liệu bao gồm 10217 quan sát, có 8 biến (2 biến định lượng,6 biến định tính)
Age : tuổi tác
Job : nghề nghiệp
Marital : (married/đã kết hôn_single/độc thân_divorced/ly hôn)
Default : Có khoản vỡ nợ tín dụng không? (Yes/Có_No/Không)
Housing : Có khoản vay mua nhà không? (Yes/Có_No/Không)
Loan : Có khoản vay cá nhân không? (Yes/Có_No/Không)
Term_deposit : Có tài khoản tiền gửi có kì hạn không? (Yes/Có_No/Không)
Total_Relationship_Count : Số lượng sản phẩm ngân hàng mà khách hàng đang sở hữu
Job : nghề nghiệp
Marital : (married/đã kết hôn_single/độc thân)
Default : Có khoản vỡ nợ tín dụng không? (Yes/Có_No/Không)
Housing : Có khoản vay mua nhà hay không (Yes/Có_No/Không)
Loan : Có khoản vay cá nhân không? (Yes/Có_No/Không)
Term_deposit : Có tài khoản tiền gửi có kì hạn không? (Yes/Có_No/Không)
Age : tuổi tác
Total_Relationship_Count : Số lượng sản phẩm ngân hàng mà khách hàng đang sở hữu
library(readxl)
datadt <- read_excel("C:/data/datadt.xlsx")
datadt
## # A tibble: 10,127 × 8
## age job marital default housing loan term_deposit Total_Relationship_C…¹
## <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <dbl>
## 1 58 mana… married no yes no no 5
## 2 44 tech… single no yes no no 6
## 3 33 entr… married no yes yes no 4
## 4 47 blue… married no yes no no 3
## 5 33 unkn… single no no no no 5
## 6 35 mana… married no yes no no 3
## 7 28 mana… single no yes yes no 6
## 8 42 entr… single yes yes no no 2
## 9 58 reti… married no yes no no 5
## 10 43 tech… single no yes no no 6
## # ℹ 10,117 more rows
## # ℹ abbreviated name: ¹Total_Relationship_Count