Para comenzar a trabajar con este ejemplo
En la primera parte de esta serie de entradas, se expuso la información de contexto sobre el problema del Lending Club. En la siguiente parte, se hará el ejercicio de construcción de modelos de regresión lineal.
La data con la que se trabajará para este ejemplo está disponible para su descarga desde este enlace. Una vez descargado ese archivo, colóquelo en su directorio de trabajo de R, que usualmente será "Mis Documentos" en el caso de Windows. Para trabajar con este ejemplo, también debe tener la librería "estUNA" en su directorio de trabajo (consulte esta en si tiene dudas sobre cómo descargar estUNA y colocarla en su directorio de trabajo).
Sobre la data del problema del "Lending Club"
El archivo identificado arriba "lending_club.Rda" contiene un data frame identificado como loandata. A continuación se detallan las variables contenidas en loandata como columnas.
Identificador de variable | Descripción |
Ar | (Amount Requested) Monto solicitador por el prestatario para financiamiento. |
Af | (Amount Funded) Monto financiado. |
Ir | (Interest Rate) Tasa de Interés del financiamiento. Esta es la variable dependiente. |
Ld | (Loan Duration) Variable categórica correspondiente a la duración del préstamo (36 o 60 meses). |
Lp | (Loan Purpose) Variable categórica correspondiente al propósito del préstamo. |
DtIR | (Debt-to-income Ratio) Coeficiente de deuda sobre ingresos. |
St | (State) Código de dos letras correspondiente al estado de residencia del prestatario. |
Ho | (Home ownership) Tipo de propiedad sobre la casa: "NONE" es ninguna casa, "MORTGAGE" indica hipoteca sobre la casa, "OWN" indica que la casa es propia y "RENT" indica que la casa es alquilada. |
I | (Income) Ingreso mensual. |
Fi | (FICO) Puntuación FICO del solicitante. |
Ocl | (Open Credit Lines) Cantidad de líneas de crédito abiertas del solicitante. |
Rcb | (Rotating credit balance) Balance rotativo de credito. |
Inq | (Inquiries) Número de veces que algún comercio ha solicitado un reporte crediticio certificado. |
Ed | (Employment duration) Tiempo en el actual empleo. |
En todo informe de análisis de datos, es importante indicar el tamaño de la muestra empleada en el estudio. El data frame loandata consta de 2492 observaciones (o renglones) y 14 variables (o columnas).
Análisis exploratorio de los datos
Antes de emprender el planteamiento de los modelos de regresión para inferir cuales variables, en definitiva, inciden sobre la fijación de la tasa de interés de un préstamo, es conveniente realizar un análisis exploratorio de los datos. En un análisis exploratorio se utilizan técnicas de la estadística descriptiva para "descubrir" el comportamiento de las variables, su variabilidad inherente y la variabilidad conjunta entre las mismas.El análisis exploratorio nos debe conducir a plantear uno o varios modelos de regresión viables y a entender cómo o donde estos pueden fallar.
A continuación damos el script en R que realiza los distintos pasos del análisis exploratorio. Si va a experimentar con este script en su computadora, recuerde que debe tener el archivo de la librería estUNA y el archivo de data lending_club.Rda en su directorio de trabajo. Seguidamente iremos interpretando los resultados.
A continuación damos el script en R que realiza los distintos pasos del análisis exploratorio. Si va a experimentar con este script en su computadora, recuerde que debe tener el archivo de la librería estUNA y el archivo de data lending_club.Rda en su directorio de trabajo. Seguidamente iremos interpretando los resultados.
load("estUNA")Como primer paso del análisis exploratorio, se genera un resumen con las principales estadísticas del data frame. Esto lo hace la instrucción summary(loandata), tras lo cual se imprime lo siguiente:
load("lending_club.Rda")
attach(loandata)
options(width=60)
png("exploratorio%02d.png")
#Imprime un resúmen del data frame
summary(loandata)
#Matriz de correlación entre las variables cuantitativas
cor(loandata[,c("Ar","Af","Fi","I","Ocl","Rcb","Inq","Ir")])
#La primera gráfica es un histograma de Ir
graficar(Ir)
#A continuación unas graficas de dispersión
#Grafica la tasa de intereses (eje Y) versus:
graficar.dispersion(Ar,Ir,cex=0.2,pch=19)
#Monto solicitado
graficar.dispersion(Af,Ir,cex=0.2,pch=19)
#Monto financiado
graficar.dispersion(Fi,Ir,cex=0.2,pch=19)
#Puntuación FICO
graficar.dispersion(I,Ir,cex=0.2,pch=19)
#Ingreso mensual
graficar.dispersion(Ocl,Ir,cex=0.2,pch=19)
#Lin. credito abiertas
graficar.dispersion(DtIR,Ir,cex=0.2,pch=19)
#Deuda/Ingresos
graficar.dispersion(Rcb,Ir,cex=0.2,pch=19)
#Balance crédito rotativo
graficar.dispersion(Inq,Ir,cex=0.2,pch=19)
#Cantidad de indagaciones
#Diagramas de caja comparativos
#Grafica la relación entre la tasa de interés
#y las siguientes variables categóricas:
caja(Ir,Ho) #Propiedad de la vivienda
caja(Ir,Ed) #Tiempo en el empleo actual
caja(Ir,Ld) #Plazo de financiamiento (36 o 60 meses)
#Para las siguientes dos variables, la visualización
#más adecuada es una tabla.
#Estudia la variabilidad de las tasas de interés según:
#1) El propósito del prestamo (Lp)
lp_mat <- t(sapply(levels(Lp),
function(s)
c(sum(Lp==s), median(Ir[Lp==s]),
wilcox.test(Ir~Lp==s)\(\$\)p.value)
)
)
colnames(lp_mat) <- c("frec","mediana","p_valor")
lp_mat <- as.data.frame(lp_mat)
lp_mat <- lp_mat[order(lp_mat\(\$\)frec,decreasing=TRUE),]
lp_mat
#2) El estado de residencia del prestatario:
st_mat <- t(sapply(levels(St),
function(s)
c(sum(St==s), median(Ir[St==s]),
wilcox.test(Ir~St==s)\(\$\)p.value)
)
)
colnames(st_mat) <- c("frec","mediana","p_valor")
st_mat <- as.data.frame(st_mat)
st_mat <- st_mat[order(st_mat\(\$\)frec,decreasing=TRUE),]
st_mat
Ar Af Ir Ld
Min. : 1000 Min. : 200 Min. :0.0542 36:1944
1st Qu.: 6000 1st Qu.: 6000 1st Qu.:0.1016 60: 548
Median :10000 Median :10000 Median :0.1311
Mean :12431 Mean :12038 Mean :0.1308
3rd Qu.:17000 3rd Qu.:16000 3rd Qu.:0.1580
Max. :35000 Max. :35000 Max. :0.2489
Lp DtIR St
debt_consolidation:1306 Min. :0.0000 CA : 432
credit_card : 442 1st Qu.:0.0975 NY : 253
other : 197 Median :0.1533 TX : 174
home_improvement : 152 Mean :0.1540 FL : 169
major_purchase : 101 3rd Qu.:0.2068 IL : 101
small_business : 87 Max. :0.3491 GA : 97
(Other) : 207 (Other):1266
Ho I Fi
MORTGAGE:1146 Min. : 588.5 Min. :642.5
NONE : 0 1st Qu.: 3500.0 1st Qu.:682.5
OTHER : 5 Median : 5000.0 Median :702.5
OWN : 200 Mean : 5687.6 Mean :708.4
RENT :1141 3rd Qu.: 6800.0 3rd Qu.:727.5
Max. :102750.0 Max. :832.5
Ocl Rcb Inq
Min. : 2.00 Min. : 0 Min. :0.0000
1st Qu.: 7.00 1st Qu.: 5612 1st Qu.:0.0000
Median : 9.00 Median : 10978 Median :0.0000
Mean :10.07 Mean : 15263 Mean :0.9013
3rd Qu.:13.00 3rd Qu.: 18900 3rd Qu.:1.0000
Max. :38.00 Max. :270800 Max. :9.0000
Ed
10+ :653
< 1 :247
2 :244
3 :234
5 :201
4 :192
(Other):721
Para las variables cuantitativas, la instrucción summary(...) devuelve una tabla con las principales medidas de posición (mínimo, 1er cuartíl, mediana y media, 3er cuartíl, máximo). Para las variables categóricas (o variables tipo "factor", como se les conoce en R), summary(...) devuelve una tabla de frecuencias para algunos niveles de la variable (los más frecuentes). Estos resultados permiten apreciar rápidamente cuál rango de valores asume cada variable. Por ejemplo, podemos observar que la distribución de la variable Ar, en términos de los estadísticos de posición más importantes, es bastante similar a la de la variable Af. Esto tiene bastante sentido, pues esperaríamos que el monto solicitado y el monto financiado sean muy parecidos, una vez aprobado el préstamo. Nótese el uso de la instrucción attach(...) al principio del script para referirse fácilmente a las variables de loandata en lo sucesivo.
Otra tabla bastante útil en un análisis exploratorio es la tabla de las correlaciones entre las variables. Esto por cierto sería muy útil para estudiar la colinealidad o multicolinealidad de las variables, según se exige para el trabajo de este semestre. La instrucción cor(...) en R genera una matriz cuadrada de correlaciones entre todas las variables. Como cada variable está perfectamente correlacionada consigo misma, los elementos de la diagonal son todos "1". De hecho, una correlación de "1" o "-1" indica una colinealidad perfecta entre dos variables. Puede consultar más sobre esto en el artículo de wikipedia sobre correlación lineal. La matriz de correlación sólo tiene sentido para variables cuantitativas del data frame, lo cual en este caso se determina por medio de la instrucción cor(loandata[,c("Ar","Af","Fi","I","Ocl","Rcb","Inq","Ir")]) :
Ar Af Fi I
Ar 1.00000000 0.97022602 0.083040383 0.39109060
Af 0.97022602 1.00000000 0.073791988 0.37468574
Fi 0.08304038 0.07379199 1.000000000 0.12355539
I 0.39109060 0.37468574 0.123555388 1.00000000
Ocl 0.19680145 0.18779714 -0.090039520 0.17180076
Rcb 0.29277055 0.26116166 0.003217914 0.35936379
Inq -0.02721561 -0.06224654 -0.092828774 0.03398569
Ir 0.33141077 0.33627376 -0.709911785 0.01231114
DtIR 0.07985656 0.09177385 -0.217596139 -0.16376264
Ocl Rcb Inq Ir
Ar 0.19680145 0.292770550 -0.02721561 0.33141077
Af 0.18779714 0.261161657 -0.06224654 0.33627376
Fi -0.09003952 0.003217914 -0.09282877 -0.70991178
I 0.17180076 0.359363787 0.03398569 0.01231114
Ocl 1.00000000 0.290582979 0.10790657 0.09109025
Rcb 0.29058298 1.000000000 0.01285580 0.06042262
Inq 0.10790657 0.012855801 1.00000000 0.16846322
Ir 0.09109025 0.060422621 0.16846322 1.00000000
DtIR 0.37172725 0.188286897 0.01126195 0.17143913
DtIR
Ar 0.07985656
Af 0.09177385
Fi -0.21759614
I -0.16376264
Ocl 0.37172725
Rcb 0.18828690
Inq 0.01126195
Ir 0.17143913
DtIR 1.00000000
Por razones tipográficas de espacio, la matriz de correlación de arriba se dividió en tres segmentos: el primero con las primeras cuatro columnas de la matriz, el segundo en el renglón de abajo con las siguientes cuatro columnas de la matriz y la última columna de la matriz en el tercer renglón. Nótese que la correlación de cada variable consigo misma es "1". También se puede observar que las variables Ar y Af están muy correlacionadas (correlación mayor a 97%). Esto implica que incluir ambas variables en un mismo modelo de regresión lineal puede generar un problema de colinealidad o multicolinealidad (para más detalles, puede consultar la sección 14.4 del libro "Probabilidad y Estadística" de G. Canavos). Ya se había comentado anteriormente sobre la relación (semántica) entre ambas variables- en lo sucesivo consideraremos solamente a la variable Ar, porque el monto solicitado del financiamiento es la información previa necesaria para decidir el monto a financiar y la tasa de interés del crédito. También podemos notar que la puntuación FICO (Fi) y la tasa de interés (Ir) tienen bastante correlación (-0.71). Esto indica que la variable Fi es una buena candidata para incluirse en un modelo de regresión lineal con la tasa de interés como variable dependiente. Además, el signo negativo de la correlación indica que el coeficiente de regresión para la variable Fi en el modelo lineal también debería ser negativo.
La puntuación FICO del solicitante está muy correlacionada con la tasa de interés del préstamo. Pero a su vez, como vimos en la primera parte de esta serie (The Lending Club - Parte I), muchas de las variables en este data frame son tomadas en cuenta para el cálculo de la calificación FICO. Entonces, por una parte esperaríamos cierta correlación entre esas variables y la calificación FICO. Si esas variables se incluyen en el modelo lineal, pudiésemos estar ante un problema de variables de confusión (confounder variables). Las variables de confusión son aquellas que están correlacionadas con la variable dependiente y con alguna o algunas de las otras variables independientes del modelo. El problema que generan las variables de confusión es que a veces, sus efectos sobre la variable dependiente pueden ser exagerados. También puede ocurrir lo que se llama un efecto supresor. Puede consultar más sobre estos temas en este blog. Por nuestra parte, algunos de estos conceptos saldrán a relucir a medida que iremos ensayando distintos modelos de regresión lineal.
A continuación podemos observar algunas gráficas. La primera (Fig. 1) es un histograma de las tasas de interés:
Esta variable tiene una distribución casi acampanada ... ¡Un momento! ¿Qué es ese segundo pico que se observa a la izquierda, en el intervalo [0,06 - 0,08)? Bueno, una variable así difícilmente sea normalmente distribuida, lo cual no es un problema en sí. Sin embargo, llama la atención que exista un grupo tan significativo de prestamos con tasas de interés en ese rango. Quizás, alguna de las variables independientes pueda explicar ese comportamiento...
Seguimos con la parte más ilustrativa de nuestro análisis exploratorio, que son las gráficas de dispersión entre la tasa de interés y las otras variables cuantitativas (Fig. 2):
La puntuación FICO del solicitante está muy correlacionada con la tasa de interés del préstamo. Pero a su vez, como vimos en la primera parte de esta serie (The Lending Club - Parte I), muchas de las variables en este data frame son tomadas en cuenta para el cálculo de la calificación FICO. Entonces, por una parte esperaríamos cierta correlación entre esas variables y la calificación FICO. Si esas variables se incluyen en el modelo lineal, pudiésemos estar ante un problema de variables de confusión (confounder variables). Las variables de confusión son aquellas que están correlacionadas con la variable dependiente y con alguna o algunas de las otras variables independientes del modelo. El problema que generan las variables de confusión es que a veces, sus efectos sobre la variable dependiente pueden ser exagerados. También puede ocurrir lo que se llama un efecto supresor. Puede consultar más sobre estos temas en este blog. Por nuestra parte, algunos de estos conceptos saldrán a relucir a medida que iremos ensayando distintos modelos de regresión lineal.
A continuación podemos observar algunas gráficas. La primera (Fig. 1) es un histograma de las tasas de interés:
Fig. 1 - Histograma de las tasas de interés
Seguimos con la parte más ilustrativa de nuestro análisis exploratorio, que son las gráficas de dispersión entre la tasa de interés y las otras variables cuantitativas (Fig. 2):
Fig. 2 - Gráficas de dispersión de las variables independientes cuantitativas respecto a la variable dependiente Ir.
(a) Ar / Ir
|
(b) Fi / Ir
|
Los diagramas de dispersión de la Figura 2 confirman que, entre todas las variables independientes, la calificación FICO (Fi) es la más fuertemente asociada a la tasa de interés (Ir). Esto era de esperarse, pero el diagrama de dispersión de la Figura 2.b. revela más detalles sobre esta asociación: la curva lowess (la línea verde oscura) tiene la misma pendiente hasta una puntuación FICO de 750 (aproximadamente, o a pepa de ojo). A partir de 750 puntos en la calificación FICO, la pendiente de la curva lowess se hace más horizontal. Esto implica que a mayor puntuación FICO, menor tasa de interés del préstamo, pero a partir de 750 puntos FICO, la diferencia no es tan grande. Dado la magnitud de la asociación entre estas dos variables, la recta lineal quizás no sea el tipo de asociación más idónea entre estas variables.
Otro patron marcado según la curva lowess se puede observar (ver Figura 2.a) en la asociación del monto solicitado para el financiamiento (Ar) y la tasa de interés (Ir), aunque esta asociación no es tan marcada como la asociación Fi-Ir, cuyos puntos en el diagrama de dispersión son menos dispersos respecto a la curva lowess. También se observa una relación creciente entre la cantidad de líneas de crédito abiertas y la tasa de interés (Figura 2.d). Esta asociación podría no ser no-lineal, dado la convexidad de la curva lowess que se observa en la gráfica.
La variable DtIr (relación Deuda-Ingresos) también tiene una asociación creciente con la tasa de interés (ver Figura 2.e). Sin embargo, dada la baja correlación entre estas variables (de apenas 0.17 según la matriz de correlación de arriba) y el alto grado de dispersión de los puntos, es posible que esta variable no sea significativa en un modelo de regresión. La Figura 2.g revela un patrón interesante: para 0 indagaciones (solicitudes de reportes de historial crediticio), las tasas de interés son más bajas. Para 1 o más indagaciones, las tasas de interés no difieren significativamente. Esto indica que posiblemente sea conveniente transformar la variable Inq a una variable indicadora según sea Inq=0 o no.
Las otras dos variables, ingresos mensuales (I) y balance rotativo de crédito (Rcb) contienen muchos datos atípicos hacia el extremo derecho para ser útiles. Estos datos atípicos (en forma de ingresos mensuales astronomicamente altos por ejemplo) podrían afectar la regresión en formas no deseadas, por lo cual su inclusión en un modelo de regresión quizás no sea una buena idea.
Para explorar la asociación entre la tasa de interés y otras variables categóricas, lo más conveniente es usar diagramas de caja comparativos. Así se hizo para las variables Ho, Ed y Ld, como se muestra en la Figura 3:
(a) Ir ~ Ho
|
(b) Ir ~ Ed
|
(c) Ir ~ Ld
|
Las primeras dos gráficas de caja (Figuras 3.a y 3.b) no revelan asociaciones significativas entre la tasa de interés y las respectivas variables. En contraste, La Figura 3.c indica que si hay una relación significativa entre la tasa de interés y la duración del préstamo: los prestamos de 36 meses tienen tasas de interés signficativamente más bajas.
Para las otras dos variables cualitativas - el estado de residencia (St) y el propósito del préstamo (Lp) - no se hicieron diagramas de caja comparativos porque estas variables tienen demasiados niveles (46 estados y 14 propósitos de préstamo diferentes). Para cada una de estas variables, se optó por generar tablas indicando la frecuencia de cada nivel, la tasa de interés mediana y el p-valor del contraste Wilcoxon de diferencia entre medianas (consultar el artículo en Wikipedia). La idea es verificar si para algún nivel determinado de estas variables, las tasas de interés difieren significativamente de aquellas asociadas a los otros niveles. Para la variable estado (St):
frec mediana p_valor
CA 432 0.13110 0.69246237
NY 253 0.13110 0.82515314
TX 174 0.13110 0.30747046
FL 169 0.13110 0.88525055
IL 101 0.12530 0.22145716
GA 97 0.12180 0.27619025
PA 96 0.13045 0.23581778
NJ 92 0.12120 0.38675613
VA 78 0.12550 0.78497883
MA 73 0.12120 0.38183801
OH 71 0.12230 0.10542538
MD 68 0.13790 0.62463807
NC 64 0.12405 0.34075690
CO 61 0.13110 0.92712927
WA 58 0.13110 0.89902872
CT 50 0.13140 0.29789052
AZ 46 0.13110 0.86390489
MI 45 0.14090 0.01538049
MN 38 0.13545 0.34930242
: : : :
: : : :
Esta tabla (dada aquí de forma parcial) enumera los 46 estados en orden descendente por frecuencia de observaciones. Podemos observar que para el estado MI (Michigan), la tasa de interés mediana es significativamente distinta de la de los otros estados (con un p-valor de 1% en el contraste de Wilcoxon). Esto implica que los prestamos de los solicitantes de ese estado tienen una tasa de interés más alta, por alguna razón. Sin embargo, como solo 45 de las 2492 observaciones son de ese estado, incluir la variable St en un modelo de regresión lineal solamente para ajustar mejor a un grupo que representa menos del 2% de las observaciones sería un despropósito. Seguidamente tenemos una tabla similar para el propósito del prestamo:
frec mediana p_valor
debt_consolidation 1306 0.13490 6.704956e-11
credit_card 442 0.13110 9.769974e-01
other 197 0.13060 6.911076e-01
home_improvement 152 0.11130 2.162582e-06
major_purchase 101 0.11120 2.559098e-08
small_business 87 0.12840 6.169896e-01
car 50 0.10475 9.231269e-04
wedding 39 0.12210 2.223396e-01
medical 30 0.13110 8.066417e-02
moving 29 0.13110 6.110691e-01
vacation 21 0.12120 3.160609e-01
house 20 0.13085 8.177116e-01
educational 14 0.09755 4.628680e-02
renewable_energy 4 0.09130 1.336665e-01
Para esta variable, si se observa un subgrupo grande (con 1306 observaciones), cuya tasa de interés difiere significativamente de la de otros grupos (p-valor casi nulo). Este grupo es el grupo de prestatarios que solicitaron un préstamo para consolidación de deudas (debt consolidation). Existen otros grupos con tasas de interés significativamente distintas, pero son muy pequeños en relación con el número total de observaciones. Por cierto, la tasa de interés mediana de los prestamos solicitados para consolidación de deudas (13,49%) es mayor a la tasa de interés mediana general (13,11%). De esto se deduce que sería conveniente incluir una variable indicadora en el modelo de regresión según sea el propósito del préstamo la consolidación de deudas o no.
Análisis exploratorio de datos - algunas conclusiones
Tras realizar el ejercicio anterior, podemos concluir sobre la importancia de explorar los datos antes de construir los modelos de regresión. Las observaciones realizadas tras este estudio exploratorio se pueden aunar al conocimiento o a las ideas previas que tenemos sobre la temática que estamos estudiando (en este caso, los prestamos personales en EEUU). Esto ayudará a plantear posibles hipótesis sobre las relaciones de las variables en forma de modelos de regresión lineal. Es importante destacar que un análisis exploratorio no es inferencial. Todo lo que observamos hasta este punto queda en forma de conjetura y no es generalizable a la población. Cuando, tras realizar el ajuste por mínimos cuadrados de un modelo de regresión lineal, tenemos los p-valores de la prueba F, los estadísticos T-Student de significatividad de los coeficientes poblacionales y cuando finalmente realicemos un análisis de residuos para validar el modelo, si tendremos los elementos estadísticos requeridos para un estudio inferencial. El análisis exploratorio sirve para guiar al análisis de regresión, el cual haremos en la tercera y última parte de estas entradas del blog...
Como citar esta entrada
Romero, J. (Marzo, 2013). The Lending Club - parte II. [Entrada de blog]. Recuperado desde https://unamatematicaseltigre.blogspot.com/2013/03/the-lending-club-parte-ii.html.
Si te gustó o te pareció útil este contenido, compártelo en las redes sociales y dale tu voto positivo en el botón "me gusta" de G+, para que otros puedan encontrar el contenido también.