Detectar fraude financiero usando Machine Learning

0

Detectar firmas con fraude financiero usando Machine Learning

Identificar firmas con distorsión intencional de los estados financieros es un problema desafiante y emocionante entre los auditores. Bancos e inversionistas que confían en la información financiera para tomar decisiones. Sin embargo, es difícil descartar a estas empresas.

Ya que una declaración errónea intencional (cocinar los libros) puede adoptar varias formas: ocultar las pérdidas de la empresa a través de otras entidades, reconocer los ingresos demasiado pronto o incluso utilizar un auditor que no esté registrado.

El fraude en los estados financieros puede permanecer al descubierto incluso después de una auditoría financiera, ya que las técnicas utilizadas para cocinar los libros son cada vez más sofisticadas.

Recientemente completé un proyecto grupal para construir un modelo de aprendizaje automático para identificar firmas de los EE. UU. Con errores intencionales en el año. 2010 basado en datos de capacitación de 2005–2009.

Pensé que sería interesante compartir con ustedes el enfoque y los puntos clave de aprendizaje de este proyecto de ciencia de datos, siga leyendo si desea saber el proceso de construcción de principio a fin. este modelo de aprendizaje automático.

Estos son los pasos que se analizarán en detalle:

  • Ingeniería de características con conocimiento del dominio al tiempo que aprovecha los documentos de investigación
  • Análisis de datos exploratorios para obtener información
  • Selección de características con Prueba t y prueba de chi-cuadrado
  • Selección e implementación del modelo
  • Ajuste fino del modelo con búsqueda aleatoria CV
  • Evaluación del modelo con puntaje AUC
  • M Interpretación de odel

Paso 1: Ingeniería de características

La ingeniería de características es el paso más importante de cada proyecto de ciencia de datos. Los científicos de datos dedican horas importantes al ingeniero de características para crear características significativas que capturen las características de un fenómeno observado (variables objetivo).

Sin datos de calidad, el algoritmo de aprendizaje automático más sofisticado no podría superar a un modelo simple con características de calidad.

Para este proyecto, la ingeniería de características se realizó desde cero, ya que el conjunto de datos de capacitación solo contenía el identificador de la empresa, el año y si el la firma realizó una declaración equivocada intencional, no se proporcionaron otras características.

¿Cómo crear características significativas que capturen las características de la variable objetivo?

  • Lea artículos de investigación escritos sobre un problema similar de aprendizaje automático que esté tratando de resolver
  • Haga una lluvia de ideas haciendo las preguntas correctas

Aprovechando documentos de investigación anteriores

Basándose en documentos de investigación anteriores como Dechow (2011) y BCE (2018) fue muy útil para comprender el tipo de características que podrían captar la característica de las empresas que cometen fraude contable.

A continuación, se detallan algunos de los diferentes tipos de variables que se están explorando en estas investigaciones. Documentos:

  • Variables financieras que capturan las actividades financieras de las empresas: por ejemplo, Cambio en las cuentas por cobrar, cambio en el inventario, libro al mercado y si la empresa se reestructuró
  • Características de los estilos textuales que capturan la legibilidad, la longitud, el tono y la selección de palabras de los estados financieros
  • Características que capturan la naturaleza del negocio: por ejemplo Ya sea que la empresa se encuentre en la industria minorista, de servicios o de computadoras

Incluyendo las características significativas de estos dos trabajos de investigación en nuestro modelo Lasso inicial en R, solo fue capaz de alcanzar una puntuación AUC de 0,64 fuera de la muestra, lo que indica que El modelo solo pudo predecir el objetivo correctamente el 64% del tiempo.

Lluvia de ideas con conocimiento del dominio

Está claro que se necesita más ingeniería de características, entonces nos preguntamos cómo podemos detectar firmas con errores intencionales. ¿Aprovechando cualquier dato, si fuésemos auditores, auditores internos, reguladores e inversores? Imagine que podría obtener cualquier dato, qué características agregaría al modelo.

Después de una lluvia de ideas:
  • Los auditores

Tendrían acceso a áreas / número de errores materiales, el número de puntos de revisión de la administración, las opiniones de los auditores, la industria y si la industria es una industria de alto riesgo.

  • Los auditores internos

Evalúan el control interno de las empresas, tendrían acceso a la puntuación de la fortaleza del control interno y los correos electrónicos internos. Algunas de las posibles variables son una opinión sobre el control interno y si los correos electrónicos internos contienen mensajes sospechosos que indican fraude.

  • Los reguladores

Tendrían acceso a la información de la gerencia superior y a los detalles de la compensación. Una posible variable sería calcular la tasa de rotación del CEO o CFO como alta gerencia tendería a dejar a la compañía durante el período de manipulación de los estados financieros o después de que el fraude sea descubierto por los reguladores.

El número de opciones de acciones no ejercitadas de la alta gerencia también suele asociarse con una contabilidad agresiva.

  • Los inversores

Dado que el público tiene acceso a informes financieros y datos de acciones, se pueden observar algunas de las posibles áreas a tener en cuenta.

La volatilidad del precio de las acciones y el retorno de las acciones, ya que la administración a menudo manipula los estados financieros para cumplir con las expectativas de los inversores o analistas para mantener el precio de las acciones.

Teniendo en cuenta las posibles variables, buscamos la disponibilidad de estas variables en la base de datos WRDS para obtener las siguientes variables:
  • Opinión de auditoría : la opinión del auditor podría señalar posibles casos fraudulentos. P.ej. Opinión adversa, opinión calificada y opinión no calificada.
  • Opinión sobre el control interno: un control interno deficiente aumenta la posibilidad de fraude. P.ej. Efectivo, adverso y renuncia.
  • Auditor de estados financieros: ciertas firmas de auditoría podrían enfrentar una mayor presión para aprobar estados financieros con errores significativos
  • Industria: algunas industrias son más fáciles Se vio afectado por fraude y se encontró que estaba asociado con casos de fraude
  • CEO Facturación y compensación: esta variable no se usó más tarde debido a demasiados datos faltantes
  • Variables relacionadas con las devoluciones de existencias y volatilidad: esta variable no se usó más adelante, ya que limitará nuestro conjunto de datos de capacitación para que contenga solo las empresas incluidas en la lista

Paso 2: Limpieza de datos

Después de fusionar todas las variables con el conjunto de datos de capacitación que contiene la firma Identificador, año y variable objetivo. Es importante verificar la extensión de los datos faltantes y los duplicados antes de continuar con el análisis de datos exploratorios.

  1. Verificar duplicados: contar el número de filas del marco de datos de entrenamiento recién fusionado y comparar con el marco de datos original, elimine los duplicados según la identificación de la empresa única, si alguna
  2. Verifique los datos faltantes: Use la función vis_miss bajo el R’s Visdat package para visualizar los datos faltantes, si los datos faltantes ocupan más del 2% del conjunto de datos de entrenamiento (el porcentaje de observaciones con errores de interpretación internacional toma el 2% del conjunto de datos) eliminaría la variable por completo

Paso 3: obtenga información con Exploratory Analytics

3.1 Comprensión de la distribución de la variable de destino: genere una tabla de frecuencia de la variable de destino

En la tabla, podemos ver que, debido a la naturaleza del problema de predicción. Existe una distribución de clases desequilibrada como solo el 2% Las observaciones contienen errores intencionales dentro del conjunto de datos de entrenamiento.

Este es un problema común entre los problemas de clasificación, hay varios métodos para tratar distribución de clase desequilibrada ns. Algunas de las soluciones incluyen el remuestreo del conjunto de datos.

Las muestras sintéticas generadas, los algoritmos de selección con menor sesgo hacia la clase mayoritaria y los modelos penalizados.

3.2 Identificación de variables que contribuyen a la predicción de errores de intencionalidad: visualice la distribución y la frecuencia relativa de todas las variables

Los gráficos de densidad y los gráficos de barras se graficaron para cada variable continua / categórica para comparar las empresas con declaración errónea y las que no lo están. Para mantener este artículo breve y digerible, aquí hay algunas observaciones interesantes:

La media de log_total_assets para observaciones donde Restate_Int = 1 es aproximadamente 5. Mientras que la media de log_total_assets para observaciones donde Restate_Int = 0 es aproximadamente 6.5.

En promedio, las empresas que intencionalmente han declarado incorrectamente sus estados financieros tienen valores más bajos de registro de activos totales.

Mientras que las que no declararon erróneamente intencionalmente sus estados financieros tienden a tener valores más altos de registro de activos totales. Parece que las empresas más pequeñas probablemente distorsionen sus estados financieros.

Como se ve en el gráfico de barras anterior, de todas las observaciones donde Restate_Int = 0, el 70% contrató a un auditor de Big N para su auditoría de estados financieros. Esta proporción es relativamente más alta que el 65% de las observaciones donde Restate_Int = 1

Parece que las firmas sin errores intencionales son ​​ligeramente más propensas a ser firmas que han contratadas firmas de auditoría más grandes.

3.3 Gráfica de matriz de correlación para eliminar variables con una alta correlación entre variables

Según la matriz de correlación, se encuentra que las variables asociadas con la longitud de los estados financieros tienden a estar correlacionadas entre sí, así como variables de legibilidad.

Las variables altamente correlacionadas se eliminan para conservar solo una variable significativa. Esto también se conoce como el problema de multicolinealidad .

Sin embargo, aunque algunos modelos de aprendizaje automático como los métodos de árbol y Lasso son capaces de lidiar con la multicolinealidad. Incluyendo las variables altamente correlacionadas pueden resultar en que el algoritmo seleccione la variable ‘menos correcta’ lo que afecta a la interpretación del resultado del modelo.

Paso 4: Selección de características

La selección de características se puede hacer a través de su propio conocimiento del problema o use un modelo de selección (Lazo) para automatizarlo o una matriz de correlación simple para identificar las características relacionadas con el problema. variable objetivo.

Es mejor usar el primer enfoque, ya que usar un modelo de selección para automatizar la selección de características podría resultar en un resultado menos interpretable.

Para el proyecto, realizamos pruebas t en todos los variables y pruebas de Chi cuadrado en todas las variables categóricas para identificar características significativas.

prueba t en R

En la prueba t, el valor p indica la probabilidad de que las empresas no reexpresen su financiación l declaración debido a una variable particular y no debido a un muestreo aleatorio. Por lo tanto, si el valor de p es inferior a 0,1, rechazamos la hipótesis nula a favor de la alternativa.

prueba de chi-cuadrado en R

Mientras que para la prueba de chi-cuadrado, el valor de p indica la probabilidad de la función es independiente del objetivo en toda la población.

Teniendo en cuenta los resultados de la prueba t, los resultados de la prueba de ji cuadrado y los hallazgos analíticos de datos exploratorios, se seleccionan 32 funciones.

Paso 5: Selección del modelo

Hay muchos modelos de aprendizaje automático que se pueden usar para resolver este problema de aprendizaje automático. Es útil enumerar los criterios para la selección del modelo.

El algoritmo de aprendizaje automático debe ser capaz de:

Realizar una clasificación binaria supervisada:  Teniendo en cuenta estas limitaciones, los algoritmos que cumplen con estos criterios son: Support Vector Machines, Random Forest y LASSO. Model Evaluation

Para comparar el rendimiento del modelo de todos los modelos de aprendizaje automático, usamos el puntaje promedio del AUC dentro de la muestra con un CV quíntuple. Así como el puntaje del AUC fuera de la muestra obtenido del tablero de liderazgo público en Kaggle.

En la primera ronda de evaluación del modelo, comparamos el muestra el puntaje AUC de todos los modelos de aprendizaje automático entrenados con hiperparámetros por defecto. Random Forest in R fue el mejor (AUC de 0,68), seguido de Random Forest en Python (AUC de 0,65), Lasso (AUC de 0,63) y SVM (AUC de 0,51) fue el peor.

Paso 6 : Ajuste fino de modelos

Con los hiperparámetros predeterminados, el mejor modelo fue capaz de lograr una puntuación de AUC fuera de la muestra de 0,68. Para mejorar aún más el rendimiento del modelo, optimizamos Random Forest y SVM con la función de validación cruzada de búsqueda aleatoria disponible dentro del paquete scikit-learn. Echa un vistazo a la implementación de Python de ajuste de hiperparámetro aquí.

Lasso no requirió ajuste de hiperparámetro ya que, por defecto, el paquete Lasso en R glmnet tiene una función incorporada para seleccionar la mejor lambda valor con validación cruzada.

La afinación hiperparámetro fue capaz de aumentar la puntuación AUC de todos los modelos en aproximadamente 0.03–0.04. El bosque aleatorio entrenado en R continúa superando al resto de los modelos con un AUC de 0,70 fuera de la muestra.

Después del lanzamiento del puntaje AUC de la junta de líderes privados, el mejor modelo fue Random Forest (Python) con un puntaje AUC fuera de la muestra de 0,74, ya que tiene un puntaje AUC más estable en el 50% y el 100% de los datos de las pruebas.

Un puntaje AUC de 0,74 se considera un rendimiento aceptable, ya que existe una probabilidad de 0,74

Paso 7: Interpretación del modelo: importancia de la característica

Los modelos basados ​​en árboles de decisión tienen el atributo de importancia de la característica para identificar las características que más contribuyen al rendimiento del modelo . Hay muchas maneras de calcular los valores de importancia de las características.

Mientras que scikit-learn implementa las métricas de “disminución de la impureza media”. Que mide la disminución de la precisión en casos fuera de bolsa después de permutar aleatoriamente los valores de las variables. Si la disminución en la precisión es baja, la característica es menos importante.

Código para visualizar la importancia de la característica en Python

Las características interesantes que impulsan el rendimiento del modelo son:
  • FinTerms_Negative (Loughran-McDonald Recuento negativo de palabras): un estado financiero que usa más expresiones negativas indica un desempeño financiero deficiente. Por lo tanto, una mayor presión para manipular las cuentas
  • Promedio de palabras por frase : esta característica mide la complejidad y la legibilidad de los estados financieros. Un estado financiero que es complejo de leer puede indicar actividades contables complejas (tratamiento contable que requiere un juicio subjetivo. Por lo tanto, un mayor riesgo de manipulación) o una redacción intencional para que sea más difícil para los inversores comprender cómo se oculta la manipulación del estado financiero
  • Porcentaje de activos blandos : Porcentaje de activos totales excluyendo propiedades, planta y equipo, efectivo y equivalentes de efectivo. Las cuentas por cobrar y las cuentas por cobrar son cuentas que son más difíciles de verificar. Por lo que están sujetas a un mayor riesgo de manipulación por parte de la gerencia
  • FinTerms_Litigious (Proporción de palabras en litigio de Loughran-McDonald): un estado financiero con mayor contenido litigioso indica mayor riesgo de litigio. Por lo tanto, enfrenta una mayor presión para manipular las cuentas
  • Total financiamiento: Las empresas con mayor apalancamiento tienen un mayor riesgo de insolvencia. Por lo tanto, enfrentan una mayor presión para manipular las cuentas
  • : las empresas con una opinión adversa sobre el control interno tienen mayor oportunidad de manipular las cuentas
Reflexiones finales

Muy a menudo cuando intentamos competiciones Kaggle, la mayoría de las variables se dan que no nos requieren para realizar la ingeniería de características desde cero. Este proyecto me hizo apreciar la importancia de la ingeniería de características al hacer las preguntas correctas.

Las conclusiones clave que tengo de este proyecto son:
  • Sé creativo con la ingeniería de características, no asumas que ciertas características no están disponibles antes de hacer una tormenta de ideas posibles características
  • Aproveche los trabajos de investigación anteriores para comprender la justificación de seleccionar ciertas variables y limitaciones involucradas
  • Las técnicas disponibles para la selección de características y el manejo de la distribución de clases desequilibrada
  • Siempre realice la sintonización del hiperparámetro para aumentar el rendimiento del modelo

Quiero agradecer a mis compañeros por el arduo trabajo que han realizado en este proyecto y a nuestro profesor por su orientación y aliento.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *