distrito genero canal_preferido tipo_credito_actual
1 Los Olivos Masculino Promotor de campo Crédito vehicular
2 Independencia Femenino Promotor de campo Crédito vehicular
3 San Juan de Lurigancho Masculino Agencia física Crédito vehicular
4 El Agustino Masculino WhatsApp/Teléfono Crédito personal express
5 San Juan de Lurigancho Masculino Agencia física Crédito personal express
6 Comas Masculino Agencia física Crédito personal express
no_bancarizado_previo nivel_educativo calificacion_riesgo
1 No Universitario Bajo
2 Sí Técnico Alto
3 No Secundaria Muy alto
4 No Técnico Medio
5 No Secundaria Medio
6 No Secundaria Medio
satisfaccion_servicio frecuencia_pago uso_apps_financieras edad
1 Insatisfecho Siempre puntual Casi nunca 25
2 Satisfecho A veces Siempre 53
3 Satisfecho Casi nunca Casi nunca 38
4 Satisfecho Siempre puntual Nunca 61
5 Muy satisfecho Casi siempre Ocasionalmente 35
6 Neutral A veces Casi nunca 49
num_creditos_previos dias_mora_ultimo num_productos ingreso_mensual
1 6 41 4 2694.09
2 2 8 5 1582.30
3 8 9 1 1253.54
4 1 2 1 1220.12
5 3 1 2 1174.18
6 3 9 4 1709.83
monto_credito tasa_interes ratio_deuda_ingreso
1 3982.58 29.59 10.27
2 3784.93 28.57 16.49
3 4168.27 66.81 29.72
4 4857.36 49.20 31.70
5 5008.97 51.74 34.56
6 3598.09 42.39 16.00
##1. ¿Qué variables están más asociadas a la morosidad?
library(dplyr)
Adjuntando el paquete: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library(knitr)library(kableExtra)
Adjuntando el paquete: 'kableExtra'
The following object is masked from 'package:dplyr':
group_rows
library(ggplot2)library(summarytools)tabla_riesgo <-aggregate(dias_mora_ultimo ~ calificacion_riesgo,data = df, mean)kable(tabla_riesgo,caption ="Promedio de días de mora según calificación de riesgo",col.names =c("Calificación", "Promedio de mora")) %>%kable_styling(full_width =FALSE,bootstrap_options =c("striped","hover","condensed"))
Promedio de días de mora según calificación de riesgo
Calificación
Promedio de mora
Alto
12.991150
Bajo
9.029126
Medio
9.817073
Muy alto
11.333333
Muy bajo
11.203704
tabla_bancarizacion <-aggregate(dias_mora_ultimo ~ no_bancarizado_previo,data = df, mean)kable(tabla_bancarizacion,caption ="Promedio de mora según condición de bancarización",col.names =c("Bancarizado", "Promedio de mora")) %>%kable_styling(full_width =FALSE,bootstrap_options =c("striped","hover"))
Promedio de mora según condición de bancarización
Bancarizado
Promedio de mora
No
10.28125
Sí
11.50556
tabla_frecuencia <-aggregate(dias_mora_ultimo ~ frecuencia_pago ,data = df, mean)kable(tabla_frecuencia,caption ="Promedio de mora según frecuencia de pago",col.names =c("Frecuencia", "Promedio de mora")) %>%kable_styling(full_width =FALSE,bootstrap_options =c("striped","hover"))
Promedio de mora según frecuencia de pago
Frecuencia
Promedio de mora
A veces
11.127119
Casi nunca
9.923077
Casi siempre
12.981707
Nunca paga a tiempo
4.739130
Siempre puntual
9.048951
cor(df$dias_mora_ultimo, df$ratio_deuda_ingreso)
[1] -0.03598374
cor(df$dias_mora_ultimo, df$ingreso_mensual)
[1] 0.000199361
##Interpretacion: Los resultados muestran que los clientes con mayor nivel de riesgo y menor puntualidad en sus pagos son quienes presentan más días de mora. Además, se observa que cuando el ratio deuda/ingreso aumenta, también tiende a aumentar la morosidad. Esto significa que los clientes que destinan una mayor parte de sus ingresos al pago de deudas tienen más dificultades para cumplir con sus cuotas. En cambio, el ingreso mensual por sí solo no parece explicar completamente el comportamiento de pago de los clientes.
##2. ¿Los no bancarizados presentan peor comportamiento?
tabla_bancarizacion <-aggregate(dias_mora_ultimo ~ no_bancarizado_previo,data = df, mean)kable(tabla_bancarizacion,caption ="Promedio de mora según condición de bancarización",col.names =c("Bancarizado", "Promedio de mora")) %>%kable_styling(full_width =FALSE,bootstrap_options =c("striped","hover"))
Cross-Tabulation, Total Proportions
no_bancarizado_previo * frecuencia_pago
Data Frame: df
----------------------- ----------------- ------------- ------------ -------------- --------------------- ----------------- --------------
frecuencia_pago A veces Casi nunca Casi siempre Nunca paga a tiempo Siempre puntual Total
no_bancarizado_previo
No 74 (14.8%) 35 ( 7.0%) 103 (20.6%) 18 (3.6%) 90 (18.0%) 320 ( 64.0%)
Sí 44 ( 8.8%) 17 ( 3.4%) 61 (12.2%) 5 (1.0%) 53 (10.6%) 180 ( 36.0%)
Total 118 (23.6%) 52 (10.4%) 164 (32.8%) 23 (4.6%) 143 (28.6%) 500 (100.0%)
----------------------- ----------------- ------------- ------------ -------------- --------------------- ----------------- --------------
##Interpratacion: El análisis muestra que los clientes que antes no estaban bancarizados presentan un comportamiento de pago más riesgoso que los clientes bancarizados. En promedio, registran más días de mora y una menor frecuencia de pagos puntuales. Además, una parte importante de estos clientes se encuentra en categorías de riesgo alto o muy alto. Esto podría deberse a que muchos de ellos no tienen experiencia previa manejando créditos formales, lo que hace más difícil evaluar su comportamiento financiero.
##3. Ratio deuda/ingreso y sobreendeudamiento
summary(df$ratio_deuda_ingreso)
Min. 1st Qu. Median Mean 3rd Qu. Max.
6.15 13.70 22.96 23.56 32.50 50.82
hist(df$ratio_deuda_ingreso,main="Distribución Ratio Deuda/Ingreso",xlab="Ratio")
sum(df$ratio_deuda_ingreso >35)
[1] 93
mean(df$ratio_deuda_ingreso >35)*100
[1] 18.6
df$sobreendeudado <-ifelse(df$ratio_deuda_ingreso >35,"Sí","No")df$sobreendeudado <-ifelse(df$ratio_deuda_ingreso >35,"Sí","No")tabla_sobre <-aggregate(ratio_deuda_ingreso ~ no_bancarizado_previo,data = df, mean)kable(tabla_sobre,caption ="Promedio de mora según sobreendeudamiento",col.names =c("Sobreendeudado", "bancarizacion")) %>%kable_styling(full_width =FALSE,bootstrap_options =c("striped","hover","condensed"))
Promedio de mora según sobreendeudamiento
Sobreendeudado
bancarizacion
No
23.32534
Sí
23.97317
tabla_sobre <-aggregate(ratio_deuda_ingreso ~ tipo_credito_actual,data = df, mean)kable(tabla_sobre,caption ="Promedio de mora según sobreendeudamiento",col.names =c("Sobreendeudado", "Tipo credito")) %>%kable_styling(full_width =FALSE,bootstrap_options =c("striped","hover","condensed"))
Promedio de mora según sobreendeudamiento
Sobreendeudado
Tipo credito
Ahorro programado
24.11171
Crédito estudiantil
24.45367
Crédito personal express
24.10562
Crédito vehicular
22.60663
Microcrédito
22.70714
##Interpretacion: El análisis del ratio deuda/ingreso muestra que varios clientes superan el 35% de endeudamiento mencionado en el caso como un nivel de riesgo importante. Esto significa que una parte de los clientes destina una proporción elevada de sus ingresos al pago de créditos, lo que podría generar dificultades para cumplir con sus obligaciones financieras. También se observa que algunos segmentos, como ciertos tipos de crédito, presentan niveles de endeudamiento más altos que otros, aumentando así el riesgo de morosidad para FinCrecer.