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)

1 Bài tập về nhà tuần 5

1.1 Ước lượng mô hình hồi quy

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

1.1.1 Mô hình hồi quy logit

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

1.1.2 Mô hình hồi quy probit

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

1.1.3 Mô hình hồi quy cloglog

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

1.2 Các tiêu chí đánh giá mô hình

1.2.1 AIC - Akaike Information Criterion

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.

1.2.2 Ma trận nhầm lẫn

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              
## 

2 Bài tập về nhà tuần 3,4

2.1 Thống kê mô tả cho ít nhất 5 biến

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

2.2 Giải thích và thống kê mô tả cho từng biến

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

2.3 Biến Loan và Marital

2.3.1 Lập bảng ngẫu nhiên hai chiều phân tích biến Loan và biến marital

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.

2.3.2 Tính rủi ro tương đối cho biến Loan và biến marital

  • Relative Risk
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

2.3.3 Risk Ratio cho biến Loan và biến marital

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

2.4 Biến Term_deposit và Total_Relationship_Count

2.4.1 Lập bảng ngẫu nhiên hai chiều phân tích biến Term_deposit và Total_Relationship_Count

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')

2.5 Biến Default và Loan

2.5.1 Lập bảng ngẫu nhiên hai chiều phân tích biến Default và Loan

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.

2.6 Thống kê suy diễn cho các biến định tính

2.6.1 Kiểm định tính độc lập cho hai biến định tính

##*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

2.6.2 Khoảng ước lượng cho tỉ lệ

Ướ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%.

3 Bài tập về nhà tuần 2

3.1 Chọn biến định lượng làm biến phụ thuộc : biến loan

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

3.2 Chọn biến định tính: biến Total_Relationship_Count

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.

4 Bài tập về nhà tuần 1

4.1 Data nghiên cứu

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)

4.2 Giải thích các biến

  • 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

4.3 Các biến định tính

  • 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)

4.4 Các biến định lượ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