En el banco Toledo S.A de C.V siempre estamos comprometidos con el trabajo en equipo, la presentación de resultados y sobre todo el análisis profundo de nuestros proyectos. Siendo una empresa socialmente responsable, con ideales y valores éticos que nos permiten un buen desarrollo en el ámbito empresarial.
Como parte del análisis mensual en el área de ciencia de datos, en colaboración con el área de riesgo, presentamos a continuación el Reporte de Regresión Logística donde mes con mes actualizamos el desglose de características determinantes en el riesgo de crédito, el análisis del valor/tamaño de la cartera en riesgo, la estrategia actual de negocio y el análisis de escenarios para clientes en riesgo y no riesgo.
Así pudiendo conocer el perfil de cliente con mayor y menor riesgo para con ello generar una estrategia de selección de clientes, es decir, ¿Cómo institución podemos hacer la adquisición del cliente? o bien ¿Deberíamos rechazar a clientes con ciertas características por tener alto riesgo crediticio?.
Dando click aquí podremos encontrar la base de datos con la que trabajamos este mes.
A continuación tenemos una breve descripción de las variables independientes a analizar:
Variable | Descripción |
---|---|
|
Es la variable objetivo que queremos analizar, es una variable binaria donde 0 implica que pagan su crédito y 1 que no pagan el crédito. |
|
Es la duración del crédito. |
|
Es una variable categórica con 4 opciones que explica el historial crediticio del cliente. a) All paid, es decir que ha pagado todos sus créditos. b) Critical/ other existing credit, es decir que la persona tiene un estado crítico o hay otros créditos existentes que no ha pagado. c) Delayed previosly, la persona ha sacado créditos antes y ha tenido retraso al momento de pagarlos. d) Existing paid, es decir que la persona tiene créditos existentes pero ya están pagados. e) No credits/ all paid, el cliente no tiene créditos o todos ya están pagados. |
|
Es una variable categórica que indica el propósito del préstamo. a) Business. b) Domestic appliance. c) Education. d) Furniture/equipment. e) New car. f) Other. g) Radio/tv. h) Repairs. i) Retraining. j) Used car. |
|
Es el monto del crédito. |
|
Es el compromiso de pago a 1, 2, 3 o 4 plazos. |
|
Es el estado civil de la persona, es una variable categórica con las siguientes opciones. a) female div/dep/mar. b) male div/sep. c) male mar/wid. d) male single. |
|
Es una variable que nos da 1, 2, 3 o 4 años que tiene de residencia. |
|
Es que magnitud de propiedades tiene el cliente, es una variable categórica con las siguientes opciones. a) car. b) life insurance. c) no known property. d) real estate. |
|
La edad del cliente. |
|
Son otros planes de banco, de igual forma es una variable categórica con las características. a) bank. b) none. c) stores. |
|
Es el tipo de casa que tiene el cliente, es una variable categórica con 3 opciones; own, rent o for free. |
|
Son los créditos existentes que tiene el cliente. |
|
Es el tipo de trabajo que tiene el cliente, dividido en 4 categorías. a) high qualif/self emp/mgmt. b) skilled. c) unemp/unskilled non res. d) unskilled resident. |
|
Son los dependientes que tiene el cliente. |
|
Es una variable categórica y binaria, “yes” si tiene teléfono propio o “no” si no tiene teléfono propio. |
|
Es una variable categórica y binaria, “yes” si es un trabajador extranjero o “no” si no es extranjero. |
Debido a que nuestra base de datos contiene variables categóricas es necesarios transformar estas a variables dummies. De tal forma que nuestra base queda así.
Una vez ya se tiene nuestra base limpia con todas las variables dummies, procedemos a ajustar un modelo de Regresión Logística. Donde vamos a poder que variables son significantes para nuestro modelo.
mod1 <- glm(datos_dummies$default ~ ., data = datos_dummies, family = binomial)
p_val <- summary(mod1)$coefficients[,c(1,4)]
p_val
## Estimate Pr(>|z|)
## (Intercept) -2.5099609707 6.526361e-03
## duration 0.0263696774 2.284743e-03
## credit_amount 0.0001076149 8.050427e-03
## installment_commitment 0.3040440935 2.095504e-04
## residence_since -0.0155034726 8.419276e-01
## age -0.0183973839 2.602916e-02
## existing_credits 0.2596009282 1.382607e-01
## num_dependents 0.1958612168 4.075639e-01
## `credit_history_all paid` -0.1111653399 8.251804e-01
## `credit_history_critical/other existing credit` -1.8816286751 4.359184e-06
## `credit_history_delayed previously` -1.2597813980 4.000968e-03
## `credit_history_existing paid` -0.9211802681 2.028322e-02
## purpose_business 0.9440189641 1.898854e-02
## `purpose_domestic appliance` 1.4486014641 5.942691e-02
## purpose_education 1.7534200354 6.993485e-05
## `purpose_furniture/equipment` 1.2043994951 7.707127e-04
## `purpose_new car` 1.7801382358 2.450231e-07
## purpose_other 0.8676592542 2.529265e-01
## `purpose_radio/tv` 0.7862621469 2.602975e-02
## purpose_repairs 1.5013165650 1.058967e-02
## purpose_retraining -0.4167200603 7.193276e-01
## `personal_status_female div/dep/mar` 0.5615973590 3.414202e-03
## `personal_status_male div/sep` 1.0436363890 2.969110e-03
## `personal_status_male mar/wid` 0.5468315852 6.443528e-02
## property_magnitude_car 0.2467197050 2.560543e-01
## `property_magnitude_life insurance` 0.3868791921 9.403554e-02
## `property_magnitude_no known property` 0.8200168479 2.983310e-02
## other_payment_plans_bank -0.1170249992 7.551325e-01
## other_payment_plans_none -0.5866061368 8.603570e-02
## `housing_for free` -0.4723329158 2.661322e-01
## housing_own -0.4997142405 2.115171e-02
## `job_high qualif/self emp/mgmt` 0.0639294829 8.375436e-01
## job_skilled -0.1106036802 6.052959e-01
## `job_unemp/unskilled non res` -0.1297623702 8.231193e-01
## own_telephone_none 0.4087743941 2.676785e-02
## foreign_worker_no -1.3758081916 2.565248e-02
Al ajustar nuestro modelo 1 podemos darnos cuenta que no todas las variables son significativas, es decir que podemos sacarlas de nuestro modelo ya que no son relevantes para nuestro análisis. Para esto utilizamos el atgorítmo “stepwise” donde reducimos nuestras variables bajo el criterio de Akaike y quitamos variables no significativas.
p_val <- summary(modelo.5)$coefficients[,c(1,4)]
df_p <- as.data.frame(p_val)
df_p
## Estimate
## (Intercept) -1.0447860015
## datos_dummies$duration 0.0272653501
## datos_dummies$credit_amount 0.0000975609
## datos_dummies$installment_commitment 0.3011381128
## datos_dummies$age -0.0193321084
## datos_dummies$`credit_history_critical/other existing credit` -1.7496112612
## datos_dummies$`credit_history_delayed previously` -1.0737538957
## datos_dummies$`credit_history_existing paid` -0.9408959955
## datos_dummies$purpose_education 1.1526930200
## datos_dummies$`purpose_furniture/equipment` 0.5136620619
## datos_dummies$`purpose_new car` 1.1137178408
## datos_dummies$purpose_repairs 0.9180406004
## datos_dummies$`personal_status_female div/dep/mar` 0.4192246101
## datos_dummies$`personal_status_male div/sep` 0.9402899306
## datos_dummies$other_payment_plans_none -0.5323428002
## datos_dummies$housing_own -0.4484457628
## datos_dummies$own_telephone_none 0.3411811215
## datos_dummies$foreign_worker_no -1.3185247350
## Pr(>|z|)
## (Intercept) 4.793526e-02
## datos_dummies$duration 1.034364e-03
## datos_dummies$credit_amount 8.578787e-03
## datos_dummies$installment_commitment 1.334742e-04
## datos_dummies$age 9.857148e-03
## datos_dummies$`credit_history_critical/other existing credit` 2.365875e-09
## datos_dummies$`credit_history_delayed previously` 1.573621e-03
## datos_dummies$`credit_history_existing paid` 3.116788e-04
## datos_dummies$purpose_education 6.871081e-04
## datos_dummies$`purpose_furniture/equipment` 1.508999e-02
## datos_dummies$`purpose_new car` 1.057007e-08
## datos_dummies$purpose_repairs 6.226666e-02
## datos_dummies$`personal_status_female div/dep/mar` 1.457910e-02
## datos_dummies$`personal_status_male div/sep` 4.949793e-03
## datos_dummies$other_payment_plans_none 5.947009e-03
## datos_dummies$housing_own 7.352021e-03
## datos_dummies$own_telephone_none 4.308380e-02
## datos_dummies$foreign_worker_no 2.564588e-02
Entonces ya con este modelo ajustado podemos ver que características debemos tomar en cuenta para crear nuestro modelo. El cual queda así:
\[y = -1.0447+0.0272\ Duration+0.0001 \ CreditAmount + 0.3011 \ InstallmentCommitment + \\ -0.0193 \ Age -1.7496 \ OtherCreditExisting -1.0737 \ DelayedPreviously \\-0.9408 \ ExistingPaid + 1.1526 \ PurposeEducation +0.5136 \ PurposeFurnitureEquipment \\ + 1.1137 \ PurposeNewCar + 0.9180 \ PurposeRepairs + 0.4192 \ StatusFdiv/dep/mar \\ +0.9402 \ StatusMdiv/sep -0.5323 \ OtherPaymentPlansNone -0.4484 \ HousingOwn \\ + 0.3411 \ OwnTelephoneNone -1.3185 \ ForeignWorkerNO \]
Entonces dado este modelo y recordando la siguiente ecuación del modelo de Regresión Logística:
\[ P[Y] = \frac{1}{1+e^{-(\beta_0 + \beta_1X_1+...+\beta_kX_k)}}\]
Podemos ver si la parte \(e^{-(\beta_0 + \beta_1X_1+...+\beta_kX_k)}\) crece entonces la probabilidad de \(P[Y]\) tiende a 0. Y esto pasa si y solo si \(\beta_0 + \beta_1X_1+...+\beta_kX_k\) crece. Entonces ya podemos ver que variables son importantes y dado su signo podemos ver el riesgo de la persona.
Recordemos que 0 es que paguen el crédito y 1 es que no lo paguen.
Dado esto podemos decir que una persona con riesgo bajo es aquella que pidio un crédito de un mediano monto y a un mediano plazo. Además es recomendable que sea joven y tenga compromiso de pago. Que haya notificado que el propósito del crédito era para educación, reparaciones, un nuevo carro o compra de mobiliario reduce el riesgo de que no pague el crédito. Y por último que sea hombre o mujer divorciado, separado o casado puede importar un poco pero no define correctamente el riesgo.
Y nuestro perfil de cliente de alto riesgo es una persona ya un poco grande, que tenga otros créditos existentes o retrasos anteriores. Que tengan casa propia, que sean trabajadores extranjeros o que hayan declarado que usarían el crédito para otros topics que no se señalaron arriba, implicaría un aumento de riesgo de no pago.