Predicción de Clientes
Problemáticos


Luis Manuel Román García

Madeleine Leon Sosa

Mario Becerra


Contenido

  1. Introducción
  2. Hipótesis
  3. Base de datos
  4. Análisis exploratorio de datos
  5. Análisis confirmatorio
  6. Resultados
  7. Conclusión



Introducción

El siglo XXI ha sido llamado por muchos el siglo de la información. El volumen, la variedad y la velocidad con la que los datos circulan la red no tiene precedente histórico.

Eric Schmidt: Every two days we create as much information as we did from the dawn of civilization up until 2003.

Es evidente que el problema ya no es la escasez de datos, sino la capacidad para explotarlos de manera adecuada y poder extraer contenido de entre todo ese ruido.

Una de las principales aplicaciones del análisis de grandes bases de datos es la mejora del servicio que las compañías ofrecen a sus clientes. Explorar los resultados de encuestas de servicio o identificar las principales quejas de los clientes les permite entender cuales son sus puntos débiles y descubrir campos de oportunidad. Por otro lado, una correcta evaluación de los gustos y preferencias de los individuos les permite desarrollar productos acordes a sus necesidades, lo que les permite diferenciarse de la competencia.

Esto es particularmente importante en sectores con alta volatilidad y rotación de clientes. El mercado financiero es un buen ejemplo, ya que en este, el precio es muchas veces un factor determinante, de tal forma que si no quieres perder margen de utilidad la atención a clientes debe ser tu principal objetivo.

Goldman Sachs: Our experience shows that if we serve our clients well, our own success will follow.

En este trabajo exploramos una gran base de datos que contiene las principales quejas de individuos sobre productos financieros. Nuestro objetivo es determinar que variables se correlacionan con el descontento de los clientes y construir un modelo que nos permita predecir dicho fenómeno.


Hipótesis

Dada una serie de variables referentes a: un cliente, el producto que consumió, la empresa de la cual lo hizo y el tratamiento que se le dió a su asunto. Se puede estimar la probabilidad de que dicho cliente vuelva a presentar una queja.


Base de datos

La base de datos que utilizamos está disponible en el sitio oficial de datos públicos del gobierno de Estados Unidos de América . Esta consta de 314,949 quejas de individuos sobre productos financieros y cuenta con registros desde el 2011 hasta el 8 de julio del 2014. Cada observación cuenta con 13 variables. Estas contienen información del individuo: Código postal y estado de residencia. Información sobre el producto financiero: compañía vendedora, tipo de producto y el problema que encontraron. Información referente a la queja: fecha de elaboración, respuesta de la compañía, fecha de respuesta, puntualidad de la respuesta y posteriores reclamaciones.

Valores faltantes

Uno de los primeros problemas que encontramos en la base de datos fue que aproximadamente el \(8.7\%\) de los registros referentes a la variable de interés consumer.disputed. eran datos faltantes. Dado que esto resulta no informativo para el fenómeno que se quiere modelar y dado que los valores faltantes representan una pequeña porción de los datos, estos registros fueron eliminados.

Además de esto, observamos que dos variables ( sub.issue, sub.product ) contaban con una gran cantidad de registros faltantes \(74.52\%\), \(29.02\%\) respectivamente. Para decidir que tratamiento darle a estas variables, hicimos una prueba gráfica y una prueba \(\chi^2\) para determinar si la variable respuesta era estadísticamente independiente de la presencia o ausencia de dichos datos.

Al momento de explorar la base de datos nos encontramos con dos variables cuyo porcentaje de valores faltantes las volvía

plot of chunk unnamed-chunk-3

plot of chunk unnamed-chunk-4

Al ver las gráficas y los resultados de las pruebas, notamos que el comportamiento de la variable respuesta es independiente de la presencia o ausencia de de ambas variables, esto justifica que dichas variables no sean tomadas en cuente para futuro análisis.

Recodificación de variables y observaciones

En esta sección se describen los distintos tratamientos y recodificaciones que se le dieron a las distintas variables con tal de mejorar el ajuste de nuestro modelo.

Product & Issue

Por un lado, la variable product consta de 9 niveles, mientras que la variable issue cuenta con 78. Si las clases fueran independientes uno esperaria observar al rededor de \(9 \times 78 = 702\) configuraciones distintas. Sin embargo, en la base se observan únicamente \(80\) configuraciones. Esto indica una alta correspondencia entre ambas variables y nos sugiere que cada producto tiene sus propias quejas.

plot of chunk unnamed-chunk-6

El gráfico anterior confirma nuestras sospechas, hay un claro patrón en los datos. Ahora bien antes de eliminar la variable issue, es necesario determinar si la distribución de quejas a través de los distintos niveles de esta variable es aproximadamente igual.

State

La variable state, cuenta con las iniciales de cada estado. Para determinar que estados son relevantes y aglomerar en una sola categoría aquellos que no lo sean, realizamos el siguiente histograma.

plot of chunk unnamed-chunk-8

Al observar la distribución de la frecuencia de las observaciones a través de los distintos estados, observamos que una cuarta parte de ellos tienen menos de \(550\) quejas. Contamos todos aquellos que tienen un número de observaciones menor a \(1000\) dentro de otros. Así es como se ven los datos después de esta transformación.

plot of chunk unnamed-chunk-10

Zip code

La variable zip.code presenta un \(12\%\) de datos faltantes. Y el número de registros distintos es de \(22597\) por lo que no es factible usarla como variable de predicción. Por otro lado, podría resultar de interés saber si existe una correspondencia entre aquellas personas que brindaron su código postal y aquellas que no con el número de personas que se quejaron y las que no. Para analizar esto realizamos la siguiente comparación:

\[\frac{\#\mbox{queja}}{\#\mbox{zip}}-\frac{\#\mbox{queja}}{\#\mbox{no zip}}= -.04\sim 0\]

Por lo tanto la proporción de individuos que se quejan con y sin código postal es muy similar, por lo que esta variable es no informativa y la eliminamos.

Date recorded & Date sent to company

Como se mostrará en la sección de estadística descriptiva, realizamos una serie de tiempo con tal de identificar si esta variable estaba correlacionada con el número de quejas y ver si había un patrón estacional.

Company response

Esta variable cuenta con dos niveles que aparecen un número muy reducido de veces, in progress (3 registros) untimely response (2 registros) por lo que eliminamos estas variables.

Company

Dado que el número de compañías es demasiado elevado como para utilizarlo como un predictor, decidimos seleccionar las \(21\) compañías con el mayor número de quejas y englobar al resto en una variable de nombre otros. Entre estas reunen aproximadamente \(\%73\) de los datos.

plot of chunk unnamed-chunk-14

Después de estas modificaciones, obtuvimos una base sin datos faltante y lista para el análisis.

Análisis exploratorio de datos

En esta sección se buscará identificar las posibles variables relevantes y determinar si existen correlaciones o fenómenos interesantes entre las mismas y la variable respuesta.

Antes de realizar cualquier tipo de análisis, se segmentó la base de datos en una base de entrenamiento y una de prueba. Todos los gráficos que se muestran a continuación se realizaron exclusivamente con la base de entrenamiento.

Series de tiempo

Es importante notar que los datos tienen una componente temporal. Los modelos lineales generales funcionan bajo la hipótesis de heteroscedasticidad, tenemos que verificar que la variabilidad de los datos no depende del tiempo. En caso de que encontremos un factor de dependencia habrá que corregir ya sea ajustando distintos modelos localmente de tal forma que se cumplan los supuestos o llevando a cabo una transformación en los datos.

plot of chunk unnamed-chunk-16

Al no existir un patrón estacional, eliminamos las variables de fecha.

Correspondencias Múltiples

Dado el número de covariables y el tamaño de la base, es muy poco probable que nuestro modelo sufra de sobre ajuste. No obstante, el análisis de correspondencias múltiples nos permitirá identificar si existen variables que estén altamente correlacionadas así como verificar si las clases que buscamos predecir son completamente separables (esto lo usaremos para seleccionar el modelo que utilizaremos logit, log-log, probit).

plot of chunk unnamed-chunk-18 Es claro que las clases no son separables en dos dimensiones, esto justifica que introduzcamos más variables en el análisis con tal de obtener separabilidad en una mayor dimensión.

Mapeo

Dado que tenemos datos referentes a los estados de donde provienen las quejas, podemos llevar a cabo un análisis espacial. Esto nos permitira identificar si cierto tipo de respuestas está asociado a una zona geográfica en particular.


Análisis confirmatorio (predicción)

En esta sección ajustaremos los distintos modelos para respuestas binarias y determinaremos cual es el que tiene mejor capacidad predictiva.

Ajustes

Antes de ajustar los modelos, hay que tomar en cuenta la proporción de las clases en la variable de interés. El hecho de que haya \(175040\) registros en donde no se quejaron, y \(50322\) registros en los que si, nos inclinamos a pensar que el mejor modelo será aquel que por naturaleza prediga un mayor número de clases negativas.

Modelo con liga logística

\[g(\pi)=log(\frac{\pi}{1-\pi})\]

|Null deviance: 243700 on 229826|
|Residual deviance: 237990 on 229742|
|AIC: 238149 |
Modelo con liga probit normal inversa

\[g(\pi)=\Phi(\pi)^{-1}\]

|Null deviance: 243700 on 229826|
|Residual deviance: 237990 on 229742|
|AIC: 238143 |
Modelo con liga log-log complementaria

\[g(\pi)=log(-log(1-\pi))\]

|Null deviance: 243700 on 229826|
|Residual deviance: 237990 on 229742|
|AIC: 238160 |
Mejor Modelo

De entre los tres modelos, el que utiliza la liga probit es el que logró los mejores en cuanto a ajuste, complejidad y (como se verá más adelante) predicción. Por esta razón, ajustaremos un cuarto modelo utilizando exclusivamente aquellas variables cuyos coeficientes resultan significantes.

Observamos que el medio por el cual se entrega la queja no reulta significante por ende lo eliminamos del análisis.

|Null deviance: 243696 on 229822|
|Residual deviance: 239450 on 229745|
|AIC: 239606 |

En este modelo prácticamente todos los coeficientes son significantes.



Resultados

Precisión y matrices de confusión

Modelo logístico
##    clas.pred
##         0     1
##   0 38850 10269
##   1  5816  2520
Precisión
## [1] 0.72
Modelo probit
##    clas.pred
##         0     1
##   0 39177 10412
##   1  5489  2377
Precisión
## [1] 0.7232
Modelo log-log complementaria
##    clas.pred
##         0     1
##   0 38769 10223
##   1  5897  2566
Precisión
## [1] 0.7194
Modelo probit variables seleccionadas
##    clas.pred
##         0     1
##   0 44219 12592
##   1   447   197
Precisión
## [1] 0.7731
Benchmark

Vemos que la proporción de casos negativos en la base de entrenamiento es de \(.77\) por lo tanto una regla de clasificación \(naive\) sería classificar como negativa aproximadamente \(8\) de cada \(10\) observaciones.

Precisión
## [1] 0.6529


La precisión de todos los modelos es muy similar y superior al benchmark


Curva ROC

plot of chunk unnamed-chunk-33


Conclusiones

  1. Todos los modelos ajustados demostraron ser sistemáticamente superiores a un clasificador naive.
  2. Fue posible estimar la probabilidad de que un cliente volviera a incurrir en una queja aunque los resultados no son completamente satisfactorios.
  3. El modelo probit fue el mejor en cuanto a ajuste, complejidad y poder de predicción.
  4. Al seleccionar las variables más significativas del modelo probit logramos mejorar el poder de predicción considerablemente.