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.
Variable dependiente (objetivo, binaria): Loan_Status, Decisión de solicitud
1: Approved
0: Rejected
Variables explicativas disponibles: Income (numérica), Loan_amount (numérica), Education (categórica), Self_Employed (categórica) y Cibil_Score (numérica).
#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.