Ejercicio de clase

Aprobación de préstamos: una institución financiera quiere entender qué factores inciden en la aprobación de solicitudes de préstamo. Contamos con un conjunto de datos reales (archivo: Loan_Approval_Dataset.csv, disponible en Moodle) que incluye información del solicitante, su situación laboral, activos reportados y el resultado de la solicitud.

#cargar base de datos Loan_Approval
library(readr)
library(dplyr)
data <- read_csv("Loan_Approval_Dataset.csv")
n <- 4269
summary(data)
##  Loan_Status            Income         Loan_Amount        Education        
##  Length:4269        Min.   : 200000   Min.   :  300000   Length:4269       
##  Class :character   1st Qu.:2700000   1st Qu.: 7700000   Class :character  
##  Mode  :character   Median :5100000   Median :14500000   Mode  :character  
##                     Mean   :5059124   Mean   :15133450                     
##                     3rd Qu.:7500000   3rd Qu.:21500000                     
##                     Max.   :9900000   Max.   :39500000                     
##  Self_Employed       Cibil_Score   
##  Length:4269        Min.   :300.0  
##  Class :character   1st Qu.:453.0  
##  Mode  :character   Median :600.0  
##                     Mean   :599.9  
##                     3rd Qu.:748.0  
##                     Max.   :900.0
#Convertimos la variable dependiente en binaria, donde 1= Approved y 0 = Rejected
data$Loan_Status <- recode(data$Loan_Status,"Approved" = 1, "Rejected" = 0)

# Convertimos Education y Self_Employed en factores
data$Education <- relevel(as.factor(data$Education), ref = "Not Graduate")
data$Self_Employed <- relevel(as.factor(data$Self_Employed), ref = "No")

#Revisamos los cambios realizados 
str(data)
## spc_tbl_ [4,269 × 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ Loan_Status  : num [1:4269] 1 0 0 0 0 0 1 0 1 0 ...
##  $ Income       : num [1:4269] 9600000 4100000 9100000 8200000 9800000 4800000 8700000 5700000 800000 1100000 ...
##  $ Loan_Amount  : num [1:4269] 29900000 12200000 29700000 30700000 24200000 13500000 33000000 15000000 2200000 4300000 ...
##  $ Education    : Factor w/ 2 levels "Not Graduate",..: 2 1 2 2 1 2 2 2 2 1 ...
##  $ Self_Employed: Factor w/ 2 levels "No","Yes": 1 2 1 1 2 2 1 2 2 1 ...
##  $ Cibil_Score  : num [1:4269] 778 417 506 467 382 319 678 382 782 388 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   Loan_Status = col_character(),
##   ..   Income = col_double(),
##   ..   Loan_Amount = col_double(),
##   ..   Education = col_character(),
##   ..   Self_Employed = col_character(),
##   ..   Cibil_Score = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>
# Modelo con interacción entre Income y Self_Employed
modelo_interaccion <- glm(Loan_Status ~ Income * Self_Employed + Loan_Amount + Education + Cibil_Score,
                          data = data, family = binomial)

# Resumen del modelo
summary(modelo_interaccion)
## 
## Call:
## glm(formula = Loan_Status ~ Income * Self_Employed + Loan_Amount + 
##     Education + Cibil_Score, family = binomial, data = data)
## 
## Coefficients:
##                           Estimate Std. Error z value Pr(>|z|)    
## (Intercept)             -1.173e+01  4.156e-01 -28.230  < 2e-16 ***
## Income                  -3.978e-07  5.800e-08  -6.859 6.92e-12 ***
## Self_EmployedYes         1.206e-01  2.317e-01   0.520    0.603    
## Loan_Amount              1.321e-07  1.707e-08   7.741 9.89e-15 ***
## EducationGraduate        7.139e-02  1.118e-01   0.639    0.523    
## Cibil_Score              2.214e-02  7.137e-04  31.016  < 2e-16 ***
## Income:Self_EmployedYes -1.259e-08  3.978e-08  -0.317    0.752    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 5660.7  on 4268  degrees of freedom
## Residual deviance: 2088.1  on 4262  degrees of freedom
## AIC: 2102.1
## 
## Number of Fisher Scoring iterations: 7

Luego de realizar el modelo de interacción entre las variables Income y Self_Employed, se observa que el ingreso tiene un efecto negativo muy pequeño pero significativo en la probabilidad de aprobación del préstamo, mientras que ser autoempleado no muestra un efecto estadísticamente relevante. El monto solicitado y el puntaje crediticio presentan efectos positivos y significativos, siendo el Cibil_Score el factor más influyente en la aprobación. Por otro lado, el nivel educativo no tiene un impacto notable, y la interacción entre ingreso y tipo de empleo no resulta significativa, lo que indica que el efecto del ingreso es similar para empleados y autoempleados.

# Crear tabla con Logit y Odds Ratio (como el profesor)
coefs <- summary(modelo_interaccion)$coefficients

tabla_interaccion <- data.frame(
  Termino = rownames(coefs),
  Logit = round(coefs[, "Estimate"], 3),
  Odds_Ratio = round(exp(coefs[, "Estimate"]), 3),
  row.names = NULL
)

tabla_interaccion
##                   Termino   Logit Odds_Ratio
## 1             (Intercept) -11.733      0.000
## 2                  Income   0.000      1.000
## 3        Self_EmployedYes   0.121      1.128
## 4             Loan_Amount   0.000      1.000
## 5       EducationGraduate   0.071      1.074
## 6             Cibil_Score   0.022      1.022
## 7 Income:Self_EmployedYes   0.000      1.000

Interpretaciones:

Intercepto: Representa la situación base del modelo, es decir, un solicitante no autoempleado, no graduado, con bajo ingreso, bajo monto solicitado y bajo puntaje crediticio. En esa condición, la probabilidad de que el préstamo sea aprobado es muy baja.

Income: Por cada aumento adicional en el ingreso mensual, la probabilidad de aprobación del préstamo no cambia significativamente (OR = 1.000), manteniendo constantes las demás variables.

Self_Employed: Los solicitantes que trabajan por cuenta propia tienen una probabilidad de aprobación 12.8% mayor (OR = 1.128) respecto a los que no lo son, manteniendo constantes las demás variables.

Loan_Amount: El monto del préstamo solicitado no muestra un efecto significativo en la probabilidad de aprobación (OR = 1.000), una vez controlados los demás factores.

Education: Los solicitantes con nivel educativo Graduate tienen una probabilidad 7.4% mayor (OR = 1.074) de que su préstamo sea aprobado respecto a los no graduados, manteniendo constantes las demás variables.

Cibil_Score: Cada punto adicional en el puntaje crediticio aumenta la probabilidad de aprobación en aproximadamente 2.2% (OR = 1.022), manteniendo las demás variables constantes.

Interacción Income:Self_Employed: El efecto conjunto entre ingreso y trabajo por cuenta propia no muestra diferencia significativa (OR = 1.000). Esto indica que el impacto del ingreso sobre la aprobación es similar tanto para empleados como para autoempleados.