library(readxl)
Datos_Rotacion<- read_excel("C:/Users/asus/Desktop/talleres/Datos_Rotacion.xlsx")
View(Datos_Rotacion)

1.Seleccionar 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que consideren estén relacionadas con la rotación. Nota: Justificar por que estas variables están relacionadas y que tipo de relación se espera (Hipótesis). Ejemplo: Se espera que las horas extra se relacionen con la rotación ya que las personas podrían desgastarse mas al trabajar horas extra y descuidan aspectos personales. La hipótesis es que las personas que trabajan horas extra tienen mayor posibilidad de rotar que las que no trabajan extra. (serian 6, una por variable).

Datos_Rotacion$Rotación <- factor(ifelse(Datos_Rotacion$Rotación == "Si", 1, 0))
head(Datos_Rotacion$Rotación)
## [1] 1 0 1 0 0 0
## Levels: 0 1

Análisis de variables categóricas.

Hipótesis 1: Se espera que las personas que realicen HORAS EXTRAS , tienen mayor posibilidad de rotar.

data.frame(table(Datos_Rotacion$Horas_Extra))
##   Var1 Freq
## 1   No 1054
## 2   Si  416
require(CGPfunctions)
## Loading required package: CGPfunctions
PlotXTabs2(data = Datos_Rotacion,x = "Horas_Extra",y="Rotación") 

En la tabla se observa que el total de personas que si realizan horas extras asciende a (416), es decir el 28.3% de las personas de la empresa, y de ellas el 31% si rotan.

Hipótesis 2 : Se esperar que el genero masculino rote más.

data.frame(table(Datos_Rotacion$Genero))
##   Var1 Freq
## 1    F  588
## 2    M  882
PlotXTabs2(data = Datos_Rotacion,x = "Genero",y="Rotación")

En la tabla se observa que el total de personas de género femenino es de 588, es decir el 40% del total de empleados de la empresa, y el 15% de ellas rota.

Hipótesis 3 : Se espera que las personas con estado civil soltero, roten más

data.frame(table(Datos_Rotacion$Estado_Civil))
##         Var1 Freq
## 1     Casado  673
## 2 Divorciado  327
## 3    Soltero  470
PlotXTabs2(data = Datos_Rotacion,x = "Estado_Civil",y="Rotación")

En la tabla se observa que 673 personas son casadas, es decir el 45.8%, 327 personas son divorciadas 22.2% y 32% son solteros, de los cuales el 26% rotan.

Análisis de variables cuantitativas

Hipótesis 4 : Se esperar que a mayor ingreso menor rotación.

Datos_Rotacion$Ingreso_Mensual2=Datos_Rotacion$Ingreso_Mensual/1000
Datos_Rotacion$Ingreso_rango=cut(Datos_Rotacion$Ingreso_Mensual2,breaks = c(0,5,10,15,20))
data.frame(table(Datos_Rotacion$Ingreso_rango))
##      Var1 Freq
## 1   (0,5]  749
## 2  (5,10]  440
## 3 (10,15]  148
## 4 (15,20]  133
PlotXTabs2(data = Datos_Rotacion,x = "Ingreso_rango",y="Rotación")

El rango de ingreso se observa que a menor salario mayor rotación.

Hipótesis 5 : Se espera que a mayor edad, menor rotación.

Datos_Rotacion$Edad_rango=cut(Datos_Rotacion$Edad,breaks = c(0,20,40,60))
data.frame(table(Datos_Rotacion$Edad_rango))
##      Var1 Freq
## 1  (0,20]   28
## 2 (20,40]  977
## 3 (40,60]  465
PlotXTabs2(data = Datos_Rotacion,x = "Edad_rango",y="Rotación")

Se observa que la edad en que más rotación es de 0 a 20 con un 57%.

Hipótesis 6 : Se espera que a mayor años de experiencia, menor rotación.

Datos_Rotacion$Años_Experiencia_rango=cut(Datos_Rotacion$Años_Experiencia,breaks = c(0,5,10,15,20,25,30,35,40))
data.frame(table(Datos_Rotacion$Años_Experiencia_rango))
##      Var1 Freq
## 1   (0,5]  305
## 2  (5,10]  607
## 3 (10,15]  191
## 4 (15,20]  149
## 5 (20,25]  109
## 6 (25,30]   52
## 7 (30,35]   33
## 8 (35,40]   13
PlotXTabs2(data = Datos_Rotacion,x = "Años_Experiencia_rango",y="Rotación")

Se observa que la mayor rotación se encuentra entre 0 a 5 años de experiencia con un 28%.

2. Realizar la estimación de un modelo de regresión logistico en el cual la variable respuesta es rotación (y=1 es si rotación, y=0 es no rotación) y las covariables las 6 seleccionadas. Interprete los coeficientes del modelo y la significancia de los parametros.

mod1=glm(Rotación~Horas_Extra+Genero+Estado_Civil+Ingreso_rango+Edad_rango+
             Años_Experiencia_rango,data = Datos_Rotacion,family = "binomial")

summary(mod1)
## 
## Call:
## glm(formula = Rotación ~ Horas_Extra + Genero + Estado_Civil + 
##     Ingreso_rango + Edad_rango + Años_Experiencia_rango, family = "binomial", 
##     data = Datos_Rotacion)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.7006  -0.5837  -0.4023  -0.2757   2.9230  
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                   -1.11267    0.52988  -2.100  0.03574 *  
## Horas_ExtraSi                  1.47221    0.15893   9.263  < 2e-16 ***
## GeneroM                        0.25414    0.16156   1.573  0.11572    
## Estado_CivilDivorciado        -0.30211    0.22787  -1.326  0.18491    
## Estado_CivilSoltero            0.81795    0.17374   4.708  2.5e-06 ***
## Ingreso_rango(5,10]           -0.53463    0.21097  -2.534  0.01127 *  
## Ingreso_rango(10,15]          -0.07875    0.37698  -0.209  0.83453    
## Ingreso_rango(15,20]          -1.47623    0.66429  -2.222  0.02627 *  
## Edad_rango(20,40]             -0.82496    0.51912  -1.589  0.11202    
## Edad_rango(40,60]             -0.94472    0.55533  -1.701  0.08891 .  
## Años_Experiencia_rango(5,10]  -0.53603    0.20699  -2.590  0.00961 ** 
## Años_Experiencia_rango(10,15] -0.50208    0.30416  -1.651  0.09879 .  
## Años_Experiencia_rango(15,20] -1.03701    0.35323  -2.936  0.00333 ** 
## Años_Experiencia_rango(20,25] -0.72444    0.56659  -1.279  0.20104    
## Años_Experiencia_rango(25,30] -1.27088    0.87407  -1.454  0.14595    
## Años_Experiencia_rango(30,35] -0.63035    0.79550  -0.792  0.42813    
## Años_Experiencia_rango(35,40]  0.33407    0.96524   0.346  0.72927    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1278.2  on 1458  degrees of freedom
## Residual deviance: 1088.8  on 1442  degrees of freedom
##   (11 observations deleted due to missingness)
## AIC: 1122.8
## 
## Number of Fisher Scoring iterations: 6

Se observa que las variables Horas_ extrasSi, Estado_civil_Soltero, años de experiencia_rango 5_10 y de 15_20 son significativas para el modelo y logran brindar una explicación de la variable respuesta rotación. Mientras que la variable género no brindan valor dentro del modelo.

Hipótesis Cualitativas Hipótesis 1 : Se evidencia que las personas que realizan horas extras son más propensas a rotar. Hipótesis 2 : Las personas de género masculino rotan más, pero no es significativo en el modelo. Hipótesis 3 : Se observa que las personas solteras rotan más.

Hipótesis Cuantitativas

Hipótesis 4 : En general se comprueba la hipótesis que a mayor salario menor rotación, pero es más significativo en los grupos (5,10] y (15,20] (millones). Hipótesis 5 : En general se comprueba la hipótesis que a mayor edad menor rotación, pero no son significativas en el modelo. Hipótesis 6 : En general se comprueba la hipótesis que a mayor años de experiencia menor rotación, pero solo son significativos en el modelo los rangos de (5,10] y (15,20].

exp(mod1$coefficients)
##                   (Intercept)                 Horas_ExtraSi 
##                     0.3286794                     4.3588787 
##                       GeneroM        Estado_CivilDivorciado 
##                     1.2893475                     0.7392597 
##           Estado_CivilSoltero           Ingreso_rango(5,10] 
##                     2.2658405                     0.5858860 
##          Ingreso_rango(10,15]          Ingreso_rango(15,20] 
##                     0.9242702                     0.2284967 
##             Edad_rango(20,40]             Edad_rango(40,60] 
##                     0.4382522                     0.3887886 
##  Años_Experiencia_rango(5,10] Años_Experiencia_rango(10,15] 
##                     0.5850661                     0.6052688 
## Años_Experiencia_rango(15,20] Años_Experiencia_rango(20,25] 
##                     0.3545122                     0.4845980 
## Años_Experiencia_rango(25,30] Años_Experiencia_rango(30,35] 
##                     0.2805844                     0.5324059 
## Años_Experiencia_rango(35,40] 
##                     1.3966361

Según los coeficientes del modelo, aquellos empleados que han tenido horas extras tienen una mayor posibilidad de aumentar su rotación en 4.6%, mientras que los empelados solteros su probabilidad es del 2,2% de rotar. También, los empleados con un rango de experiencia de entre los 35 y 40 años tienen 1,39% posibilidad de rotar más que los empleados con años de experiencia entre los 5 y 10 años.

3. Evaluar el poder predictivo del modelo con base en la curva ROC y el AUC. Definición de modelo con unicamente variables significativas

modelo_rotacion_b=glm(Rotación~Horas_Extra+Genero+Estado_Civil+
             Años_Experiencia_rango,data = Datos_Rotacion,family = "binomial"(link="logit"))

summary(modelo_rotacion_b)
## 
## Call:
## glm(formula = Rotación ~ Horas_Extra + Genero + Estado_Civil + 
##     Años_Experiencia_rango, family = binomial(link = "logit"), 
##     data = Datos_Rotacion)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4723  -0.5914  -0.3973  -0.2800   2.9141  
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                    -1.8782     0.2108  -8.909  < 2e-16 ***
## Horas_ExtraSi                   1.4626     0.1571   9.308  < 2e-16 ***
## GeneroM                         0.2232     0.1601   1.395 0.163121    
## Estado_CivilDivorciado         -0.3033     0.2274  -1.334 0.182244    
## Estado_CivilSoltero             0.8632     0.1698   5.085 3.68e-07 ***
## Años_Experiencia_rango(5,10]   -0.8445     0.1823  -4.634 3.59e-06 ***
## Años_Experiencia_rango(10,15]  -0.8834     0.2668  -3.311 0.000931 ***
## Años_Experiencia_rango(15,20]  -1.3474     0.3139  -4.293 1.76e-05 ***
## Años_Experiencia_rango(20,25]  -1.5642     0.3864  -4.048 5.16e-05 ***
## Años_Experiencia_rango(25,30]  -2.2731     0.7462  -3.046 0.002317 ** 
## Años_Experiencia_rango(30,35]  -1.4200     0.6444  -2.204 0.027555 *  
## Años_Experiencia_rango(35,40]  -0.9071     0.8366  -1.084 0.278242    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1278.2  on 1458  degrees of freedom
## Residual deviance: 1104.4  on 1447  degrees of freedom
##   (11 observations deleted due to missingness)
## AIC: 1128.4
## 
## Number of Fisher Scoring iterations: 5
prediccion1= predict(modelo_rotacion_b,list( Horas_Extra=Datos_Rotacion$Horas_Extra, Estado_Civil=Datos_Rotacion$Estado_Civil, Años_Experiencia_rango = Datos_Rotacion$Años_Experiencia_rango, Genero = Datos_Rotacion$Genero ),type = "response")
require(pROC)
ROC_rotacion= roc(Datos_Rotacion$Rotación~prediccion1, percent = T, ci=T)
ROC_rotacion
## 
## Call:
## roc.formula(formula = Datos_Rotacion$Rotación ~ prediccion1,     percent = T, ci = T)
## 
## Data: prediccion1 in 1227 controls (Datos_Rotacion$Rotación 0) < 232 cases (Datos_Rotacion$Rotación 1).
## Area under the curve: 74.82%
## 95% CI: 71.17%-78.47% (DeLong)
plot(ROC_rotacion,print.auc=T,print.thres = "best",col="red"
         ,xlab = "Specificity", ylab = "Sensitivity")

La curva ROC para el modelo indica que este modelo tiene un buen poder discriminatorio, puesto que el trazo es cercano a la línea horizontal, de hecho el área bajo la curva (AUROC) es 0,74.

4. Predeccir la probabilida de que un individuo (hipotetico) rote y defina un corte para decidir si se debe intervenir a este empleado o no (posible estrategia para motivar al empleado).

Realiza horas extras. Género masculino. Soltero. Rango de ingreso (5,10]. Rango de edad (20,40]. *Rango Años de experiencia (5,10].

(predict(modelo_rotacion_b,list(Horas_Extra ="Si", Genero="M",Estado_Civil="Soltero",Ingreso_rango= "(5,10]", Edad_rango = "(20,40]", Años_Experiencia_rango = "(5,10]"),type = "response"))*100
##        1 
## 45.66864

Una empleado con las caracteristica anteriores tiene la probabilidad de rotar un 45.6%.

5. Estrategias

Como estrategia para disminuir la rotación del personal de la compañía se podría plantear disminuir las horas extras de los trabajadores o distribuirlas más equitativamente, para que un empleado no quede sobre cargado de turnos. Tambièn, para evitar que las personas solteras renuncien a la empresa, esta última tiene que tener en consideración las necesidades de este grupo de personas. Primero, debe implementar políticas igualitarias, tanto para casados como para solteros, pues la expectativa de que los solteros deben trabajar más que sus compañeros con pareja, puede desincentivar su compromiso con la compañía. Además, es necesario que la compañía incentive a los solteros, reconociendo sus habilidades y proyecciones. Así mismo, podría incentivar la comunicación y la interacción entre los empleados para que e generen lazos laborales y con ello sentido de pertenencia, lo cual favorece la permanencia en la empresa. Adicionalmente, para evitar que quienes tienen menos años en la compañía roten más, la empresa podría emplear incentivos por antigüedad. Es decir, incentivos que demuestren lo valioso que es hacer carrera en la empresa, puede ir desde ascensos o mejores salarios. Esto mantendrá motivado al colaborador, sintiéndose parte de la empresa y verá un crecimiento en su vida profesional

2. punto - Riesgo Crédito

1. Con base en los datos de créditos proponga un modelo de regresión logístico múltiple que permita predecir el riesgo de default en función de las covariables que considere importantes y seleccionándolas de acuerdo con un proceso adecuado. Tenga en cuenta realizar una evaluación de la significancia de los parámetros, interpretación y proponga un método de evaluación por medio de validación cruzada. Presente métricas apropiadas como el AUC y la curva ROC.

library(readxl)
library(readxl)
datos_creditos <- read_excel("Datos_Creditos.xlsx", 
    col_types = c("numeric", "numeric", "numeric", 
        "numeric", "numeric"))
View(datos_creditos)

datos_creditos$DEFAULT = as.factor(datos_creditos$DEFAULT)
summary(datos_creditos)
##  DEFAULT   ANTIUEDAD            EDAD        CUOTA_TOTAL         INGRESOS       
##  0:741   Min.   : 0.2548   Min.   :26.61   Min.   :    387   Min.   :  633825  
##  1: 39   1st Qu.: 7.3767   1st Qu.:48.18   1st Qu.: 328516   1st Qu.: 3583324  
##          Median :15.1192   Median :57.92   Median : 694460   Median : 5038962  
##          Mean   :18.0353   Mean   :56.99   Mean   : 885206   Mean   : 5366430  
##          3rd Qu.:30.6637   3rd Qu.:66.19   3rd Qu.:1244126   3rd Qu.: 6844098  
##          Max.   :37.3178   Max.   :92.43   Max.   :6664588   Max.   :22197021

Se puede observar que el dataset cuenta con (5) variables. Default (entre 1 y 0) muestra la probabilidad de impago, la variable Antiguedad cuenta con un mínimo de 0,25 años y un máximo de 37 años con el producto, la variable edad muestra minimos de edad de 26 años, media de 56 años y máximo de 92 años. Frente a la variable de cuota inicial se identifica una media de 885.206$. Finalmente, frente a los ingresos los usuarios tienen un promedio de 5.366.430 en sus ingresos.

2. Analisis exploratorio

Default. La Variable Default indica si la persona en algun momento estuvo en mor. Esta variables es binaria (1=Default y 0=No Default).

datos_creditos$ANTIUEDAD=cut(datos_creditos$ANTIUEDAD,breaks = c(0,10,20,30,40))
data.frame(table(datos_creditos$ANTIUEDAD))
##      Var1 Freq
## 1  (0,10]  265
## 2 (10,20]  201
## 3 (20,30]  104
## 4 (30,40]  210
PlotXTabs2(data = datos_creditos,x = "ANTIUEDAD",y="DEFAULT")

Se observa que las personas con antiguedad entre el rango de 0-10 años tienen un mayor Default (8%) que quienes tienes màs años de antiguedad, en este grupo también se ubica la mayor proporcion de usuarios.

EDAD

str(datos_creditos$EDAD)
##  num [1:780] 77 73.8 78.9 51.5 39 ...
datos_creditos$EDAD=cut(datos_creditos$EDAD,breaks = c(0,10,20,30,40,50,60,70,80,90,100))
data.frame(table(datos_creditos$EDAD))
##        Var1 Freq
## 1    (0,10]    0
## 2   (10,20]    0
## 3   (20,30]    6
## 4   (30,40]   83
## 5   (40,50]  140
## 6   (50,60]  210
## 7   (60,70]  225
## 8   (70,80]  100
## 9   (80,90]   14
## 10 (90,100]    2
PlotXTabs2(data = datos_creditos,x = "EDAD",y="DEFAULT")

Se observa que las personas que están en el rango de edad de 50-60 años son quienes tienen mayor Default con el 7%. Estas personas hacen parte del 26% del total de clientes.

Cuota_total

require(ggplot2)
g1=ggplot(datos_creditos, aes(x = DEFAULT, y = CUOTA_TOTAL)) + geom_boxplot(aes(fill = DEFAULT))
require(plotly)
ggplotly(g1) 

El 50% de las personas que están en Default tienen una cuota de 1.074.994\(, mientras que la cuota de las personas que no estan en default el promedio es de 600.000\).

INGRESOS

require(ggplot2)
g2=ggplot(datos_creditos, aes(x = DEFAULT, y = INGRESOS)) + geom_boxplot(aes(fill = DEFAULT))
require(plotly)
ggplotly(g2) 

eL 50% de las personas que están en DEAFULT tienen ingresos en primedio de 4.799.180$, mientras que el promedio de ingresos de quienes no estàn en DEFAULT es de 5.038.000. De esta manera entre mayor ingreso menos riesgo de caer en DEFAULT.

2. Modelo de Regresión Logistico Multiple - Considerando Todas las variables

mod_credito1=glm(DEFAULT~EDAD+ INGRESOS+ ANTIUEDAD+ CUOTA_TOTAL,
                 data = datos_creditos,family = "binomial")
summary(mod_credito1)
## 
## Call:
## glm(formula = DEFAULT ~ EDAD + INGRESOS + ANTIUEDAD + CUOTA_TOTAL, 
##     family = "binomial", data = datos_creditos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.0235  -0.3614  -0.2667  -0.1726   3.0808  
## 
## Coefficients:
##                    Estimate Std. Error z value Pr(>|z|)    
## (Intercept)      -1.725e+01  1.609e+03  -0.011   0.9914    
## EDAD(30,40]       1.488e+01  1.609e+03   0.009   0.9926    
## EDAD(40,50]       1.478e+01  1.609e+03   0.009   0.9927    
## EDAD(50,60]       1.560e+01  1.609e+03   0.010   0.9923    
## EDAD(60,70]       1.501e+01  1.609e+03   0.009   0.9926    
## EDAD(70,80]       1.545e+01  1.609e+03   0.010   0.9923    
## EDAD(80,90]       1.024e+00  1.897e+03   0.001   0.9996    
## EDAD(90,100]      7.169e-01  3.202e+03   0.000   0.9998    
## INGRESOS         -2.700e-07  1.080e-07  -2.500   0.0124 *  
## ANTIUEDAD(10,20] -8.431e-01  4.584e-01  -1.839   0.0659 .  
## ANTIUEDAD(20,30] -1.603e+00  8.139e-01  -1.969   0.0489 *  
## ANTIUEDAD(30,40] -7.676e-01  7.432e-01  -1.033   0.3017    
## CUOTA_TOTAL       9.775e-07  2.446e-07   3.996 6.45e-05 ***
## ---
## 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: 279.96  on 767  degrees of freedom
## AIC: 305.96
## 
## Number of Fisher Scoring iterations: 16

Se observa que las variables INGRESOS, ANTIGUEDAD Y CUOTA_TOTAL son significativas para el modelo y logran brindar una explicación de la variable respuesta para el DEFAULT. Mientras que la variable EDAD no brinda valor dentro del modelo. Podemos entonces elegir la función step() para que el modelo selecciones las variables que le son utiles.

mod_credito_mejorado = step(mod_credito1)
## Start:  AIC=305.96
## DEFAULT ~ EDAD + INGRESOS + ANTIUEDAD + CUOTA_TOTAL
## 
##               Df Deviance    AIC
## - EDAD         7   285.93 297.93
## <none>             279.96 305.96
## - ANTIUEDAD    3   286.16 306.16
## - INGRESOS     1   287.36 311.35
## - CUOTA_TOTAL  1   296.00 320.00
## 
## Step:  AIC=297.93
## DEFAULT ~ INGRESOS + ANTIUEDAD + CUOTA_TOTAL
## 
##               Df Deviance    AIC
## - ANTIUEDAD    3   291.37 297.37
## <none>             285.93 297.93
## - INGRESOS     1   292.49 302.49
## - CUOTA_TOTAL  1   302.38 312.38
## 
## Step:  AIC=297.37
## DEFAULT ~ INGRESOS + CUOTA_TOTAL
## 
##               Df Deviance    AIC
## <none>             291.37 297.37
## - INGRESOS     1   303.62 307.62
## - CUOTA_TOTAL  1   306.24 310.24
summary(mod_credito_mejorado)
## 
## Call:
## glm(formula = DEFAULT ~ INGRESOS + CUOTA_TOTAL, family = "binomial", 
##     data = datos_creditos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.6901  -0.3648  -0.2928  -0.2113   2.9753  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -2.353e+00  3.966e-01  -5.933 2.97e-09 ***
## INGRESOS    -3.134e-07  1.005e-07  -3.119 0.001817 ** 
## CUOTA_TOTAL  9.341e-07  2.404e-07   3.885 0.000102 ***
## ---
## 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: 291.37  on 777  degrees of freedom
## AIC: 297.37
## 
## Number of Fisher Scoring iterations: 6

Mejorando el modelo se elimina la variable edad. Es posible observar que entre mas alto sean los ingresos hay menos posibilidad de default. Tambièn, si la persona tiene mayor antiguedad menor posibilidad de default. En cuanto a la cuota, entre esta sea mas alta, hay mayor probabilidad de default.

OR=exp(mod_credito_mejorado$coefficients)
OR
## (Intercept)    INGRESOS CUOTA_TOTAL 
##  0.09508185  0.99999969  1.00000093

Según los coeficientes, cualquier aumento en una unidad de la variable cuota_total aumenta la posibilidad en 1% de generar riesgo de crédito.

3.ROC y AUC

library(ROCR)

prediccion_credito= predict.glm(mod_credito_mejorado, newdata = datos_creditos, type = "response")
resultado_cre=table(datos_creditos$DEFAULT, ifelse(prediccion_credito>0.2,1,0))
resultado_cre
##    
##       0   1
##   0 738   3
##   1  38   1
sum(diag(resultado_cre)/sum(resultado_cre))
## [1] 0.9474359
prediccion_default= ROCR::prediction(prediccion_credito,datos_creditos$DEFAULT)
perf_credito= performance(prediction.obj = prediccion_default, "tpr", "fpr")

plot(perf_credito)
abline(a = 0, b = 1,col="red")
grid()

AUC= performance(prediccion_default,measure = "auc")@y.values[[1]]
cat("AUC: ",AUC,"n")
## AUC:  0.6791238 n

Conclusión: ELa curva ROC para el modelo indica que este modelo tiene un bajo poder discriminatorio, puesto que el trazo no está cercano a la línea horizontal, de hecho el área bajo la curva (AUROC) es 0,67.