La base de datos: base_prueba_tecnica_modelamiento contiene 24003 filas y los siguientes campos:
El objetivo es plantear un modelo que ayude a explicar la variable dependiente Y en función de las diferentes variables explicativas que están en la base. La variable dependiente es una variable binaria.
A continuación se muestran parámetros estadísticos de las variables numéricas y tablas de fercuencia para las variables categóricas:
summary(base)
## CODIGO_ID MarcaMora_Tarjeta ORIGEN_APROBACION FORMA_PAGO
## Min. : 1 0:23128 Proactivo:18655 No:17921
## 1st Qu.: 6002 1: 875 Demanda : 5348 Si: 6082
## Median :12002
## Mean :12002
## 3rd Qu.:18003
## Max. :24003
##
## SALDO_TOTAL_TARJETA CUPO_PROMEDIO_TARJETA SALDO_UTILIZ_PROM_CLIENTE
## Min. : 0.0 Min. : 0 Min. : 0.0
## 1st Qu.: 410.9 1st Qu.: 900 1st Qu.: 311.4
## Median : 958.5 Median : 2167 Median : 808.5
## Mean : 1482.6 Mean : 2814 Mean : 1275.5
## 3rd Qu.: 1992.8 3rd Qu.: 3000 3rd Qu.: 1769.2
## Max. :45392.8 Max. :50000 Max. :32850.1
## NA's :1038
## CANTIDAD_TOTAL_AVANCES ANTIGUEDAD_TARJETA_ANIOS
## Min. : 0.000 Min. : 0.000
## 1st Qu.: 0.000 1st Qu.: 2.000
## Median : 0.000 Median : 3.000
## Mean : 1.024 Mean : 4.247
## 3rd Qu.: 0.000 3rd Qu.: 7.000
## Max. :79.000 Max. :12.000
## NA's :1038
## PROMEDIO_MENSUAL_CONSUMOS_LOCALES MAXIMO_NUM_DIAS_VENCIDO
## Min. : 0.0 Min. : 0.00
## 1st Qu.: 0.0 1st Qu.: 0.00
## Median : 40.0 Median : 4.00
## Mean : 196.6 Mean :10.74
## 3rd Qu.: 185.2 3rd Qu.:18.00
## Max. :35956.0 Max. :87.00
##
## NUMERO_OPERACIONES_TITULAR PROMEDIO_DIAS_SOBREGIRO_CC
## Min. : 0.000 Min. : 0.0000
## 1st Qu.: 2.000 1st Qu.: 0.0000
## Median : 3.000 Median : 0.0000
## Mean : 3.009 Mean : 0.6212
## 3rd Qu.: 4.000 3rd Qu.: 0.0000
## Max. :13.000 Max. :221.0000
## NA's :1038
## PROMEDIO_MENSUAL_SALDO_CUENTA_PASIVO MARCA_CUENTA_CORRIENTE
## Min. :-58423.4 No :10983
## 1st Qu.: 0.0 Si :11982
## Median : 86.0 NA's: 1038
## Mean : 2794.1
## 3rd Qu.: 868.7
## Max. :873976.0
##
## MARCA_CUENTA_AHORROS RIESGO_CLIENTE_TOTAL_GFP VALOR_DEPOSITO_A_PLAZO
## No :10983 Min. : 0.0 Min. : 0
## Si :11982 1st Qu.: 471.4 1st Qu.: 0
## NA's: 1038 Median : 1158.3 Median : 0
## Mean : 4177.8 Mean : 1796
## 3rd Qu.: 2515.4 3rd Qu.: 0
## Max. :1715176.4 Max. :2281686
##
## SEGMENTO_RIESGO SUCURSAL EDAD GENERO
## A :20824 QUITO :12482 Min. :23.00 FEM : 9625
## B : 1262 GUAYAQUIL: 6789 1st Qu.:29.00 MAS :13340
## C : 256 AMBATO : 898 Median :36.00 NA's: 1038
## D : 228 CUENCA : 794 Mean :36.41
## E : 395 IBARRA : 493 3rd Qu.:43.00
## NA's: 1038 (Other) : 1509 Max. :50.00
## NA's : 1038 NA's :1038
## INSTRUCCION NUM_TC_SIST_FIM SUCURSAL_ESMERALDASoMANTA
## N/E: 1038 Min. :0.0 No:23361
## PRI: 4347 1st Qu.:1.0 Si: 642
## SEC:12863 Median :3.0
## TEC: 455 Mean :2.5
## UNI: 5300 3rd Qu.:4.0
## Max. :5.0
##
Hay presencia de datos faltantes en algunas variables. El siguiente diagrama muestra el porcentaje de datos perdidos por variable y su distribución en los datos:
La gráfica anterior muestra que las siguientes variables presentan un 2% de observaciones faltantes:
Las demás variables tienen sus observaciones completas. Para el ajuste del modelo vamos a considerar una submuestra de la base de datos, la cual excluye las filas que presentan datos faltanes (1038 filas).
Por tanto, la base de datos a considerarse tiene 22965 observaciones.
Un Modelo Logit estima la probabilidad de un suceso dicótomico y permite comparar un grupo de variables independientes continuas y categóricas con una variable dependiente categórica (dicotómica) como es el caso del presente estudio.
Sea la variable respuesta Y: \[ Y = \left \{ \begin{matrix} 1 & \mbox{si tiene mora en la tarjeta} \\ 0 & \mbox{si no tiene mora en la tarjeta}\end{matrix}\right. \] Si la variable Y es el resultado de un experimento de bernoulli, esto es, las observaciones son independientes, entonces la variable aleatoria tiene distribución de Bernoulli con: \[ P(Y=1|X=x)=\pi\hspace{1cm} \mbox{ y }\hspace{1cm}P(Y=0|X=x)=1-\pi \] y pueden ser calculada a partir de una distribución de probabilidad logística: \[ \begin{equation} P(Y=1|X=x)=\pi=\frac{e^{\beta_0+\beta_1 X}}{1+e^{\beta_0+\beta_1 X}} \end{equation} \] donde \(\beta_0+\beta_1 X\) es un predictor lineal y la representación como un modelo lineal generalizado, será a travéz de los Odds Ratio: \[ \begin{equation} logit(\pi)=\left(\frac{P(Y=1|X=x)}{1-P(Y=1|X=x)}\right)=\ln\left( \frac{\pi}{1-\pi}\right) =\beta_0+\beta_1 X \end{equation} \]
Con la modelización Logit:
El resultado del modelo es la estimación de la probabilidad de que un nuevo individuo pertenezca a un grupo o a otro.
Crea un perfil de variables predictivas; tal que todas en una sola ecuación conjunta explican la probabilidad de alcanzar una respuesta u otra.
No se necesita que se cumpla el supuesto de normalidad ya que la variable dependiente es dicotómica .
En este modelo los coeficientes pueden ser interpretados (al ser exponenciados y luego restados en uno).
La desventaja es que el tamaño de muestra debe ser grande, ya que tiene como método de estimación la máxima verosimilitud..
El Modelo Probit construye una variable latente continua a diferencia del Modelo Logit, siendo ésta su ventaja más allá el calculo de probabilidades. Además sus coeficientes no tienen una interpretación directa.
En modelos de aprendizaje supervisado y no supervisado generalmente dividimos nuestros datos en dos subconjuntos: datos de entrenamiento y datos de prueba.
El objetivo de seccionar la base de datos es no generar un modelo sobre ajustado.
El porcentaje planteado es del 85% (19291 observaciones) para la base de datos de entrenamiento y 15% (3674 observaciones) para la base de datos de prueba.
Mediante la librería brglm de R, ajustamos un modelo logit para datos sparce. Se selecciona el mejor modelo partiendo de selección hacia atrás. El mejor modelo según el criterio de Akaike es el siguiente:
##
## Call:
## brglm(formula = MarcaMora_Tarjeta ~ 1 + FORMA_PAGO + SALDO_TOTAL_TARJETA +
## CUPO_PROMEDIO_TARJETA + SALDO_UTILIZ_PROM_CLIENTE + ANTIGUEDAD_TARJETA_ANIOS +
## MAXIMO_NUM_DIAS_VENCIDO + PROMEDIO_MENSUAL_SALDO_CUENTA_PASIVO +
## SEGMENTO_RIESGO + SUCURSAL_ESMERALDASoMANTA, family = binomial(link = "logit"),
## data = train)
##
##
## Coefficients:
## Estimate Std. Error z value
## (Intercept) -2.845e+00 8.451e-02 -33.661
## FORMA_PAGOSi -3.932e-01 1.046e-01 -3.758
## SALDO_TOTAL_TARJETA 1.221e-04 3.255e-05 3.753
## CUPO_PROMEDIO_TARJETA -2.830e-04 4.476e-05 -6.321
## SALDO_UTILIZ_PROM_CLIENTE 2.515e-04 5.614e-05 4.479
## ANTIGUEDAD_TARJETA_ANIOS -2.265e-01 1.825e-02 -12.413
## MAXIMO_NUM_DIAS_VENCIDO 1.644e-02 2.406e-03 6.834
## PROMEDIO_MENSUAL_SALDO_CUENTA_PASIVO -9.013e-05 2.335e-05 -3.860
## SEGMENTO_RIESGOB 1.598e+00 9.991e-02 15.997
## SEGMENTO_RIESGOC 1.698e+00 1.967e-01 8.633
## SEGMENTO_RIESGOD 1.903e+00 1.987e-01 9.577
## SEGMENTO_RIESGOE 1.714e+00 1.739e-01 9.854
## SUCURSAL_ESMERALDASoMANTASi 6.859e-01 1.733e-01 3.958
## Pr(>|z|)
## (Intercept) < 2e-16 ***
## FORMA_PAGOSi 0.000172 ***
## SALDO_TOTAL_TARJETA 0.000175 ***
## CUPO_PROMEDIO_TARJETA 2.59e-10 ***
## SALDO_UTILIZ_PROM_CLIENTE 7.49e-06 ***
## ANTIGUEDAD_TARJETA_ANIOS < 2e-16 ***
## MAXIMO_NUM_DIAS_VENCIDO 8.26e-12 ***
## PROMEDIO_MENSUAL_SALDO_CUENTA_PASIVO 0.000113 ***
## SEGMENTO_RIESGOB < 2e-16 ***
## SEGMENTO_RIESGOC < 2e-16 ***
## SEGMENTO_RIESGOD < 2e-16 ***
## SEGMENTO_RIESGOE < 2e-16 ***
## SUCURSAL_ESMERALDASoMANTASi 7.56e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 6210.8 on 19290 degrees of freedom
## Residual deviance: 5311.4 on 19278 degrees of freedom
## Penalized deviance: 5178.769
## AIC: 5337.4
Ecuación del modelo encontrado:
MarcaMora_Tarjeta = 0.06 + 0.67 FORMA_PAGOSi + 1 SALDO_TOTAL_TARJETA + 1 CUPO_PROMEDIO_TARJETA + 1 SALDO_UTILIZ_PROM_CLIENTE + 0.8 ANTIGUEDAD_TARJETA_ANIOS + 1.02 MAXIMO_NUM_DIAS_VENCIDO + 1 PROMEDIO_MENSUAL_SALDO_CUENTA_PASIVO + 4.94 SEGMENTO_RIESGOB + 5.46 SEGMENTO_RIESGOC + 6.71 SEGMENTO_RIESGOD + 5.55 SEGMENTO_RIESGOE + 1.99 SUCURSAL_ESMERALDASoMANTASi
Probemos nuestro modelo prediciendo en nuestro conjunto de datos de prueba.
## [1] "Presición: 94.61 %"
## No Si
## REAL 3548 126
## PREDICHO 3546 128
usando Root Mean Square Error, una medida estandarizada de cuán lejos estábamos con nuestros valores predichos.
El Root Mean Square Error (RMSE) para nuestro modelo es 0.9995, mientras más cercano a uno menor es la variabilidad de las predicciones.