Detección de anomalías

Introducción

Se trabajara con los datos ya recurrentes que corresponden a las observaciones de las solicitudes para obtener una tarjeta de crédito.

Preliminares.

La detección de atípicos no es una tarea sencilla, especialmente cuando se trata de hacerlo en un ambiente multivariado, como un primer análisis, se presentan, las curvas de densidad de 4 variables que son de nuestro interés.

  • CUPO PROMEDIO TARJETA: Corresponde al cupo promedio de los últimos 6 meses de las tarjetas de crédito.

  • PROMEDIO MENSUAL CONSUMOS LOCALES: Corresponde al saldo promedio consumido en locales sin uso de tarjeta de crédito en los últimos 6 meses

  • SALDO TOTAL TARJETA: Corresponde al saldo utilizado en el ultimo corte de la tarjeta de crédito.

  • SALDO UTILIZADO PROMEDIO CLIENTE: Corresponde al promedio del saldo utilizado de la tarjeta en los últimos 6 meses.

Se observa la simetría de estas variables, y es natural plantearse la existencia de outliers, por ejemplo el máximo, mas la intuición no es un criterio para detectarlos.

No se puede confiar en el diagrama de cajas cuando se tienen comportamientos asimétricos en variables numéricas, esta simetría implica una gran dispersión en los datos lo que erróneamente podría inferirse como que existen una inmensa cantidad de datos atípicos. Es necesario ocupar alternativas para identificar los atípicos, por ejemplo una alternativa visual son los diagramas de probabilidad.

Diagrama de Cajas Vs Diagrama de Probabilidad

Se muestra a continuación un comparación entre las diferentes pruebas visuales para determinar datos atípicos, usando para el análisis las observaciones dela variable SALDO TOTAL TARJETA.

Aunque en su gran mayoría, los datos se encuentran fuera de los bigotes, no es un criterio suficiente para clasificarlo como atípicos, pero visualmente se podría llegar a la conclusión de que existen varios datos atípicos.

Por otro lado, en estos tipos de gráficos es mas fácil visualizar, los posibles outliers, pues los mismos están ‘aislados’ del resto, se nota claramente que el máximo de las observaciones de SALDO TOTAL TARJETA es un potencial outlier.

Aunque se mostró anteriormente métodos visuales para detectar atípicos, se lo hizo de manera individual para la variable SALDO TOTAL TARJETA, pero es de nuestro interés determinar los datos atípicos de manera multivariante, por ejemplo, veamos que pasa con respecto a la variable anterior y la variable EDAD.

Como se menciono anteriormente las características asimétricas de la variable Saldo Total Tarjeta, se hizo uso de diagramas de cajas por su facilidad de implementacion, ya que teniendo en cuenta que aunque las observaciones se encuentran fuera de los bigotes, no es criterio suficiente para determinar si es un atípico.

En el anterior análisis evidencia la existencia de datos atípicos en diferentes edades, por ejemplo, para la edad de 23, se observa un grupo de observaciones alejados del resto, para la edad 24, tenemos un grupo alejado del resto y claramente una observación muy alejada que corresponde al máximo de Saldo Total tarjeta parar observaciones con 24 años.

En si se puede establecer que cada uno de estos valores analizados no se debe a un error a la hora de construir la base de datos por lo que, eliminarlos no es la solución ya que modificar a partir de eliminar se puede presentar un sesgo debido a que se disminuye el tamaño muestral afectando tanto a la distribución como a las varianzas.

KNN

KNN (K-Nearest-Neighbor), en sus siglas en inglés, es un algoritmo basado en instancia de tipo supervisado de Machine Learning. Se lo utilizará pues el supuesto fundamental en el vecino más cercano es que las observaciones similares están próximas entre sí y los valores atípicos suelen ser observaciones solitarias, que se mantienen más alejadas del grupo de observaciones similares.

Cuando se trata de la detección de anomalías, adopta un enfoque no supervisado. Esto se debe a que no hay un “aprendizaje” real involucrado en el proceso y no hay un etiquetado predeterminado de “valor atípico” o “no atípico” en el conjunto de datos, sino que se basa completamente en valores de umbral.

Para ello, se utilizará la función get.knn, que son algoritmos rápidos de búsqueda de vecino más cercano k incluyendo un árbol-kd (kd-tree), árbol de cobertura (cover-tree) y el algoritmo implementado en el paquete de clases, siendo k el número máximo de vecinos más cercanos para buscar. Se to mamará k=5 y el percentil 0.975 para declarar como cota y se obtendrá una lista de indices que superan la cota.

[1] 575

Se encuentran 575 datos atípicos, que corresponde al 2.5% de las observaciones.

LOF

El algoritmo Local Outlier Factor (LOF) es un método de detección de anomalías no supervisado que calcula la desviación de densidad local de un punto de datos dado con respecto a sus vecinos. Considera como valores atípicos las muestras que tienen una densidad sustancialmente más baja que sus vecinas.

Se utilizará la función lof que calcula la puntuación del factor de valor atípico local (LOF) para cada punto de datos utilizando un árbol kd (kd-tree), para acelerar la búsqueda de kNN, se tomará la cota de 0.975 para declarar atípicos a los datos que superen este límite:

[1] 575

Se obtiene un resultado idéntico al anterior, teniendo como observaciones potencialmente atípicos 575.