Base de Datos creditos

Datos_Creditos <- read_excel("Datos_Creditos.xlsx")
Datos_Creditos <- na.omit(Datos_Creditos)
attach(Datos_Creditos)
head(Datos_Creditos)
## # A tibble: 6 x 8
##   DEFAULT DIAS_MORA ANTIUEDAD  EDAD CUOTA_TOTAL INGRESOS CARTERA_TOTAL
##     <dbl>     <dbl>     <dbl> <dbl>       <dbl>    <dbl>         <dbl>
## 1       1         0     37.3   77.0     3020519  8155593      35907626
## 2       1         0     37.3   73.8     1766552  6181263      50845190
## 3       1        30     31.0   78.9     1673786  4328075      88809154
## 4       1         0      9.73  51.5      668479  5290910      36235112
## 5       1         0      8.44  39.0     1223559  5333818      52518827
## 6       1      1020      6.61  44.9     3517756  2710736       7041395
## # ... with 1 more variable: COMPROMISO <dbl>

Tipos de datos

str(Datos_Creditos)
## tibble [780 x 8] (S3: tbl_df/tbl/data.frame)
##  $ DEFAULT      : num [1:780] 1 1 1 1 1 1 1 1 1 1 ...
##  $ DIAS_MORA    : num [1:780] 0 0 30 0 0 1020 0 0 0 0 ...
##  $ ANTIUEDAD    : num [1:780] 37.32 37.32 30.98 9.73 8.44 ...
##  $ EDAD         : num [1:780] 77 73.8 78.9 51.5 39 ...
##  $ CUOTA_TOTAL  : num [1:780] 3020519 1766552 1673786 668479 1223559 ...
##  $ INGRESOS     : num [1:780] 8155593 6181263 4328075 5290910 5333818 ...
##  $ CARTERA_TOTAL: num [1:780] 35907626 50845190 88809154 36235112 52518827 ...
##  $ COMPROMISO   : num [1:780] 37 28.6 38.7 12.6 22.9 ...

A la luz de la regresión logística y regresión Poisson y justificar en un párrafo por qué esto sería un posible modelo para aplicar.

Modelo poisson

Para la selección de la variable que distribuya poisson, comparamos las medias y la varianza de todas las demás variables, para fijarnos que no hay ninguna donde su media y varianza sean iguales, la más “cercana” a este requerimiento es la variable Antiguedad, también se realizó una prueba de ajuste con la función goodfit() a las variables que cumplan con algunas carácterísticas de la poisson, esto usando el método de la chi-cuadrado, se obtuvo que ninguna era poisson, como se puede ver a continuación

antiu.gf<-goodfit(ANTIUEDAD, type = "poisson", method = "MinChisq")
summary(antiu.gf)
## 
##   Goodness-of-fit test for poisson distribution
## 
##             X^2 df P(> X^2)
## Pearson 1258177 36        0
dm.gf<-goodfit(DIAS_MORA, type = "poisson", method = "MinChisq")
summary(dm.gf)
## 
##   Goodness-of-fit test for poisson distribution
## 
##         X^2   df P(> X^2)
## Pearson NaN 1019      NaN
edad.gf<-goodfit(EDAD, type = "poisson", method = "MinChisq")
summary(edad.gf)
## 
##   Goodness-of-fit test for poisson distribution
## 
##              X^2 df P(> X^2)
## Pearson 17250.41 91        0

Aunque ninguna variable se ajusta a una distribución poisson según las características de la variable “ANTIGUEDAD” siendo de tipo conteo del número de años que el cliente tiene en la entidad bancaria se asigna esta variable a un modelo poisson donde sus resultados son:

Resumen de la variable ANTIGUEDAD

summary(ANTIUEDAD)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.2548  7.3767 15.1192 18.0353 30.6637 37.3178

Varianza de Antiguedad

var(ANTIUEDAD)
## [1] 142.5469
modpois<-glm(ANTIUEDAD~., data = Datos_Creditos, family = poisson(link = "log"))
summary(modpois)
## 
## Call:
## glm(formula = ANTIUEDAD ~ ., family = poisson(link = "log"), 
##     data = Datos_Creditos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -8.1408  -1.3595  -0.1417   1.1256   3.7558  
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    1.315e-01  5.460e-02   2.409 0.015996 *  
## DEFAULT       -1.618e-01  4.560e-02  -3.548 0.000388 ***
## DIAS_MORA     -2.909e-04  2.672e-04  -1.089 0.276208    
## EDAD           3.920e-02  7.627e-04  51.397  < 2e-16 ***
## CUOTA_TOTAL    9.119e-08  2.511e-08   3.632 0.000281 ***
## INGRESOS       5.141e-08  3.953e-09  13.007  < 2e-16 ***
## CARTERA_TOTAL -8.979e-10  3.856e-10  -2.329 0.019882 *  
## COMPROMISO     3.178e-03  1.445e-03   2.199 0.027902 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 6611.5  on 779  degrees of freedom
## Residual deviance: 2557.3  on 772  degrees of freedom
## AIC: Inf
## 
## Number of Fisher Scoring iterations: 4

Por lo tanto los resultados del modelo ajustado para la variable de respuesta indican cuales son significativas.

Modelo logistico

Para el modelo logístico según las características de la variable, la que más se ajusta es la variable Default la cual hace referencia a la situación en la que el deudor no ha pagado la totalidad de las deudas que tiene con sus acreedores donde 1 es que está en “Default” y 0 “No Default” siendo esta la única variable de categorización dicotómica.

modelogit<-glm(DEFAULT~.,family = binomial,data=Datos_Creditos)
summary(modelogit)
## 
## Call:
## glm(formula = DEFAULT ~ ., family = binomial, data = Datos_Creditos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4146  -0.2987  -0.2588  -0.1967   3.0141  
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)   -2.973e+00  1.208e+00  -2.460   0.0139 *  
## DIAS_MORA      8.313e-02  1.621e-02   5.127 2.95e-07 ***
## ANTIUEDAD     -3.252e-02  2.667e-02  -1.219   0.2228    
## EDAD           5.979e-03  2.232e-02   0.268   0.7888    
## CUOTA_TOTAL    8.177e-07  6.323e-07   1.293   0.1959    
## INGRESOS      -1.394e-07  1.598e-07  -0.872   0.3832    
## CARTERA_TOTAL -2.991e-09  8.096e-09  -0.369   0.7118    
## COMPROMISO    -7.326e-03  3.215e-02  -0.228   0.8198    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 309.68  on 779  degrees of freedom
## Residual deviance: 238.70  on 772  degrees of freedom
## AIC: 254.7
## 
## Number of Fisher Scoring iterations: 7

Donde se observa que los resultados indican que la única variable significativa es los días de mora para explicar cuando una cae en Default o no