Riesgo credicticio

Author

diego

#informacion:

df<- read.csv("C:/Users/Diego/Downloads/GrupoC_Sec2.csv")
head(df)
                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
dim(df)
[1] 500  18
names(df)
 [1] "distrito"              "genero"                "canal_preferido"      
 [4] "tipo_credito_actual"   "no_bancarizado_previo" "nivel_educativo"      
 [7] "calificacion_riesgo"   "satisfaccion_servicio" "frecuencia_pago"      
[10] "uso_apps_financieras"  "edad"                  "num_creditos_previos" 
[13] "dias_mora_ultimo"      "num_productos"         "ingreso_mensual"      
[16] "monto_credito"         "tasa_interes"          "ratio_deuda_ingreso"  

##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
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"))
Promedio de mora según condición de bancarización
Bancarizado Promedio de mora
No 10.28125
11.50556
ctable(df$no_bancarizado_previo,
       df$calificacion_riesgo,
       prop = "t")
Cross-Tabulation, Total Proportions  
no_bancarizado_previo * calificacion_riesgo  
Data Frame: df  

----------------------- --------------------- ------------- ------------- ------------- ------------ ------------ --------------
                          calificacion_riesgo          Alto          Bajo         Medio     Muy alto     Muy bajo          Total
  no_bancarizado_previo                                                                                                         
                     No                          60 (12.0%)    75 (15.0%)   117 (23.4%)   28 ( 5.6%)   40 ( 8.0%)   320 ( 64.0%)
                     Sí                          53 (10.6%)    28 ( 5.6%)    47 ( 9.4%)   38 ( 7.6%)   14 ( 2.8%)   180 ( 36.0%)
                  Total                         113 (22.6%)   103 (20.6%)   164 (32.8%)   66 (13.2%)   54 (10.8%)   500 (100.0%)
----------------------- --------------------- ------------- ------------- ------------- ------------ ------------ --------------
ctable(df$no_bancarizado_previo,
       df$frecuencia_pago,
       prop = "t")
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
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.