Importar librerias

library ("easypackages")
lib_req = c ("MASS","visdat","corrplot","plotrix","doBy","FactoMineR","factoextra","caret","e1071","pROC","class","rpart","rpart.plot","randomForest", "ggplot2", "gridExtra", "fmsb")
easypackages :: packages (lib_req)

Punto 1

Verifique la estructura de los datos. Realice las transformaciones y ajustes pertinentes para obtener una hoja de datos limpia.
## 'data.frame':    4117 obs. of  11 variables:
##  $ ID            : int  100756 100668 100418 100416 100590 100657 100702 100319 100666 100389 ...
##  $ EDAD          : int  44 35 34 34 39 41 42 31 28 30 ...
##  $ INGRESOS      : int  59944 59692 59508 59463 59393 59276 59201 59193 59179 59036 ...
##  $ GENERO        : chr  "m" " " "m" "m" ...
##  $ ESTADO_CIVIL  : chr  "married" "married" "married" "married" ...
##  $ NUM_HIJOS     : int  1 1 1 0 0 1 0 1 1 1 ...
##  $ NUM_TARJETAS  : int  2 1 1 2 2 2 1 2 1 1 ...
##  $ MODALIDAD_PAGO: chr  "monthly" "monthly" "monthly" "monthly" ...
##  $ HIPOTECA      : chr  "y" "y" "y" "y" ...
##  $ PRESTAMOS     : int  0 0 1 1 0 1 0 1 1 1 ...
##  $ RIESGO        : chr  "V" "F" "V" "F" ...

Formato de la base de datos corregido

## 'data.frame':    4117 obs. of  11 variables:
##  $ ID            : int  100756 100668 100418 100416 100590 100657 100702 100319 100666 100389 ...
##  $ EDAD          : int  44 35 34 34 39 41 42 31 28 30 ...
##  $ INGRESOS      : int  59944 59692 59508 59463 59393 59276 59201 59193 59179 59036 ...
##  $ GENERO        : Factor w/ 2 levels "Male","Female": 1 NA 1 1 2 1 1 2 1 1 ...
##  $ ESTADO_CIVIL  : Factor w/ 3 levels "Married","Single",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ NUM_HIJOS     : int  1 1 1 0 0 1 0 1 1 1 ...
##  $ NUM_TARJETAS  : int  2 1 1 2 2 2 1 2 1 1 ...
##  $ MODALIDAD_PAGO: Factor w/ 2 levels "Monthly","Weekly": 1 1 1 1 1 1 1 1 1 1 ...
##  $ HIPOTECA      : Factor w/ 2 levels "No","Yes": 2 2 2 2 2 2 2 2 2 2 ...
##  $ PRESTAMOS     : int  0 0 1 1 0 1 0 1 1 1 ...
##  $ RIESGO        : Factor w/ 2 levels "Impago","Cumplimiento": 1 2 1 2 1 1 1 1 2 1 ...

Visualizacion e identificacion de las variables que presentan datos faltantes

En el gráfico se puede apreciar que la variable “GENERO” tiene un valor faltante, el cual constituye menos del 1% del total de los registros.Por lo cual, este registro será excluido del análisis.

Formato de la base de datos corregido despues de eliminar el valor faltante de la variable “GENERO”

## 'data.frame':    4116 obs. of  11 variables:
##  $ ID            : int  100756 100418 100416 100590 100657 100702 100319 100666 100389 100758 ...
##  $ EDAD          : int  44 34 34 39 41 42 31 28 30 38 ...
##  $ INGRESOS      : int  59944 59508 59463 59393 59276 59201 59193 59179 59036 58914 ...
##  $ GENERO        : Factor w/ 2 levels "Male","Female": 1 1 1 2 1 1 2 1 1 1 ...
##  $ ESTADO_CIVIL  : Factor w/ 3 levels "Married","Single",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ NUM_HIJOS     : int  1 1 0 0 1 0 1 1 1 0 ...
##  $ NUM_TARJETAS  : int  2 1 2 2 2 1 2 1 1 1 ...
##  $ MODALIDAD_PAGO: Factor w/ 2 levels "Monthly","Weekly": 1 1 1 1 1 1 1 1 1 1 ...
##  $ HIPOTECA      : Factor w/ 2 levels "No","Yes": 2 2 2 2 2 2 2 2 2 2 ...
##  $ PRESTAMOS     : int  0 1 1 0 1 0 1 1 1 1 ...
##  $ RIESGO        : Factor w/ 2 levels "Impago","Cumplimiento": 1 1 2 1 1 1 1 2 1 2 ...

Punto 2

Realice un análisis exploratorio de los datos para identificar las potenciales variables predictoras para la condición de impago. Muestre sus hallazgos en representaciones gráficas y tablas resumen contundentes.

Graficos individuales de las variables Cuantitativas vs Riesgo

De acuerdo con los gráficos, podemos ver lo siguiente:

Edad: A medida que las personas envejecen, la mediana de edad de quienes caen en impago ronda los 35 años. En cambio, las personas con mayor cumplimiento son más jóvenes, con una edad cercana a los 25 años.

Ingresos: Se observa que las personas con mayores ingresos tienen una mediana de ingresos más alta en comparación con las personas con menores ingresos.

Número de hijos: El número de hijos no parece influir en el hecho de que una persona tenga o no un impago. Sin embargo, el mayor número de incumplimientos de pago se da entre las personas que no tienen hijos o que tienen solo uno.

Número de tarjetas: El número de tarjetas no muestra una clara diferenciación entre las personas que caen en impago y las que están al día con sus obligaciones.

Préstamos: Aunque las medianas de los resultados parecen indicar que no hay diferencias, las distribuciones sí las muestran. Las personas que han caído en impago generalmente no han tenido otros créditos, mientras que aquellas en un estado de cumplimiento pueden tener más de uno.

Graficos individuales de las variables Cualitativas por Riesgo

Visualizacion Variable Genero por Riesgo

Esta variable no tiene ningún impacto en la determinación de si una persona cae en impago o no.

Visualizacion Variable Estado Civil por Riesgo

Las personas en estado de impago son mayormente divorciadas, seguidas por las solteras y, finalmente, las casadas.

Visualizacion Variable Modalidad Pago por Riesgo

Las personas con pagos mensuales tienen más probabilidades de incumplir sus obligaciones financieras en comparación con aquellas que pagan semanalmente.

Visualizacion Variable Hipoteca Pago por Riesgo

Las personas con hipotecas tienen tasas de incumplimiento más elevadas que las que no poseen una.

Grafico multivariado por Componentes Principales

Selección e interpretación de componentes

De acuerdo con el gráfico, se puede ver que con las primeras 2 componentes principales se tiene el 81.96% de la Varianza Explicada

Representación simultanea de las variables y los individuos en las componentes principales

El análisis de componentes principales, revela una clara separación entre los clientes con impago y los que están cumpliendo con sus obligaciones. En el gráfico, se puede notar que los clientes ubicados en la esquina superior izquierda son mayoritariamente aquellos que tienen impago. Estos se distinguen por tener ingresos altos y un número bajo de préstamos y de hijos.

Punto 3

Entrene y compare múltiples modelos de clasificación

Modelo estadistico - Regresión Logística

El primer modelo planteado con regresión logística muestra un AIC de 2268.1. Este modelo determina que la variable género no es significativa, ya que no aporta información adicional para clasificar si un cliente incumple sus obligaciones financieras o no.

## 
## Call:
## glm(formula = RIESGO ~ ., family = "binomial", data = Data_Clientes_Cooperativa.tr[, 
##     -1])
## 
## Coefficients:
##                         Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            3.535e+00  4.679e-01   7.555 4.20e-14 ***
## EDAD                  -3.701e-02  8.893e-03  -4.162 3.16e-05 ***
## INGRESOS              -7.201e-05  8.468e-06  -8.503  < 2e-16 ***
## GENEROFemale           3.341e-02  1.082e-01   0.309 0.757473    
## ESTADO_CIVILSingle    -3.155e-02  1.860e-01  -0.170 0.865309    
## ESTADO_CIVILDivsepwid -4.103e+00  3.560e-01 -11.527  < 2e-16 ***
## NUM_HIJOS              3.512e-01  8.665e-02   4.053 5.06e-05 ***
## NUM_TARJETAS           3.265e-01  7.039e-02   4.638 3.51e-06 ***
## MODALIDAD_PAGOWeekly   5.481e-01  1.984e-01   2.762 0.005739 ** 
## HIPOTECAYes           -6.380e-01  1.656e-01  -3.854 0.000116 ***
## PRESTAMOS              9.441e-01  1.190e-01   7.931 2.18e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3263.2  on 3292  degrees of freedom
## Residual deviance: 2246.1  on 3282  degrees of freedom
## AIC: 2268.1
## 
## Number of Fisher Scoring iterations: 6

Matriz de confusion Regresión Logística

El modelo tiene un F1 score del 60,87%. No obstante, al revisar los indicadores de sensibilidad y especificidad, se observa que logra predecir el cumplimiento de un cliente en un 93,27%. En cambio, la capacidad para identificar a un cliente con incumplimiento es del 55,79%.

##          Sensitivity          Specificity       Pos Pred Value 
##            0.5579598            0.9327286            0.6697588 
##       Neg Pred Value            Precision               Recall 
##            0.8961511            0.6697588            0.5579598 
##                   F1           Prevalence       Detection Rate 
##            0.6087690            0.1964774            0.1096265 
## Detection Prevalence    Balanced Accuracy 
##            0.1636805            0.7453442

Regresión Logística utilizando Backward

Aplicando el método de Backward en un modelo de regresión logística, se llega a un modelo con un AIC de 2268.06, donde la variable género se elimina, coincidiendo con la observación anterior.

## Start:  AIC=2268.06
## RIESGO ~ EDAD + INGRESOS + GENERO + ESTADO_CIVIL + NUM_HIJOS + 
##     NUM_TARJETAS + MODALIDAD_PAGO + HIPOTECA + PRESTAMOS
## 
##                  Df Deviance    AIC
## - GENERO          1   2246.2 2266.2
## <none>                2246.1 2268.1
## - MODALIDAD_PAGO  1   2254.0 2274.0
## - HIPOTECA        1   2261.5 2281.5
## - NUM_HIJOS       1   2262.8 2282.8
## - EDAD            1   2263.3 2283.3
## - NUM_TARJETAS    1   2268.1 2288.1
## - PRESTAMOS       1   2311.8 2331.8
## - INGRESOS        1   2323.8 2343.8
## - ESTADO_CIVIL    2   2427.1 2445.1
## 
## Step:  AIC=2266.15
## RIESGO ~ EDAD + INGRESOS + ESTADO_CIVIL + NUM_HIJOS + NUM_TARJETAS + 
##     MODALIDAD_PAGO + HIPOTECA + PRESTAMOS
## 
##                  Df Deviance    AIC
## <none>                2246.2 2266.2
## - MODALIDAD_PAGO  1   2254.1 2272.1
## - HIPOTECA        1   2261.6 2279.6
## - NUM_HIJOS       1   2262.8 2280.8
## - EDAD            1   2263.3 2281.3
## - NUM_TARJETAS    1   2268.2 2286.2
## - PRESTAMOS       1   2311.8 2329.8
## - INGRESOS        1   2324.6 2342.6
## - ESTADO_CIVIL    2   2427.2 2443.2
## 
## Call:
## glm(formula = RIESGO ~ EDAD + INGRESOS + ESTADO_CIVIL + NUM_HIJOS + 
##     NUM_TARJETAS + MODALIDAD_PAGO + HIPOTECA + PRESTAMOS, family = "binomial", 
##     data = Data_Clientes_Cooperativa.tr[, -1])
## 
## Coefficients:
##                         Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            3.558e+00  4.618e-01   7.705 1.31e-14 ***
## EDAD                  -3.695e-02  8.891e-03  -4.156 3.24e-05 ***
## INGRESOS              -7.218e-05  8.450e-06  -8.542  < 2e-16 ***
## ESTADO_CIVILSingle    -3.348e-02  1.859e-01  -0.180 0.857107    
## ESTADO_CIVILDivsepwid -4.102e+00  3.559e-01 -11.526  < 2e-16 ***
## NUM_HIJOS              3.501e-01  8.657e-02   4.045 5.24e-05 ***
## NUM_TARJETAS           3.268e-01  7.038e-02   4.643 3.43e-06 ***
## MODALIDAD_PAGOWeekly   5.470e-01  1.984e-01   2.757 0.005832 ** 
## HIPOTECAYes           -6.390e-01  1.655e-01  -3.860 0.000113 ***
## PRESTAMOS              9.427e-01  1.189e-01   7.926 2.26e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3263.2  on 3292  degrees of freedom
## Residual deviance: 2246.2  on 3283  degrees of freedom
## AIC: 2266.2
## 
## Number of Fisher Scoring iterations: 6

Este analisis indica que el modelo reducido tiene similar ajuste al modelo saturado con menos variables.

## Analysis of Deviance Table
## 
## Model 1: RIESGO ~ EDAD + INGRESOS + ESTADO_CIVIL + NUM_HIJOS + NUM_TARJETAS + 
##     MODALIDAD_PAGO + HIPOTECA + PRESTAMOS
## Model 2: RIESGO ~ EDAD + INGRESOS + GENERO + ESTADO_CIVIL + NUM_HIJOS + 
##     NUM_TARJETAS + MODALIDAD_PAGO + HIPOTECA + PRESTAMOS
##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1      3283     2246.2                     
## 2      3282     2246.1  1 0.095358   0.7575

La prueba de anova muestra que el modelo reducido es significativamente mejor que el modelo nulo.

## Analysis of Deviance Table
## 
## Model 1: RIESGO ~ 1
## Model 2: RIESGO ~ EDAD + INGRESOS + ESTADO_CIVIL + NUM_HIJOS + NUM_TARJETAS + 
##     MODALIDAD_PAGO + HIPOTECA + PRESTAMOS
##   Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
## 1      3292     3263.2                          
## 2      3283     2246.2  9   1017.1 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación de los parametros del modelo

## $Coeficientes
##                                Coef         2.5 %        97.5 %
## (Intercept)            3.558123e+00  2.660531e+00  4.471649e+00
## EDAD                  -3.695034e-02 -5.438493e-02 -1.951265e-02
## INGRESOS              -7.217754e-05 -8.893057e-05 -5.578498e-05
## ESTADO_CIVILSingle    -3.347815e-02 -3.982331e-01  3.309945e-01
## ESTADO_CIVILDivsepwid -4.102395e+00 -4.817946e+00 -3.421755e+00
## NUM_HIJOS              3.501394e-01  1.814086e-01  5.209592e-01
## NUM_TARJETAS           3.267773e-01  1.895863e-01  4.656470e-01
## MODALIDAD_PAGOWeekly   5.469568e-01  1.646212e-01  9.442576e-01
## HIPOTECAYes           -6.389663e-01 -9.673886e-01 -3.178516e-01
## PRESTAMOS              9.426873e-01  7.112156e-01  1.177675e+00
## 
## $OR
##                            e-beta        2.5 %      97.5 %
## (Intercept)           35.09725508 14.303882381 87.50086071
## EDAD                   0.96372400  0.947067479  0.98067649
## INGRESOS               0.99992783  0.999911073  0.99994422
## ESTADO_CIVILSingle     0.96707604  0.671505479  1.39235216
## ESTADO_CIVILDivsepwid  0.01653303  0.008083375  0.03265508
## NUM_HIJOS              1.41926541  1.198904998  1.68364174
## NUM_TARJETAS           1.38649273  1.208749379  1.59304459
## MODALIDAD_PAGOWeekly   1.72798645  1.178946417  2.57090404
## HIPOTECAYes            0.52783776  0.380074268  0.72771077
## PRESTAMOS              2.56687005  2.036465294  3.24681711

Matriz de confusion Regresión Logística utilizando Backward

En el modelo reducido, se nota una disminución en la sensibilidad y un aumento en la especificidad. Dado que el objetivo es aumentar la sensibilidad, podemos concluir que el modelo aún no es óptimo en este sentido.

##          Sensitivity          Specificity       Pos Pred Value 
##            0.5533230            0.9331066            0.6691589 
##       Neg Pred Value            Precision               Recall 
##            0.8952139            0.6691589            0.5533230 
##                   F1           Prevalence       Detection Rate 
##            0.6057530            0.1964774            0.1087155 
## Detection Prevalence    Balanced Accuracy 
##            0.1624658            0.7432148

Evaluación de los puntos de corte de las probabilidades predichas vs la Densidad

El gráfico muestra una distribución positiva para los clientes cumplidores, mientras que las probabilidades predichas para las personas que incumplen tienen una ligera asimetría negativa.

Exploración del mejor punte de corte

Al revisar la curva ROC, se observa que un mejor punto de corte es el de 0.808

## Setting levels: control = Impago, case = Cumplimiento
## Setting direction: controls < cases

Matriz de confusion Regresión Logística con el nuevo punto de corte

Se observa que con el nuevo punto de corte, se mejora notablemente la sensibilidad del modelo a costa de sacrificar la especificidad. Ahora la sensibilidad es del 79.13%.

##          Sensitivity          Specificity       Pos Pred Value 
##            0.7913447            0.8299320            0.5322245 
##       Neg Pred Value            Precision               Recall 
##            0.9420849            0.5322245            0.7913447 
##                   F1           Prevalence       Detection Rate 
##            0.6364201            0.1964774            0.1554813 
## Detection Prevalence    Balanced Accuracy 
##            0.2921348            0.8106383

Algoritmo de Aprendizaje Automático - SVM

##    (Intercept)           EDAD       INGRESOS         GENERO   ESTADO_CIVIL 
##    -1.48028655     0.22907661     0.51510796    -0.00456135     0.00456135 
##      NUM_HIJOS   NUM_TARJETAS MODALIDAD_PAGO       HIPOTECA      PRESTAMOS 
##     0.09371025     1.50184154    -0.21001812    -0.35449611    -0.17349220 
##           <NA>           <NA> 
##     0.26092809    -0.46367099

El modelo de soporte vectorial se construyó con un Kernel lineal y un costo de 1. Además, el número de vectores de soporte es de 1075, distribuidos en 534 para la categoría de cumplimiento y 541 para la de impago.

## 
## Call:
## svm(formula = RIESGO ~ ., data = Data_Clientes_Cooperativa.tr[, -1], 
##     type = "C-classification", kernel = "linear", cost = 1, epsilon = 0.1, 
##     scale = TRUE)
## 
## 
## Parameters:
##    SVM-Type:  C-classification 
##  SVM-Kernel:  linear 
##        cost:  1 
## 
## Number of Support Vectors:  1075
## 
##  ( 534 541 )
## 
## 
## Number of Classes:  2 
## 
## Levels: 
##  Impago Cumplimiento

Matriz de confusion SVM

En el primer modelo de SVM, se observa que la sensibilidad es del 68.00% y la especificidad del 92.29%. Se realizará un ajuste de hiperparámetros de penalidad e intensidad para buscar obtener un mejor resultado.

##          Sensitivity          Specificity       Pos Pred Value 
##            0.6800618            0.9229025            0.6832298 
##       Neg Pred Value            Precision               Recall 
##            0.9218573            0.6832298            0.6800618 
##                   F1           Prevalence       Detection Rate 
##            0.6816421            0.1964774            0.1336168 
## Detection Prevalence    Balanced Accuracy 
##            0.1955664            0.8014822

Sintonizando (Tuning) los hiperparamétros c (penalidad) y epsilon (intensidad)

Se encontró que los mejores hiperparámetros son un costo de 1, alcanzando un rendimiento de 0.1248. Sin embargo, se observa que el hiperparámetro de costo puede tomar cualquier valor entre 1 y 32 sin alterar el error ni la dispersión del modelo, lo cual también se puede apreciar en la gráfica.

## 
## Parameter tuning of 'svm':
## 
## - sampling method: 10-fold cross validation 
## 
## - best parameters:
##  cost
##     1
## 
## - best performance: 0.1248015 
## 
## - Detailed performance results:
##   cost     error dispersion
## 1    1 0.1248015 0.01240729
## 2    2 0.1248015 0.01240729
## 3    4 0.1248015 0.01240729
## 4    8 0.1248015 0.01240729
## 5   16 0.1248015 0.01240729
## 6   32 0.1248015 0.01240729

Matriz de confusion SVM con los parametros nuevos

Con los hiperparámetros ajustados, no se aprecia ninguna diferencia con respecto al modelo inicial propuesto.

##          Sensitivity          Specificity       Pos Pred Value 
##            0.6800618            0.9229025            0.6832298 
##       Neg Pred Value            Precision               Recall 
##            0.9218573            0.6832298            0.6800618 
##                   F1           Prevalence       Detection Rate 
##            0.6816421            0.1964774            0.1336168 
## Detection Prevalence    Balanced Accuracy 
##            0.1955664            0.8014822

Modelo Ensamble - Random Forest

Al realizar el modelo de ensamble a través de Random Forest, se identificó que las variables más importantes para la clasificación son los ingresos, los préstamos, la edad y el número de hijos.

Matriz de confusion Random Forest

La matriz de confusión muestra una sensibilidad del 60.12% y una especificidad del 92.40%. Se realizará un ajuste de hiperparámetros para buscar obtener un mejor resultado.

##          Sensitivity          Specificity       Pos Pred Value 
##            0.6012365            0.9240363            0.6593220 
##       Neg Pred Value            Precision               Recall 
##            0.9045505            0.6593220            0.6012365 
##                   F1           Prevalence       Detection Rate 
##            0.6289410            0.1964774            0.1181294 
## Detection Prevalence    Balanced Accuracy 
##            0.1791679            0.7626364

Validacion Cruzada Random forest

Se identifica que el valor óptimo de mtry es 2, ya que genera los valores más altos de Accuracy y Kappa.

##   model parameter                         label forReg forClass probModel
## 1    rf      mtry #Randomly Selected Predictors   TRUE     TRUE      TRUE
## Random Forest 
## 
## 3293 samples
##   10 predictor
##    2 classes: 'Impago', 'Cumplimiento' 
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 10 times) 
## Summary of sample sizes: 2963, 2964, 2963, 2964, 2964, 2964, ... 
## Resampling results across tuning parameters:
## 
##   mtry  Accuracy   Kappa    
##   2     0.8775217  0.6143637
##   3     0.8751526  0.6017479
##   4     0.8653457  0.5594861
##   5     0.8611850  0.5397453
##   6     0.8587271  0.5302087
##   7     0.8575419  0.5254463
## 
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was mtry = 2.

Matriz de confusion Random Forest con RF tuneado

Al ejecutar el modelo de Random Forest con los hiperparámetros ajustados, se observa una sensibilidad del 69.55% y una especificidad del 92.17%, lo que representa una mejora en la sensibilidad con respecto al modelo anterior.

##          Sensitivity          Specificity       Pos Pred Value 
##            0.6955178            0.9217687            0.6849315 
##       Neg Pred Value            Precision               Recall 
##            0.9252656            0.6849315            0.6955178 
##                   F1           Prevalence       Detection Rate 
##            0.6901840            0.1964774            0.1366535 
## Detection Prevalence    Balanced Accuracy 
##            0.1995141            0.8086432

Punto 4

Genere una recomendación a la cooperativa respecto al modelo que debe emplear para el otorgamiento del crédito. Justificando su recomendación.

Comparación con datos de entrenamiento - bondad de ajuste

Para este análisis, es crucial identificar correctamente a los clientes que probablemente no cumplirán con sus obligaciones financieras. Por lo tanto, para seleccionar el mejor modelo nos centraremos en el indicador de sensibilidad, que indica qué tan bien el modelo puede detectar a los clientes con impago.

Al comparar los resultados de los modelos con los datos de entrenamiento, se observa que los tres modelos logran predecir con buen desempeño a los clientes cumplidores (esto se debe a la cantidad de clientes que cumplen). Sin embargo, al tratar de identificar a los clientes con impago, el mejor modelo es la regresión logística ajustada utilizando backward, seguida por Random Forest y, en último lugar, la Máquina de Soporte Vectorial.

##                             RL       svm        RF
## Sensitivity          0.7913447 0.6800618 0.6955178
## Specificity          0.8299320 0.9229025 0.9217687
## Pos Pred Value       0.5322245 0.6832298 0.6849315
## Neg Pred Value       0.9420849 0.9218573 0.9252656
## Precision            0.5322245 0.6832298 0.6849315
## Recall               0.7913447 0.6800618 0.6955178
## F1                   0.6364201 0.6816421 0.6901840
## Prevalence           0.1964774 0.1964774 0.1964774
## Detection Rate       0.1554813 0.1336168 0.1366535
## Detection Prevalence 0.2921348 0.1955664 0.1995141
## Balanced Accuracy    0.8106383 0.8014822 0.8086432

Comparación con datos de test - Capacidad predictiva

Al evaluar la capacidad predictiva de los modelos con los datos de prueba, se nota que el modelo de regresión posiblemente está sobreajustado, ya que su sensibilidad disminuye notablemente con datos nuevos. Los otros dos modelos también se ven afectados, pero logran un mejor desempeño en la clasificación, destacándose especialmente el Random Forest por encima de todos.

##                              RL       svm        RF
## Sensitivity          0.29299363 0.5732484 0.5987261
## Specificity          0.15765766 0.9264264 0.9264264
## Pos Pred Value       0.07578254 0.6474820 0.6573427
## Neg Pred Value       0.48611111 0.9020468 0.9073529
## Precision            0.07578254 0.6474820 0.6573427
## Recall               0.29299363 0.5732484 0.5987261
## F1                   0.12041885 0.6081081 0.6266667
## Prevalence           0.19076549 0.1907655 0.1907655
## Detection Rate       0.05589307 0.1093560 0.1142163
## Detection Prevalence 0.73754557 0.1688943 0.1737546
## Balanced Accuracy    0.22532564 0.7498374 0.7625763

Gráfico de radar para comparar el rendimiento de los modelos en los conjuntos de datos de entrenamiento y prueba

Conclusiones

La elección del mejor modelo dependerá de las necesidades específicas del uso que se le quiera dar:

  1. Interpretación de los datos: Para poder interpretar cómo cada variable influye en la probabilidad de que un cliente caiga en impago, el modelo de regresión logística es el más adecuado.

  2. Predicción precisa de impagos: Si el objetivo principal es predecir correctamente si un cliente puede caer en impago, el Random Forest es más ajustado a esta necesidad debido a su capacidad para capturar relaciones complejas entre las variables.

En este caso, dado que la cooperativa necesita identificar a los clientes que pueden caer en impago, el modelo más recomendado es el Random Forest. No obstante, es importante tener en cuenta que este modelo no proporciona una interpretación directa de sus resultados. Si la interpretación del análisis es crucial para la cooperativa, se recomienda utilizar la regresión logística, que permitirá una comprensión más detallada de cómo las variables impactan en las clasificaciones de los clientes.