UNIVERSIDAD POLITÉCNICA DE MADRID
FACULTAD DE INFORMÁTICA
MÁSTER EN TECNOLOGÍAS DE LA INFORMACIÓN
TESIS DE MASTER
Y2NTC (Y, ¿yo no te conozco?)Sistema de búsqueda de anomalías en estructuras
gráficas
Juan Manuel Fernández García-Minguillán
Julio, 2017
UNIVERSIDAD POLITÉCNICA DE MADRID
FACULTAD DE INFORMÁTICA
TECNOLOGÍAS Y SISTEMAS DE INFORMACIÓN
TESIS DE MASTER
Y2NTC (Y, ¿yo no te conozco?)Sistema de búsqueda de anomalías en estructuras
gráficas
Autor: Juan Manuel Fernández García-Minguillán
Director: Alfonso Mateos Caballero
Julio, 2017
Juan Manuel Fernández García-Minguillán
Madrid – Spain
E-mail: [email protected]
E-mail: [email protected]
© 2017 Juan Manuel Fernández García-Minguillán
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU
Free Documentation License, Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy
of the license is included in the section entitled "GNU Free Documentation License".
Se permite la copia, distribución y/o modificación de este documento bajo los términos de la
Licencia de Documentación Libre GNU, versión 1.3 o cualquier versión posterior publicada por
la Free Software Foundation; sin secciones invariantes. Una copia de esta licencia esta incluida en
el apéndice titulado «GNU Free Documentation License».
Muchos de los nombres usados por las compañías para diferenciar sus productos y servicios son
reclamados como marcas registradas. Allí donde estos nombres aparezcan en este documento, y
cuando el autor haya sido informado de esas marcas registradas, los nombres estarán escritos en
mayúsculas o como nombres propios.
i
Resumen
La detección de anomalías se ha convertido en una instrumento muy importante en nu-
merosos ámbitos como la medicina, la seguridad, la ingeniería, el análisis de riesgos, etc.
La forma tradicional para la detección de anomalías se centra básicamente en modelar las
características de cada entidad como un punto multidimensional. Pero, con el incremento de
los datos de tipo relacional el número de técnicas que permiten detectar anomalías en estas
estructuras ha aumentado, siendo posible determinar con una cierta probabilidad anomalías
en una red creada usando transacciones comerciales mediante teoría de grafos.
Este trabajo se centra tanto en crear un framework como un sistema de ayuda a la decisión
que permita la detección del fraude «Carrusel» usando la aplicación de teorías de grafos
novedosas, respecto al estado del arte. Para ello, el framework abstrae los detalles de las
teorías criminológicas gracias a tres componentes principales:
Un modelo estocástico basado en procesos de Markov en tiempo discreto donde cada
nodo del grafo modela mediante un conjunto de valores numéricos la existencia de una
anomalía respecto a su enfoque local o quasi-local.
La asignación de un «ranking», basado en la dominancia de Pareto, a cada entidad
según la posibilidad de fraude.
Una descripción textual que ayude a entender el por qué se ha asignado una entidad
como anómala.
Los datos utilizados en este trabajo han sido proporcionados por la AEAT (Agencia Estatal
de Administración Tributaria). Utilizando las relaciones comerciales superiores a 20 000eentre el 2010 y el 2015, las cuales hacen un total de 32 millones de relaciones. Además, se
han utilizado las características más importantes de 715 mil compañías, como el número de
empleados, el volumen de ventas anual, la cantidad de IVA deducido, si la compañía está
registrada para la realización de operaciones intra-comunitarias, la razón por la que se le ha
expulsado de este registro, etc.
III
Abstract
The anomaly detection objective has become a very important task in the fields of me-
dicine, security, engineering, risk analysis, etc. The common approach to deal with these
situations in the financial field is trying to model the main characteristics of each entity as
a multidimensional point. However, as the access to relational data has grown, the number
of techniques that allow detecting anomalies in these structures has increased, being possi-
ble to determine with certain probability anomalies in a network created with commercial
transactions using the graph theory.
This work focuses both on creating a framework as a decision support system which re-
cognize possible intra-community VAT fraud using the graph theory about novelty detection,
which are novel in the state of the art. For this purpose, the framework abstracts the details
of criminal theories through three main concepts:
A stochastic process based on discrete time Markov process where each node of the
graph represents the existence of an anomaly by a set of numerical values regarding
local or quasi-local indices.
The assignment of a ranking, based on the Pareto dominance, according to the possi-
bility of fraud of each entity.
A textual description which explains the reason why this entity seems fraudulent.
The data used for this work has been provided by the AEAT (Agencia Estatal de Ad-
ministración Tributaria). Using the commercial relations over 20 000e between 2010 and
2015, which made about 32 millions of commercial relations. Moreover, the most important
characteristics of each 715 thousand companies have been supplied, such as the number of
employees, the annual sale volume, the VAT deducted amount, if the company is active in the
register of intra-community operators, the reason of the exclusion of this register, etc.
V
Agradecimientos
Y por último toca hacer los agradecimientos, aunque es la segunda vez que hago una sección de
este tipo no me veo en que momento podré llegar a hacerla sin que me emocione.
En primer lugar me gustaría agradecérselo a mis padres, Manuel y María Dolores, por apoyarme
cuando pensaba con la cabeza y ayudarme cuando simplemente pensaba, lo cual me parece mucho
más importante.
A mi hermana, Loles, por la convivencia de este segundo año y que ha llevado tanto a buenos mo-
mentos como a no tan gratos, pero de los cuales hemos podido seguir con un vínculo más fuerte.
A mis abuelos, por ayudarme desde que era un «mico» hasta cuando han podido, ahora me toca a
mí ayudarles en todo lo que pueda.
A todos los compañeros del Máster, por esos días que hemos pasado en ese lugar de cuyo bus
queríamos acordarnos dado que si no tendríamos que quedarnos a dormir rodeados de estrellas, dado
que es lo único que podría encontrarse. Aunque me gustaría nombrarlos a todos no tengo suficiente
papel, por lo que habrá que resumir.
A Ana, con quien he tenido la posibilidad de debatir sobre diferentes planteamientos que me
han posibilitado madurar, tanto personal, como profesionalmente.
A Carlos por alegrarme el día con su típica pregunta de «¿qué tal te ha ido el día?», es extraño
como la propia forma de medir un suceso puede afectar al mismo.
A «Cuchi» por esos momentos hilarantes que hemos compartido como cuando unos espaguetis
a la «puttanesca» decidieron hacer una visita no guiada por mi mochila.
A Fran por aportar su piso franco para cenar y charlar sobre cualquier cosa antes de ir a dar
una vuelta.
A mi tutor Alfonso, por ofrecerme la oportunidad de aprender el mundo de la detección de anoma-
lías junto con sus consejos aportados durante este TFM.
A mi compañero de viaje, Ander, con quien he tenido la oportunidad de embarcarme en la detección
de fraude, tanto en sentido figurado al aprender, como en sentido estricto cuando teníamos que ir a
las oficinas de la ONIF (Oficina Nacional de Investigacion del Fraude).
A Ignacio González, tanto por ser el punto de partida como por ayudarnos en esta aventura que es
la detección de fraude.
Por último me gustaría agradecer de nuevo a todas las personas que me han soportado, tanto du-
rante la realización del Máster como durante el resto del tiempo de mi existencia, dado que como dijo
Gabriel García Márquez.
La muerte no llega con la vejez, sino con el olvido.
– Gabriel García Márquez
Juan Manuel
VII
A mis zapatillas de deporte, por soportarme todos los días que he salido a correr nevase,lloviese o granizase.
ix
Índice general
Resumen III
Abstract V
Agradecimientos VII
Índice general XI
Índice de cuadros XV
Índice de figuras XVII
Índice de listados XIX
Listado de acrónimos XXI
1 Introducción 1
1.1 Y2NTC, sistema de búsqueda de anomalías en estructuras gráficas . . . . . 1
1.2 Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Objetivos e hipótesis de trabajo 3
2.1 Objetivo principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Objetivos parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Hipótesis de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Antecedentes 5
3.1 Conceptos del dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 El fraude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Conceptos matemáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1 Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2 Álgebra matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3 Investigación Operativa . . . . . . . . . . . . . . . . . . . . . . . . 12
XI
3.2.4 Análisis de decisiones multicriterio . . . . . . . . . . . . . . . . . . 13
3.3 Conceptos tecnológicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 Sistemas de detección de anomalías . . . . . . . . . . . . . . . . . 16
3.3.2 Sistemas de ayuda a la decisión . . . . . . . . . . . . . . . . . . . . 17
3.3.3 Geometría computacional . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.4 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.5 Arquitectura basada en capas . . . . . . . . . . . . . . . . . . . . . 22
3.3.6 Arquitectura basada en niveles . . . . . . . . . . . . . . . . . . . . 22
4 Desarrollo 23
4.1 Marco tecnológico de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1 Herramientas para la gestión de proyectos . . . . . . . . . . . . . . 23
4.1.2 Herramientas para el modelado y desarrollo de software . . . . . . 24
4.1.3 Herramientas para la elaboración de la documentación . . . . . . . 24
4.1.4 Lenguajes de propósito general . . . . . . . . . . . . . . . . . . . . 24
4.1.5 Herramientas para estructuras matemáticas . . . . . . . . . . . . . 25
4.1.6 Herramientas para el desarrollo web . . . . . . . . . . . . . . . . . 25
4.1.7 Herramientas para las pruebas . . . . . . . . . . . . . . . . . . . . 26
4.1.8 Otras herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 Resultados 27
5.1 Fundamentos teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1.1 Modelo estocástico . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1.2 Modelo de las anomalías para el fraude «Carrusel» . . . . . . . . . 32
5.1.3 Sistema de ranking . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.1.4 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.1 Gestor de anomalías . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.2 Gestor de ECDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.3 Gestor de densidad . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3 Experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.1 Volumen de los datos . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.2 Recursos hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.3 Tiempos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.4 Validación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
xii
6 Conclusiones 41
6.1 Objetivos alcanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Destrezas adquiridas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7 Lineas futuras 43
A Diagramas de los resultados automatizados 47
A.1 Diagramas de los factores anómalos por separado . . . . . . . . . . . . . . 47
A.2 Diagramas de los factores anómalos por pares . . . . . . . . . . . . . . . . 50
A.3 Diagramas de los factores anómalos por tripletas . . . . . . . . . . . . . . . 55
A.4 Diagramas de los factores anómalos por cuatripletas . . . . . . . . . . . . . 58
A.5 Diagrama con todos los factores anómalos . . . . . . . . . . . . . . . . . . 59
Referencias 61
xiii
Índice de cuadros
5.1 Factores para detectar el fraude «Carrusel» . . . . . . . . . . . . . . . . . 33
5.2 Factores para detectar el fraude «Carrusel» con su identificador único . . . 35
5.3 Tiempos de ejecución de las diferentes etapas que se pueden preprocesar . . 38
6.1 Objetivos alcanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
XV
Índice de figuras
3.1 Diagrama del funcionamiento del fraude «Carrusel» . . . . . . . . . . . . . 7
3.2 El menor ω conocido en función del tiempo tal que la multiplicación de ma-
trices tenga una complejidad de O(nω). . . . . . . . . . . . . . . . . . . . 18
5.1 Ejemplo de aplicar el algoritmo GFM a un grafo con relaciones . . . . . . . 28
5.2 Multiplicación de la matriz de anomalías por la matriz de la potencia perti-
nente de la matriz estocástica . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Crecimiento de las sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4 Multiplicación reiterada por la izquierda . . . . . . . . . . . . . . . . . . . 32
5.5 Multiplicación para la propagación inversa de los factores anómalos . . . . 32
5.6 Arquitectura del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.7 Diagrama UML de la clase abstracta para las anomalías . . . . . . . . . . . 35
5.8 Matriz estocástica creada a partir de los datos . . . . . . . . . . . . . . . . 37
5.9 Tiempos de ejecución del módulo ECDF con diversas dimensiones . . . . . 39
5.10 Tiempos de ejecución del módulo para obtener el k-ésimo vecino más cer-
cano con diversas dimensiones . . . . . . . . . . . . . . . . . . . . . . . . 39
A.1 Diagrama de caja para el factor anómalo 1 . . . . . . . . . . . . . . . . . . 47
A.2 Diagrama de caja para el factor anómalo 2 . . . . . . . . . . . . . . . . . . 48
A.3 Diagrama de caja para el factor anómalo 3 . . . . . . . . . . . . . . . . . . 48
A.4 Diagrama de caja para el factor anómalo 4 . . . . . . . . . . . . . . . . . . 49
A.5 Diagrama de caja para el factor anómalo 8 . . . . . . . . . . . . . . . . . . 49
A.6 Diagrama de caja para los factores anómalos 1 y 2 . . . . . . . . . . . . . . 50
A.7 Diagrama de caja para los factores anómalos 1 y 3 . . . . . . . . . . . . . . 50
A.8 Diagrama de caja para los factores anómalos 1 y 4 . . . . . . . . . . . . . . 51
A.9 Diagrama de caja para los factores anómalos 1 y 8 . . . . . . . . . . . . . . 51
A.10 Diagrama de caja para los factores anómalos 2 y 3 . . . . . . . . . . . . . . 52
A.11 Diagrama de caja para los factores anómalos 2 y 4 . . . . . . . . . . . . . . 52
A.12 Diagrama de caja para los factores anómalos 2 y 8 . . . . . . . . . . . . . . 53
A.13 Diagrama de caja para los factores anómalos 3 y 4 . . . . . . . . . . . . . . 53
XVII
A.14 Diagrama de caja para los factores anómalos 3 y 8 . . . . . . . . . . . . . . 54
A.15 Diagrama de caja para los factores anómalos 4 y 8 . . . . . . . . . . . . . . 54
A.16 Diagrama de caja para los factores anómalos 1, 2 y 3 . . . . . . . . . . . . 55
A.17 Diagrama de caja para los factores anómalos 1, 2 y 4 . . . . . . . . . . . . 55
A.18 Diagrama de caja para los factores anómalos 1, 2 y 8 . . . . . . . . . . . . 56
A.19 Diagrama de caja para los factores anómalos 2, 3 y 4 . . . . . . . . . . . . 56
A.20 Diagrama de caja para los factores anómalos 2, 3 y 8 . . . . . . . . . . . . 57
A.21 Diagrama de caja para los factores anómalos 3, 4 y 8 . . . . . . . . . . . . 57
A.22 Diagrama de caja para los factores anómalos 1, 2, 3 y 4 . . . . . . . . . . . 58
A.23 Diagrama de caja para los factores anómalos 1, 2, 4 y 8 . . . . . . . . . . . 58
A.24 Diagrama de caja para los factores anómalos 2, 3, 4 y 8 . . . . . . . . . . . 59
A.25 Diagrama de caja para los factores anómalos 1, 2, 3, 4 y 8 . . . . . . . . . . 59
xviii
Índice de listados
3.1 Algoritmo de la multiplicación matriz-vector en formato CSR . . . . . . . . 21
XIX
Listado de acrónimos
AEAT Agencia Estatal de Administración Tributaria
API Application Programming Interface
COO COOrdinate list
CPU Central Processing Unit
CSC Compressed Sparse Column
CSR Compressed Sparse Row
DOK Dictionary Of Keys
DSS Decision Support System
DYV Divide Y Venceras
ECDF Empirical Cumulative Distribution Function
GFM García Fraud Model
GIMP GNU Image Manipulation Program
GPU Graphics Processor Unit
HDD Hard Disk Drive
HNSW Hierarchical Navigable Small World
IO Investigación Operativa
IVA Impuesto sobre el Valor Añadido
LIL LIst of Lists
MTIC Missing Trader Intra-Community
NMSLIB Non-Metric Space Library
ONIF Oficina Nacional de Investigacion del Fraude
OO Orientada a Objetos
PIP Pip Installs Packages
RAE Real Academia Española
RAM Random Access Memory
REST REpresentational State Transfer
XXI
ROI Registro de Operadores Intracomunitarios
SCM Source Code Management
SPEA2 Strength Pareto Evolutionary Algorithm 2
SSD Solid-State Drive
TFM Trabajo Fin de Master
TIB Tebibyte
UML Unified Modeling Language
VAT Value-Added Tax
xxii
Capítulo 1
Introducción
EN este capítulo de introducción se pretende situar al lector, tanto en el contexto en el
que se va a desarrollar esta investigación, como en la solución propuesta a lo largo de
los capítulos posteriores.
1.1 Y2NTC, sistema de búsqueda de anomalías en estructuras gráfi-cas
La detección de anomalías se ha convertido en una instrumento muy importante en nume-
rosos ámbitos como la medicina, la seguridad, la ingeniería, el análisis de riesgos, etc. La
forma tradicional para tratar este tipo de problemas se basa en modelar las características
de cada entidad como un punto multidimensional pero, con el incremento de los datos de
naturaleza relacional, han aumentado el número de técnicas que permiten detectar anomalías
en estructuras gráficas.
Como ejemplo de aplicación, en este Trabajo Fin de Master (TFM) se han empleado datos
provenientes de la AEAT para detectar un tipo específico de fraude, el fraude «Carrusel».
Para poder hacer esta detección de anomalías, es preciso desarrollar un sistema que per-
mita al usuario analizar e interpretar los resultados obtenidos. El objetivo de este TFM es
crear un marco de trabajo, con su correspondiente herramienta, de ayuda a la decisión para
detectar y explicar anomalías aplicando teorías criminológicas.
1.2 Estructura del documentoEl presente trabajo ha sido elaborado según la estructura y normativa del Departamento de
Inteligencia Artificial de la Universidad Politécnica de Madrid para los TFM. A continuación
se enumeran los capítulos que conforman el documento junto con una breve explicación de
su contenido.
En el Capítulo 2 se describen de manera concisa los objetivos marcados, tanto princi-
pales como parciales, para solucionar el problema de detectar anomalías y en particular
1
el fraude «Carrusel».
En el Capítulo 3 se profundiza en los conceptos introducidos en el primer capítulo,
junto con las alternativas existentes.
En el Capítulo 4 se describen las herramientas utilizadas.
En el Capítulo 5 se describen los resultados y artefactos1 que se han ido obteniendo a
lo largo del TFM.
En el Capítulo 6 se recogen las conclusiones generales obtenidas a lo largo del TFM.
Finalmente, en el capítulo 7, se enumeran aquellas propuestas que pueden ser tenidas
en cuenta para un trabajo futuro.
1Producto tangible resultante del proceso de desarrollo de software
2
Capítulo 2
Objetivos e hipótesis de trabajo
EN este capítulo se explican los objetivos, tanto el principal como los parciales, plantea-
dos para este TFM, junto con el entorno de trabajo y las limitaciones existentes.
2.1 Objetivo principalEl objetivo principal de este TFM es crear un marco de trabajo para la detección de ano-
malías, junto con un sistema para el ejemplo concreto del fraude «Carrusel» que permita al
usuario analizar e interpretar los resultados obtenidos.
Dicho objetivo principal se puede desglosar en una serie de objetivos parciales según el
valor que tengan por sí mismos.
2.2 Objetivos parcialesPara alcanzar el objetivo principal se han planteado los siguientes objetivos parciales.
1. Identificar entidades anómalas en los datos proporcionados.
2. Explicar la razón por la que una entidad se ha considerado anómala.
3. Comprobar la efectividad del sistema.
4. Diseñar y crear un cliente web que permita analizar los resultados obtenidos propor-
cionados mediante la API (Application Programming Interface).
5. Diseñar y crear una nivel de datos que permita, a través de una API web, obtener lasanomalías.
2.3 Hipótesis de trabajoPara la realización de este TFM se considera que hay entidades defraudadoras en los datos
proporcionados y que siguen la «Teoría de Asociación Diferencial» (véase Sección 3.1.1).
3
Capítulo 3
Antecedentes
EN este capítulo se desglosa los conocimientos necesarios para poder desarrollar la in-
vestigación llevada a cabo en este TFM.
Para ello se empezará con los conceptos propios del dominio para poder definir el proble-
ma a tratar, seguido por los conceptos matemáticos que permitan establecer el modelo del
problema y, por último, los conceptos tecnológicos que permitan implementar la solución
del modelo creado.
3.1 Conceptos del dominioEn esta sección explicaremos aquellos conceptos del dominio relevantes para el entendi-
miento del trabajo realizado.
3.1.1 El fraudeSegún la Real Academia Española (RAE), la acepción que más se asemeja a la idea a tratar
es la siguiente:
Acto tendente a eludir una disposición legal en perjuicio del Estado o de terce-
ros.
– Definición de fraude, RAE
Otra definición la podemos encontrar en el Oxford Dictionary, aunque no difiere mucho:
Wrongful or criminal deception intended to result in financial or personal gain.
– Definición de fraude, Oxford Dictionary
Estas son algunas de las definiciones de «diccionario» que podemos encontrar. Si empe-
zamos a buscar definiciones más próximas de otros trabajos relacionados podemos encontrar
en (Van Vlasselaer, Bravo et al., 2015) la siguiente definición:
5
Fraud is an uncommon, well-considered, imperceptibly concealed, time-evolving
and often carefully organized crime which appears in many types of forms.
– Definición de fraude, Van Vlasselaer, Bravo et al., 2015
Dicha definición pone de manifiesto cinco características:
Poco común Es una situación rara en comparación con las operaciones legítimas.
Bien considerado Explotan todo lo posible el método empleado para defraudar hasta que
este es detectado.
Imperceptible Las operaciones fraudulentas suelen tener las mismas características que las
legítimas, por lo que es necesario utilizar información de entidades detectadas con
anterioridad como fraudulentas para comparar su comportamiento con la de las opera-
ciones «legítimas».
Evoluciona en el tiempo Tienen naturaleza dinámica, ya sea porque el «modus operandi»
del criminal ha cambiado o porque la propia sociedad legítima cambia su forma de
actuar, por lo que este tipo de «anomalías» se clasifican como sospechosas.
Curiosamente organizado Es necesario estudiar la propia estructura relacional de los frau-
des para conseguir una detección eficiente.
Para poder detectar comportamientos fraudulentos se han creado numerosas teorías cri-
minológicas, como la teoría del aprendizaje social (Grusec, 1992), la teoría del etiquetado
(Bernburg, 2009), la teoría del control social (Carver y Scheier, 1982), la teoría de la di-
suasión (Jervis, 1979), etc., aunque aquellas que han tomado más relevancia en los últimos
años han sido aquellas que tienen en cuenta factores relacionales, en especial la «Teoría de
Asociación Diferencial».
La «Teoría de Asociación Diferencial»
Teoría desarrollada por Edwin Sutherland con fuertes matices de la teoría de aprendizaje
social que recoge que el crimen es otro proceso que se enseña y, por ello, se realiza en grupos.
La teoría sostiene que el comportamiento de una persona es altamente influenciado por la
frecuencia de las relaciones efectuadas con otras personas que presentan un comportamiento
atípico o, en el caso que nos atañe, una violación de las normas.
La teoría original contaba con diez ideas principales y definía cuatro factores de riesgos
en las relaciones: la frecuencia, la duración, la prioridad y la intensidad pero, en (Burgess
y Akers, 1966), se reformula la teoría en nueve ideas principales y tres factores de riesgo:
la cantidad de refuerzo de una acción delictiva, la frecuencia o el número de refuerzos por
unidad de tiempo y la probabilidad de que un refuerzo afecte a la entidad relacionada.
6
El fraude fiscal referente al IVA
Como se ha especificado en numerosos artículos (Keen y Smith, 2006; Charlet y Owens,
2007; Gómez-Plana y Arzoz, 2008) el IVA (Impuesto sobre el Valor Añadido) 1 o VAT (Value-
Added Tax) es un impuesto bastante efectivo pero eso no impide que, como otros impuestos,
pueda ser vulnerable a su evasión y fraude.
Ya hace unos años se ha detectado un incremento de las pérdidas debido al fraude (Bar-
bone et al., 2013; Poniatowski, Bonch-Osmolovskiy y Belkindas, 2016), especialmente en
la Unión Europea dado que en 1992 abolieron este impuesto al realizar operaciones intra-
comunitarias.
El fraude «Carrusel» El fraude «Carrusel» o MTIC (Missing Trader Intra-Community)
(véase Figura 3.1) es uno de los fraudes referentes al IVA más conocido. Su funcionamiento
es sencillo y se basa en dos características, el gravamen a un tipo cero del IVA para las ex-
portaciones y el «pago en diferido» del IVA para las importaciones.
Figura 3.1: Diagrama del funcionamiento del fraude «Carrusel»Fuente: https://en.wikipedia.org/wiki/Missing trader fraud
Una empresa A realiza una venta intra-comunitaria de mercancía con gravamen a un tipo
cero a otra empresa B, denominada «missing trader», «comerciante desaparecido» o «tru-
cha», localizada en otro estado miembro. Esta empresa B vende a su vez la mercancía a una
tercera compañía denominada «broker» o «agente comercial» y por ello añade el IVA a la
1Tipo de impuesto indirecto enfocado hacia los consumidores. La idea original fue propuesta por un hombre
de negocios alemán llamado Wilhelm Von Siemens (Ebrill, 2001) en los años veinte.
7
venta realizada pero no lo paga a las autoridades pertinentes, sino que desaparece. Luego
la empresa C vuelve a vender la mercancía a la empresa A reiniciando el ciclo y, de esta
manera, reclamando el IVA resultante de la diferencia de la compra a la empresa B y la venta
a la empresa A.
Para dificultar la detección de este tipo de tramas también se suele añadir empresas legí-
timas, denominadas «buffers», entre la venta de la mercancía por la empresa «trucha» y la
venta de la mercancía a la empresa intra-comunitaria.
3.2 Conceptos matemáticos
En esta sección explicaremos aquellos conceptos matemáticos relevantes para el entendi-
miento del trabajo realizado.
3.2.1 GrafosSegún (Axler, Gehring y Ribet, 2000) un grafo G es un par ordenado (V (G), E(G)) for-
mado por un conjunto V (G) de vértices y un conjunto E(G), disjunto respecto V (G), de
aristas, junto con una función de incidencia ψG que asocia cada arista de G en un par no
ordenado de vértices de G, no necesariamente distinto. Si e es una arista y u son vértices
tales que ψG(e) = {u, v}, entonces se dice que e une u y v, y los vértices u y v son llamados
los finales de e. El número de vértices y de aristas en un grafo G se simboliza mediante v(G)
y e(G); estos dos parámetros son llamados el orden y el tamaño de G.
Tipos de grafos
Dependiendo del contexto puede ser útil redefinir la definición anterior de grafo, que es la
definición estándar.
Grafo no dirigido Tipo de grafo sin orientación en las aristas, es decir, la arista (x, y) es
idéntica a la arista (y, x).
Grafo dirigido Tipo de grafo con aristas dirigidas. Siendo (x, y) una arista dirigida de x a
y, se dice que x es la cabeza y que y es la cola.
Grafo simple Tipo de grafo no dirigido donde no se puede representar aristas múltiples2 o
bucles3.
Multigrafo Tipo de grafo no dirigido donde sí se puede representar aristas múltiples o bu-
cles.
Quiver Tipo de grafo dirigido donde sí se puede representar aristas múltiples o bucles.
2Las aristas múltiples, o aristas paralelas, son dos o más aristas incidentes a los mismos vértices, es decir,
que conectan los mismos vértices.3Los bucles son aristas que conectan un vértice consigo mismo.
8
3.2.2 Álgebra matricialLa teoría de matrices simplifica la modelización, desarrollo y aplicación de muchas aplica-
ciones actuales. En esta sección se desarrollará aquellos conceptos y herramientas necesarias
para el trabajo a realizar utilizando como referencia (Gentle, 2007).
Estructuras
Los vectores y las matrices son herramientas potentes para representar datos. En esta sec-
ción se explicarán algunas de estas representaciones.
Arrays Una array es una colección de datos estructurada con varias dimensiones, adoptan-
do la forma de una línea con una dimensión, un rectángulo con dos dimensiones, un ortoedro
o prisma rectangular con tres dimensiones, etc. Su número de dimensiones también se le
conoce como «rank».
Vectores Un vector es una tupla ordenada de escalares. El número de elementos de un
vector se define como «orden» o simplemente «longitud».
Vector unitario Tipo especial de vector, donde ei hace referencia al i.º vector unitario.
Está formado íntegramente por ceros exceptuando un uno que está situado en la i.ª posición
del mismo (véase Ecuación 3.1).
ei = (0, ..., 0, 1, 0, ..., 0). (3.1)
El «vector uno» El «vector uno» es un tipo especial de vector en el cual todos sus
elementos son unos y se representa mediante 1 o 1n. Una de sus aplicaciones es representar
la suma de todos los elementos de un vector (véase Ecuación 3.2):
1Tx =n∑
i=1
xi. (3.2)
Matrices Una matriz es un array bidimensional. Una matriz de tamaño n×m tiene n filas
y m columnas, que no son más que vectores. Aunque los vectores y las matrices son tipos
distintos, una matriz de tamaño 1 × m se califica como vector fila y una de tamaño n × 1
como vector columna. Dado que se puede encontrar tanto un vector columna como un vector
9
fila en la misma expresión, se suele elegir una de las notaciones y la contraria se define como
su transpuesta añadiendo el símbolo T como un superíndice.
Propiedades de las matrices
Esta sección tratará aquellas propiedades importantes de las matrices para el trabajo a
realizar.
Transposición de matrices La matriz transpuesta de una matriz es aquella cuya i.ª fila es
la i.ª columna de la matriz original y que la j.ª columna es la j.ª fila de la matriz original.
Se simboliza la matriz transpuesta añadiendo el símbolo T como superíndice de la matriz
original, es decir, que si A = (aij) entonces AT = (aji).
Suma de matrices Para la suma de dos matrices es necesario que ambas sean del mismo
tamaño y es igual a la suma de los elementos con indices iguales. Para simbolizar la suma de
dos matrices se usa el símbolo «+».
Multiplicación de matrices Aunque hay varios tipos de multiplicaciones de matrices la
más común es la multiplicación de Cayley. Si el número de filas de una matriz A es igual al
número de columnas de una matriz B, entonces el producto de Cayley de la matriz A por B
da como resultado una matriz C cuyos elementos son iguales a (véase Ecuación 3.3):
cij =
columnas(A)∑k=1
aikbkj, ∀i,j. (3.3)
Por ello, el resultado de multiplicar una matriz A de tamaño n ×m por una matriz B de
tamaño m× p da como resultado una matriz C de tamaño n× p.
Las propiedades de la multiplicación de matrices son las siguientes:
No es conmutativa, es decir, AB �= BA.
Es asociativa, es decir, A(BC) = (AB)C.
Es distributiva, tanto por la izquierda A(B + C) = AB + AC como por la derecha
(A+B)C = AC +BC.
La transposición de la multiplicación de dos matrices es igual a multiplicar las matri-
ces transpuestas en orden inverso, es decir, (AB)T = BTAT .
10
Autovalores y autovectores
La multiplicación de un vector por una matriz cuadrada puede dar como resultado a la
multiplicación de ese mismo vector por un escalar. En este caso, si se cuenta con una matriz
cuadrada A de tamaño n × n que multiplica a un vector v distinto de cero y el resultado
de la operación es igual a multiplicar dicho vector v por un escalar c (véase Ecuación 3.4)
entonces se dice que v es un autovector de la matriz A y, por otro lado, c es un autovalor de
la matriz A.
Av = cv. (3.4)
A dicho par, formado por el autovector v y el autovalor c de la matriz A, se dice que están
asociados o que forman un auto-par.
Autovectores izquierdos Tipo especial de autovector de A definido como w tal que cumple
la igualdad (véase Ecuación 3.5):
wTA = cwT . (3.5)
Por su propia definición, si una matriz es simétrica entonces cada autovector izquierdo
es un autovector. También, en el caso de que v sea un autovector de A y w un autovector
izquierdo de la misma matriz A pero con autovalores asociados distintos, entonces v y w son
ortogonales.
Matrices diagonalizables Si V es una matriz cuyas columnas correspondan a los autovec-
tores de A y C es una matriz diagonal cuyos elementos son los autovalores correspondientes
a las columnas de V , entonces según (véase Ecuación 3.4) se puede escribir como (véase
Ecuación 3.6):
AV = V C, (3.6)
por lo que si V es no singular se puede escribir (véase Ecuación 3.7):
A = V CV −1. (3.7)
11
La expresión anterior (véase Ecuación 3.7) representa la factorización diagonal de la ma-
triz A.
Potencias de matrices diagonalizables Una de las aplicaciones de la diagonalización
de matrices es que permite calcular las potencias de una matriz A de una forma eficiente
(véase Ecuación 3.8):
Ak = (V CV −1)k = (V CV −1) · (V CV −1) · · · (V CV −1)
= V C(V −1V )C(V −1V ) · · · (V −1V )CV −1
= V CkV −1.
(3.8)
Teorema de Perron-Frobenius
Si A es una matriz cuadrada no negativa e irreducible y el radio espectral ρ(A) = r
entonces se cumple una serie de propiedades:
r es un autovalor de A y es llamado «raíz de Perron».
La «raíz de Perron» es simple, es decir, la multiplicidad algebraica4 de la «raíz de
Perron» es uno.
La dimensión del auto-espacio5 de la «raíz de Perron» es uno, es decir, la multiplicidad
geométrica6 de r es uno.
El autovector asociado a r es positivo y es denominado el «vector de Perron».
Matrices estocásticas
Una matriz estocástica P es una matriz no negativa siempre que, si 1e representa un vector
columna con todos sus elementos a uno, P1e = 1e. Por su propia definición (1e, 1) es un
auto-par para todas las matrices estocásticas.
Una matriz estocástica puede no ser positiva y también puede ser o no irreducible ya que
(1,1) puede no ser la «raíz de Perron» y el «vector de Perron».
Las matrices estocásticas son bastante útiles ya que permiten definir cadenas de Markov
(véase Sección 3.2.3).
3.2.3 Investigación OperativaLa investigación se podría dividir en dos subconjuntos: la investigación pura y la inves-
tigación aplicada. Por un lado, la investigación pura se encarga de conocer mejor las cosas
4La multiplicidad algebraica de un autovalor λ de A es el número de veces que λ aparece como una raíz de
pA.5El auto-espacio de A para λ es el espacio nulo A− λI , simbolizado como εA(λ).6La multiplicidad geométrica de A es la dimensión de εA(λ).
12
mientras que la investigación aplicada se centra en como hacerlas mejor.
La metodología encargada de plantear y solucionar problemas referentes a la eficiencia,
rendimiento económico, etc. es la denominada Investigación Operativa (IO).
Modelización
Una característica fundamental de la IO es la construcción de un modelo matemático del
problema para estudiar su comportamiento en los aspectos buscados.
Un modelo no es más que una abstracción o simplificación del conjunto o subconjunto
de la realidad que nos interesa estudiar. Dado que se busca obtener una simplificación de la
realidad, ya sea porque es difícil recrear la realidad de manera exacta o que ciertos compo-
nentes del sistema son irrelevantes para el propósito buscado, hay que mantener un balance
entre simplicidad y potencia del modelo.
Modelos determinísticos Grupo de modelos donde las mismas entradas producirán inva-
riablemente las mismas salidas o resultados.
Modelos estocásticos Familia de modelos que permiten tratar con la incertidumbre me-
diante distribuciones de probabilidad.
Proceso de Markov Un proceso de Markov es un fenómeno aleatorio dependiente del
tiempo para el cual se cumple una propiedad específica: la probabilidad condicional sobre el
estado presente, futuro y pasado del sistema son independientes.
3.2.4 Análisis de decisiones multicriterioEl análisis de decisiones multicriterio es una potente herramienta para evaluar un conjunto
de múltiples criterios aunque estos sean de naturaleza conflictiva.
Conceptos básicos
Para las próximas secciones es necesario definir una serie de conceptos y definiciones
(Romero, 1996).
Atributo Valor con el que el centro decisor se enfrenta a un determinado problema decisio-
nal.
Objetivo Dirección de mejora de un atributo considerado.
Nivel de aspiración Nivel aceptable de logro de un determinado atributo.
13
Meta Combinación de un atributo con un nivel de aspiración.
Criterio Conjunto de atributos, objetivos o metas que se consideran relevantes para un de-
terminado problema decisional.
Eficiencia de Pareto La eficiencia de Pareto u optimalidad paretiana es un concepto de la
teoría económica aunque también tiene aplicaciones en ingeniería y diferentes ciencias
sociales.
El término recibe su nombre del economista italiano Vilfredro Pareto, quien lo in-
trodujo en 1896. En su formulación inicial, Pareto consideró que una colectividad se
encuentra en un estado óptimo si ninguna persona de esa colectividad puede mejorar
su situación sin empeorar la situación de alguna otra persona. Esta definición puede
transferirse fácilmente al análisis de decisiones multicriterio sustituyendo el concepto
de «sociedad» o «colectivo» de personas por el de conjunto de criterios.
Normalización de los objetivos En algunos métodos multicriterio es necesario que los di-
ferentes criterios en consideración estén normalizados. Esto se puede deber a:
El uso de diferentes unidades puede conllevar a que la comparación o agregación
de diferentes criterios carezcan de significado.
La diferencia de la escala de los valores alcanzables por los diversos criterios
puede conllevar a soluciones sesgadas hacia aquellos criterios con valores alcan-
zables mayores.
Tiene una mayor carga semántica la comparación de los criterios normalizados
por parte del centro decisor.
Ponderación preferencial de los objetivos Debido a que no todos los criterios de un pro-
blema decisional tienen la misma importancia, es necesario añadir en muchos de estos
problemas unos pesos o indicadores de las preferencias relativas del centro decisor de
algunos criterios respecto a otros. Por esta razón, es necesario interactuar lo máximo
posible en esta fase con el centro decisor.
Métodos de optimización multiobjetivo
La programación multiobjetivo u optimización vectorial es un enfoque multicriterio bas-
tante potente cuando se quiere optimizar una serie de objetivos limitados por un conjunto de
restricciones. Dado que los objetivos pueden tener naturaleza conflictiva, la idea del método
es elegir entre un conjunto de soluciones eficientes u óptimas de Pareto.
14
Método de las ponderaciones Método propuesto por Zadeh en 1963 (Zadeh, 1963) que
se basa en ponderar los objetivos (véase Ecuación 3.9):
Maximizar f(x) =
número de objetivos∑k=1
λkfk(x), (3.9)
s.a:
x ∈ S
Método de las ε-restricciones Se define aquella función l objetivo más importante des-
de el punto de vista del decisor junto con unas cotas inferiores para el resto de funciones
objetivos.
Maximizar fl(x) (3.10)
s.a:
x ∈ S
fk(X) ≥ εk, ∀k �= l
Programación por metas Método ideado por Charnes y Cooper en 1995 (Charnes, Cooper
y Ferguson, 1955) que propone definir una serie de metas o niveles de aspiración para ca-
da uno de los objetivos a alcanzar, obteniendo una solución óptima cuando se minimiza la
desviación de las metas propuestas.
Minimizar f(x) =
número de objetivos∑i=1
∣∣∣fi(x)− f̂i
∣∣∣ (3.11)
s.a:
x ∈ S
siendo f̂i la meta establecida, por el decisor, al i-ésimo objetivo fi.
SPEA2 El Strength Pareto Evolutionary Algorithm 2 (SPEA2) (Zitzler, Laumanns, Thiele
et al., 2001) es una técnica para encontrar o aproximar el frente de Pareto en problemas de
optimización multiobjetivo cuya función de optimización permite tener un control muy fino
del frente de Pareto junto con un control de la densidad.
15
La función de densidad está compuesta por dos funciones auxiliares:
El «raw fitness» Es el encargado de calcular el grado de dominancia de una entidad respecto
al resto, para ello hay que definir la funcion auxiliar p(x) = |{y|y ∈ S∧x � y}| donde
|·| denota la cardinalidad de un conjunto y � denota la relacion de dominacia de Pareto.
Dado la función p(x) el «raw fitness» se puede definir como (véase Ecuación 3.12):
r(x) =∑
y∈S,y�x
p(y) (3.12)
La función de densidad Dado que en el caso de que varias entidades no se dominen según
la dominacia de Pareto es necesario contar con información de la densidad para aque-
llos casos con el mismo «raw fitness». Para ello se utiliza la distancia al k vecino más
cercano de cada entidad i, simbolizandolo como σki , siendo k =
√|S| (Silverman,
1986) (véase Ecuación 3.13):
d(x) =1
σkx + 2
. (3.13)
De esta manera el objetivo final es (véase Ecuación 3.14):
Minimizar f(x) = r(x) + d(x) (3.14)
s.a:
x ∈ S
3.3 Conceptos tecnológicos
En esta sección se hará un repaso de aquellos conceptos necesarios desde el punto de vista
tecnológico para la realización de esta investigación.
3.3.1 Sistemas de detección de anomalíasLos defraudadores intentan pasar desapercibidos por lo que se han tenido que idear técni-
cas que consigan mirar a través de patrones a simple vista normales. Algunas de las vertientes
investigadas pasan por la utilización de Técnicas de Aprendizaje Automático, Técnicas de
Aprendizaje Supervisado y Análisis de Redes Sociales (Li et al., 2014; Akoglu, McGlohon
y Faloutsos, 2010; Moonesinghe y Tan, 2008; Yan y Eidenbenz, 2014; Jiang et al., 2014;
Van Vlasselaer, Eliassi-Rad et al., 2016).
16
3.3.2 Sistemas de ayuda a la decisiónLos sistemas de ayuda a la decisión o DSS (Decision Support System) tienen como objetivo
proporcionar un soporte para la toma de decisiones. Un DSS puede adoptar muchas formas
diferentes aunque en general se puede definir como un sistema informático utilizado para
servir de apoyo en vez de automatizar el proceso de toma de decisiones para que personas que
trabajan solas o en grupo puedan reunir información, e incluso conocimiento, para generar
alternativas y tomar decisiones.
3.3.3 Geometría computacionalLa geometría computacional es una rama de las ciencias de la computación dedicada al
estudio de aquellos algoritmos que pueden expresarse en términos de la geometría. Uno de
sus puntos principales es el estudio de la complejidad computacional dado que suelen tratar
sobre grandes conjuntos de datos, por lo que la diferencia entre una complejidad O(n2) y
una complejidad O(n log2(n)) puede ser la diferencia entre unos días a unos segundos de
computación.
Las dos ramas principales de la geometría computacional son:
Geometría computacional combinatoria Trata a los objetos geométricos como entidades
discretas y, según un libro de Preparata y Shamos, la fecha de la primera utilización
del término «geometría computacional» en este ámbito data de 1975 (Shamos, 1978;
Preparata, 1985).
Geometría computacional numérica Se centra en la representación de objetos del mun-
do real desde el punto de vista computacional y por ello se suele ver tanto como un
desarrollo de la geometría descriptiva como otra rama de los gráficos por ordenador.
En este sentido, el término «geometría computacional» ha estado en uso desde 1971
(Forrest, 1971).
«ECDF counting»
El problema del «ECDF (Empirical Cumulative Distribution Function) counting» es que
dado un conjunto S de n puntos asignar a cada punto x el número de puntos a los cuales
domina x. Este problema tiene dos subproblemas:
Calcular el número de individuos dominados para cada x ∈ S.
Dado un punto y, el cual puede no pertenecer a S, obtener el número de individuos
dominados por y rápidamente.
La complejidad computacional de resolver este problema puede variar según el paradigma
utilizado. Suponiendo que se cuenta con un conjunto de n individuos y k dimensiones por
individuo:
17
Fuerza Bruta Para cada individuo cuenta el número de individuos dominados. Es la forma
más sencilla de calcularlo y tiene una complejidad de O(k n2).
Divide Y Venceras (DYV) Divide el conjunto de individuos en dos o más subconjuntos, cal-
cula el «ECDF counting» de cada subconjunto y, por último, junta las soluciones par-
ciales para la solución global (Bentley, 1980). Tiene una complejidad de O(n logk−1(n)).
Sistemas distribuidos Se ha generalizado la solución DYV para una matriz de procesadores
(Dehne y Stojmenovic, 1988). Tiene una complejidad de O(√n).
3.3.4 MatricesMuchos problemas científicos de tipo computacional requieren del uso de vectores y ma-
trices, por lo que es necesario contar con herramientas que permitan tanto acceder a los
elementos tal cual como facilitar las operaciones de los vectores y matrices.
Multiplicación de matrices
Dado que la multiplicación de matrices es una operación fundamental en muchos algorit-
mos numéricos se ha convertido en un campo de investigación el desarrollo de algoritmos
eficientes para este objetivo, aplicando incluso enfoques dirigidos al uso de hardware espe-
cífico o de sistemas distribuidos.
Aunque la multiplicación de matrices tiene una complejidad O(n3) si se aplica su defini-
ción matemática, se sabe desde el trabajo de Strassen (Strassen, 1969) que dicho algoritmo
no es óptimo por lo que se ha investigado en como mejorar su complejidad (véase Figu-
ra 3.2).
Figura 3.2: El menor ω conocido en función del tiempo tal que la multiplicación de matrices
tenga una complejidad de O(nω).Fuente: https://en.wikipedia.org/wiki/Matrix multiplication algorithm
18
Algoritmo tradicional La definición de multiplicación de matrices asegura que si se mul-
tiplica una matriz A de tamaño n×m por una matriz B de tamaño m× p, entonces los ele-
mentos de la matriz resultado C de tamaño n× p corresponden a (véase Ecuación 3.15):
cij =m∑k=1
aikbkj, ∀i,j. (3.15)
Algoritmo de Strassen Algoritmo de la familia DYV 7 para la multiplicación de matrices
con una complejidad O(n2,8074).
Su funcionamiento es el siguiente, siendo A y B dos matrices cuadradas de tamaño 2n×2n
y C el resultado de multiplicar ambas, entonces es posible particionar A, B y C en matrices
por bloques de igual tamaño
A =
[A1,1 A1,2
A2,1 A2,2
], B =
[B1,1 B1,2
B2,1 B2,2
], C =
[C1,1 C1,2
C2,1 C2,2
](3.16)
siendo Ai,j , Bi,j y Ci,j matrices cuadradas de tamaño 2n−1 × 2n−1 donde
C1,1 = A1,1B1,1 +A1,2B2,1,
C1,2 = A1,1B1,2 +A1,2B2,2,
C2,1 = A2,1B1,1 +A2,2B2,1,
C2,2 = A2,1B1,2 +A2,2B2,2.
(3.17)
Pero con esta redistribución sigue siendo necesarias ocho multiplicaciones para calcular
las matrices Ci,j , las mismas que con el algoritmo tradicional. Es en la siguiente redistribu-
ción donde se decrementa el número de multiplicaciones necesarias:
M1 := (A1,1 +A2,2)(B1,1 +B2,2),
M2 := (A2,1 +A2,2)B1,1,
M3 := A1,1(B1,2 −B2,2),
M4 := A2,2(B2,1 −B1,1),
M5 := (A1,1 +A1,2)B2,2,
M6 := (A2,1 −A1,1)(B1,1 +B1,2),
M7 := (A1,2 −A2,2)(B2,1 +B2,2).
(3.18)
7Paradigma de diseño algorítmico con gran relevancia basado en la resolución recursiva de un problema,
para ello se divide el problema original en dos o más subproblemas del mismo tipo o similar hasta que estos
sean lo suficientemente sencillos como para que se puedan resolver directamente. Al final, las soluciones de
cada uno de los subproblemas se combinan para obtener la solución del problema original.
19
al utilizar Mk para expresar Ci como
C1,1 = M1 +M4 −M5 +M7,
C1,2 = M3 +M5,
C2,1 = M2 +M4,
C2,2 = M1 −M2 +M3 +M6.
(3.19)
Matrices dispersas
Las matrices dispersas son un tipo de matrices donde la mayoría de sus elementos son ce-
ros y se cuantifican con el nivel de dispersidad como el número de elementos nulos dividido
entre el número total de elementos.
Dicho tipo de matrices permiten tratar con problemas donde los algoritmos tradicionales
de matrices no son viables, ya sea por la memoria o por el tiempo de cómputo necesario.
Estructuras de datos Las matrices densas se suelen representar como un array bi-dimensional,
donde cada una de las entradas del array representa al elemento ai,j , donde normalmente i
es el índice de la fila (de arriba a abajo) y j representa el índice de la columna (de izquierda
a derecha).
Dada su naturaleza dispersa, es posible reducir el uso de memoria almacenando única-
mente las entradas con valores distintos a cero. Según el tipo de formato se pueden dividir
en eficientes desde el punto de vista de la modificación de elementos (DOK, LIL, COO, etc.)
y las eficientes desde el punto de vista de las operaciones con matrices (CSR, CSC, etc.).
Dictionary Of Keys (DOK) Estructura que hace uso de un diccionario8 para enlazar pa-
res (fila, columna) con su valor correspondiente. Aunque son eficientes a la hora de modificar
la matriz tienen carencias para obtener los elementos en orden.
LIst of Lists (LIL) Almacena normalmente una lista por fila y, dicha lista, está forma-
da por pares (columna, valor). Normalmente las listas están ordenadas por el índice de la
columna para permitir una rápida búsqueda.
COOrdinate list (COO) Almacena las entradas en una lista como tuplas (fila, columna,
valor), donde normalmente están ordenadas según la tupla (fila, columna) para permitir una
rápida búsqueda de los elementos.
8Contenedor asociativo que enlaza claves, normalmente únicas, con valores. Normalmente las implementa-
ciones de este tipo de estructura de datos suelen hacer uso de «tablas hash» o árboles.
20
Compressed Sparse Row (CSR) Estructura de datos creada a mediados de los años se-
senta (Buluç et al., 2009) que representa la matriz como tres arrays unidimensionales, que
guardan los valores distintos a cero, el número de elementos distintos a cero por fila y el
índice de las columnas. Este tipo de representación permite realizar multiplicaciones matriz-
vector de una forma eficiente aunque puede tener bastantes fallos de acceso a la cache (véase
Listado 3.1).
1 for i in range(dim):
2 sumatorio = 0.0
3 for j in range(row_ptr[i], row_ptr[i+1]):
4 sumatorio += val[j] * vector[col_ind[j]]
5 sol[i] = sumatorio
Listado 3.1: Algoritmo de la multiplicación matriz-vector en formato CSR
La definición de los tres arrays necesarios es la siguiente:
Array A Tiene una longitud igual al número de elementos distintos a cero y almacena los
valores de las entradas distintas a cero en orden «row-major», es decir, de izquierda a
derecha y de arriba a abajo.
Array IA Tiene una longitud igual al número de filas más uno y cada entrada i-ésima sim-
boliza el número de elementos no nulos que hay por debajo de la fila i-ésima. Su
definición recursiva es:
IA(i) =
⎧⎨⎩0, si i = 0
IA(i− 1) + |Mi−1,j �= 0|, en otro caso(3.20)
Array JA Tiene una longitud igual al número de elementos distintos a cero y almacena los
índices de las columnas asociadas a los valores distintos de cero.
Por ejemplo, los siguientes tres arrays corresponderían a la matriz (véase Ecuación 3.21):
A = [ 5 8 3 6 ]
IA = [ 0 0 2 3 4 ]
JA = [ 0 1 2 1 ]
⎛⎜⎜⎜⎜⎝0 0 0 0
5 8 0 0
0 0 3 0
0 6 0 0
⎞⎟⎟⎟⎟⎠ (3.21)
Compressed Sparse Column (CSC) Método similar al CSR, solo que en vez de repre-
sentar por columnas es por filas.
21
3.3.5 Arquitectura basada en capasLa arquitectura por capas es un modelo de desarrollo software cuyo objetivo primordial
es el desacoplamiento de las partes que componen un sistema software. Este tipo de plantea-
miento conlleva una serie de ventajas:
Se puede entender una capa como un todo, sin considerar las otras.
Las capas se pueden sustituir con implementaciones alternativas de un modo sencillo.
Se minimizan las dependencias entre capas.
Permite la reutilización de las capas, tanto en varios sitios del sistema como en otros
sistemas.
Arquitectura en tres capas
Una de las arquitecturas por capas más utilizadas es la arquitectura en tres capas, donde
cada capa se encarga de las funciones de presentación, dominio y persistencia. Estas capas
tienen las siguientes características:
Capa de presentación Se encarga de interaccionar con el usuario y facilitarle la informa-
ción a la capa de dominio.
Capa de dominio Se encarga de realizar la lógica del negocio y se comunica tanto con la
capa de presentación como con la de persistencia.
Capa de persistencia Se encarga de almacenar y acceder a los datos, prestando sus servi-
cios a la capa de dominio.
3.3.6 Arquitectura basada en nivelesA diferencia de la arquitectura basada en capas, que son separaciones virtuales, las sepa-
raciones de la arquitectura basada en niveles son a nivel físico, por lo que si se cuenta con
las tres capas (presentación, dominio y persistencia) en un mismo computador, se dice que
es una arquitectura de tres capas y un nivel.
22
Capítulo 4
Desarrollo
EN este capítulo se presenta el entorno tecnológico, junto con la enumeración de las
herramientas usadas para abordar la investigación.
4.1 Marco tecnológico de trabajo
En esta sección se describen las tecnologías posibles para abordar este proyecto.
4.1.1 Herramientas para la gestión de proyectosLas herramientas de gestión de proyectos sirven para proporcionar una estructura básica
sobre la que se pueda tener un control de las tareas y su estado, permitiendo así alcanzar
resultados mejores y controlables. Algunas de estas herramientas son:
Git Source Code Management (SCM) diseñado por Linus Torvalds pensando en la velocidad
y eficiencia a la hora de gestionar proyectos de todo tipo de tamaños.
Bitbucket Servicio web para proyectos que utilicen Mercurial (Mercurial 2017) y Git (Git
2017) como SCM. Fue lanzado en el año 2008 por la empresa Atlassian Software y
ofrece, de igual manera, planes comerciales y gratuitos.
Algunas de sus características son que está escrito en Python mediante el framework
web Django, que ofrece un número ilimitado de repositorios privados, tanto para cuen-
tas gratuitas como comerciales (aunque el número de miembros de un equipo no puede
ser mayor a cinco en las cuentas gratuitas), que se integra con Jira1 (Jira 2017), etc.
Conan Sistema de gestión de paquetes para instalar y administrar paquetes de software
escritos en C++.
CMake Herramienta multiplataforma de software libre para la generación y automatización
del código.
PIP Sistema de gestión de paquetes para instalar y administrar paquetes de software escritos
en Python.
1Sistema de seguimiento de errores
23
4.1.2 Herramientas para el modelado y desarrollo de softwareLas herramientas de modelado de software permiten tratar con la complejidad inherente de
los sistemas software. De esta manera se puede «visualizar» el sistema tanto por el equipo de
ingenieros como por el cliente, dado que permite contar con un mayor nivel de abstracción.
Algunas de estas herramientas son:
Dia Aplicación de propósito general para la creación de diagramas software que permite mo-
delar diagramas de UML (Unified Modeling Language), diagramas de entidad-relación,
etc.
Vim Versión mejorada del editor de texto Vi. Fue creado por Bill Joy en 1976 y entre sus
características más peculiares está que es un editor modal y que no es necesario usar
ni el ratón ni las teclas de dirección para editar archivos.
4.1.3 Herramientas para la elaboración de la documentaciónLas herramientas de ofimática han sido una parte esencial de los ordenadores desde que se
desarrollaron. Algunas de estas herramientas son:
LibreOffice Calc Hoja de cálculo de código abierto que forma parte del paquete de software
LibreOffice y que es una bifurcación del proyecto Openoffice.org.
LATEX Sistema de composición de textos orientado a la creación de documentos escritos
que presenten una alta calidad tipográfica. Dado que tiene características enfocadas a
la creación de documentos técnicos y científicos se ha convertido en un estándar «de
facto» a la hora de publicar documentos científicos.
BIBTEX Herramienta auxiliar a LATEX que facilita la gestión y maquetación de la bibliografía.
GIMP Programa libre y gratuito de edición de imágenes de mapa de bits. Contiene herra-
mientas frecuentes en el retoque y edición de imágenes; dibujo de formas libres, cam-
biar el tamaño, recortar, hacer fotomontajes, convertir a diferentes formatos de imagen,
etc.
Vim-LaTex Proyecto cuya finalidad es integrar el potente conjunto de herramientas que
la comunidad de Vim ha desarrollado en un paquete amigable, facilitando producir
documentos LATEX desde Vim.
4.1.4 Lenguajes de propósito generalSe llaman lenguajes de propósito general a aquellos lenguajes de programación cuyos pro-
cedimientos, instrucciones y estructuras de datos permiten resolver todo tipo de problemas.
Algunas de estas herramientas son:
C++ Lenguaje de programación diseñado para extender la funcionalidad del lenguaje de
programación C respecto a la programación Orientada a Objetos (OO).
24
Python Lenguaje de programación interpretado multi paradigma, cuya filosofía se basa en
una sintaxis que favorezca el código legible.
JavaScript Lenguaje de programación interpretado, orientado a objetos y débilmente tipa-
do. Fue creado para usarse en el lado del cliente o dicho de otra forma, en un navegador
web.
4.1.5 Herramientas para estructuras matemáticasEs necesario contar con herramientas que faciliten tratar con estructuras matemáticas.
Armadillo Librería de álgebra lineal par el lenguaje de programación C++ que permite
aplicar de un modo eficiente diversos tipos de cálculos (Sanderson y Curtin, 2016).
Boost Graph Librería, que forma parte del conjunto de bibliotecas Boost, enfocada a so-
lucionar problemas computacionales relacionados con la abstracción matemática de
estructuras gráficas.
4.1.6 Herramientas para el desarrollo webDado que tanto las fases de un desarrollo web, como los lenguajes y frameworks usados,
son muy extensos y variados, es necesario contar con herramientas específicas para cada
parte. Algunas de estas herramientas son:
Pistache Framework para la creación, tanto en el lado del cliente como del servidor, de
recursos REST (REpresentational State Transfer) en el lenguaje de programación C++.
Django Framework Python de alto nivel centrado en un rápido desarrollo y en un diseño
limpio y pragmático. Dado que está basado en un caso real tiene muy en cuenta los
problemas existentes al realizar desarrollos web.
Bootstrap Framework para diseño «FrontEnd»2 de sitios y aplicaciones web. Contiene
plantillas de diseño con tipografía, formularios, botones, cuadros, menús de navega-
ción y otros elementos de diseño basado en HTML y CSS, así como extensiones de
JavaScript adicionales.
Sigma.js Framework JavaScript especializado en el dibujado de estructuras gráficas en na-
vegadores web, por lo que cuenta con facilidades tanto a la hora de «renderizar»3 como
de manipular el grafo.
D3.js Framework JavaScript destinado a la manipulación de documentos basándose en sus
datos.
2Se puede traducir como fachada y es una especialidad para el desarrollo web que se centra en la interfaz
web, es decir, permite que el usuario pueda interactuar con nuestro sistema3Adaptación al español del verbo inglés render que define al proceso de cálculo, más o menos complejo,
realizado por un ordenador para producir una imagen o secuencia de imágenes.
25
4.1.7 Herramientas para las pruebasLas pruebas permiten comprobar de manera empírica determinados aspectos de un sistema
software. Algunas de estas herramientas son:
Catch Framework basado en cabeceras para la creación de tests en el lenguaje de progra-
mación C++.
4.1.8 Otras herramientasAquí se describen otras herramientas necesarias en el contexto del trabajo pero que no
encajan con ninguno de los grupos anteriores. Algunas de estas herramientas son:
Virtualenv Herramienta que permite crear entornos virtuales para separar las dependencias
existentes entre diferentes proyectos Python, es decir, soluciona que un proyecto X
necesite un módulo con versión 1.x, pero el proyecto Y necesite la versión 3.x.
Boost Sort Librería, que forma parte del conjunto de bibliotecas Boost, enfocada a ordenar
elementos y que tiene un rendimiento superior a la función de ordenación de la librería
estándar de C++, aproximadamente el doble.
RocksDB Base de datos embebida4 de alto rendimiento para datos de clave-valor. Es una
bifurcación5 de LevelDB optimizada para utilizar múltiples núcleos de CPU y hacer
un uso eficiente de dispositivos de almacenamiento rápido como unidades Solid-State
Drive (SSD).
Non-Metric Space Library (NMSLIB) Librería eficiente multiplataforma escrita en C++ pa-
ra la búsqueda de similitudes.
4Las bases de datos embebidas se caracterizan por carecer de servidor, estar integradas en la propia aplica-
ción y utilizar ficheros locales como medio de almacenamiento.5Una bifurcación o fork, en el ámbito del desarrollo de software, es la creación de un proyecto en una
dirección distinta de la original tomando el código fuente de un proyecto ya existente.
26
Capítulo 5
Resultados
EN este capítulo se desarrollan las etapas sobre las cuales se ha dividido la investiga-
ción. Empezando por los fundamentos teóricos, seguido de la implementación de los
sistemas requeridos para la parte teórica y, por último, los resultados de los experimentos
realizados para contrastar la hipótesis definida en el Capítulo 2.
5.1 Fundamentos teóricosEn esta sección se definen los fundamentos teóricos desarrollados para la creación de esta
investigación.
5.1.1 Modelo estocásticoEn esta sección se define el modelo estocástico elegido para la investigación en función
de los factores de la «Teoría de Asociación Diferencial» (véase Sección 3.1.1).
Según (Burgess y Akers, 1966) la fuerza de un comportamiento criminológico está rela-
cionado directamente con la cantidad, frecuencia y probabilidad del refuerzo de otras inter-
acciones sociales. Por ello estas características se van a modelar de la siguiente manera.
Cantidad Cada entidad obtendrá un valor que simbolizará la existencia o no de una anoma-
lía, la cual se tiene que definir en función del conocimiento del dominio.
Frecuencia Dependerá del número de relaciones que tenga una entidad respecto el resto.
Para tener en cuenta la cantidad de información que proporciona cada relación o su
entropía (Shannon, 2001), se aplica una función importancia(n) al número de rela-
ciones existentes, en este caso importancia(n) = 1+ log2(n) ya que el establecer una
conexión con una entidad aporta bastante información, pero si el número de conexio-
nes es muy elevado empieza a disminuir la cantidad de información que aporta.
Probabilidad Cada entidad, a lo largo del paso del tiempo, enseña al resto algo de su cono-
cimiento delictivo y, a su vez, el mismo conocimiento va quedándose desfasado o se va
perdiendo. Debido a la dificultad de enseñar algo este conocimiento va aprendiéndose
a lo largo del paso del tiempo y por ello no es algo inmediato. Para modelar este con-
cepto una entidad «enseña», con una baja probabilidad 1− p, su conocimiento al resto
y al mismo tiempo este conocimiento va quedándose desfasado, o lo que es lo mismo,
27
que dicho conocimiento sigue teniendo validez, con una alta probabilidad p = 0,8.
Dicho comportamiento se modelará como una matriz estocástica con el algoritmo deno-
minado GFM (García Fraud Model), encargado de transformar el grafo de las relaciones
existentes entre entidades a un modelo estocástico de Markov (véase Figura 5.1).
Figura 5.1: Ejemplo de aplicar el algoritmo GFM a un grafo con relaciones
Antes de definir el procedimiento que sigue el algoritmo (véase Ecuación 5.4) es necesario
definir una serie de elementos previos (véase Ecuaciones 5.1~5.3):
vecinos(x) = {y ∈ VG|(x, y) ∈ EG}, (5.1)
importanciaDeLaRelacion(x, y) = importancia(|(x, y) ∈ EG|) (5.2)
donde | · | denota la cardinalidad de un conjunto e
importanciaRespecto(x, y) =importanciaDeLaRelacion(x, y)∑vecino
vecinos(x) importanciaDeLaRelacion(x, vecino).
(5.3)
28
GFM(i, j) =
⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩
1, si i = j y 0 = |vecinos(i)|p, si i = j , 0 �= |vecinos(i)| y j /∈ vecinos(i)
p+ (1− p) ∗ importanciaRespecto(i, j), si i = j y j ∈ vecinos(i)
(1− p) ∗ importanciaRespecto(i, j), si i �= j y j ∈ vecinos(i)
0, en otro caso
(5.4)
A continuación se hará una explicación textual de cada uno de los casos del GFM respecto
al ejemplo anterior (véase Figura 5.1):
Caso 1 Corresponde a un vértice que no tiene ninguna relación y por ello el factor anómalo
se mantiene constante, se representa mediante una conexión al propio vértice con peso
uno y un ejemplo de ello seria el vértice D.
Caso 2 Corresponde al peso de la retroalimentación de un vértice que tiene uno o varios
vecinos pero ninguno es el propio vértice, se representa mediante una conexión al
propio vértice con peso p y un ejemplo de ello seria tanto el vértice B como el C.
Caso 3 Corresponde al peso de la retroalimentación de un vértice que tiene uno o varios
vecinos y al menos uno de ellos es hacia el propio vértice, se representa mediante una
conexión al propio vértice con un peso p junto con la importancia respecto al mismo
vértice y un ejemplo de ello seria el vértice A.
Caso 4 Corresponde al peso de un vértice respecto a uno de sus vecinos siempre y cuando
su vecino no sea el propio vértice, se representa mediante una conexión al vecino con
un peso igual a la importancia respecto al mismo y un ejemplo de ello seria la arista
(C,B).
Caso 5 En otro caso no existe ninguna arista, para ello se modela mediante un peso cero a
la arista imaginaria.
Otros trabajos de modelos estocásticos para la búsqueda de anomalías en grafos, como
(Moonesinghe y Tan, 2008), se basan en construir una matriz estocástica irreducible y ape-
riódica ya que según el teorema de Perron-Frobenius (véase Sección 3.2.2) solo tienen una
única distribución de probabilidad de equilibrio, que corresponde con el autovector asociado
al autovalor con valor más alto, que tiene que ser 1. Las razones del porqué no se ha optado
por un modelo de este tipo son:
Hacen uso de un modelo de índices globales de similitud (Lü y Zhou, 2011), por lo que
no se considera que pueda detectar organismos aislados respecto al resto como sería de
29
esperar de una entidad fraudulenta. Para ello se ha optado por un enfoque quasi-local
para obtener las mejores cualidades de los índices locales y los globales.
Es difícil explicar las probabilidades añadidas artificialmente para la creación de la
matriz irreducible y aperiódica, dado que aunque se podrían marcar como «descono-
cidas» no tienen peso semántico.
Cálculo e interpretación del modelo
El cálculo del modelo se consigue mediante la multiplicación de la matriz de anomalías
por la potencia pertinente de la matriz estocástica obtenida mediante el GFM (véase Figu-
ra 5.2).
Figura 5.2: Multiplicación de la matriz de anomalías por la matriz de la potencia pertinente
de la matriz estocástica
Cada una de las filas de la matriz simboliza la probabilidad que tiene una entidad i de
propagar una anomalía a otra entidad j y, por otro lado, las columnas de una entidad j
simbolizan la proporción que tiene una entidad i de afectar a la entidad j.
Por ello se usará las filas para obtener la influencia a lo largo del tiempo sobre el resto de
nodos y las columnas para obtener el grado de influencia que tiene cada entidad respecto a
una en concreto.
Tiempo «virtual»
El tiempo que se ha tomado en este modelo estocástico se define como virtual dado que
solo simboliza el incremento de la zona de influencia de una entidad respecto al resto. Dado
que se quiere poder ver tanto influencias cercanas como más globales se ha optado por usar
una sucesión con un crecimiento exponencial para poder apreciar los dos tipos. Para esta
investigación se ha pensado en dos (véase Figura 5.3):
Sucesión de la potencia de dos Se adapta a la sucesión buscada y permite realizar la poten-
ciación rápida de matrices.
30
Secuencia de Fibonacci Se adapta a la sucesión buscada, además que tiene un lento creci-
miento en las primeras etapas.
Figura 5.3: Crecimiento de las sucesiones
Brecha entre la teoría y la práctica
Aunque en la teoría la potenciación rápida de matrices permite tener toda la información
necesaria para el análisis, en la práctica es un problema intratable cuando el tamaño de la
matriz es excesivamente grande, por dos motivos principalmente:
Tiempo de cómputo Uno de los mejores algoritmos para la multiplicación de matrices
(véase Sección 3.3.4) tiene una complejidad de O(n2,8074).
Espacio necesario El espacio necesario, en el peor de los casos, para almacenar la matriz
estocástica es O(n2). En el caso de que se contara con 1 millón de entidades, que
cada valor se representa mediante un float (4 bytes) y que hay que almacenar unas 10
matrices el espacio necesario sería de 36.38 TIB.
Una de las posibles soluciones, pensadas para este problema, fue la de descomponer la
matriz por sus autovalores y autovectores, ya que elevar una matriz diagonalizable es senci-
llo (véase Sección 3.2.2). Pero este tipo de solución solo soluciona el problema del tiempo
de cómputo, siguiendo el problema del espacio.
Por esos motivos se ha optado por utilizar una estructura de datos para matrices dispersas,
dado que el porcentaje de elementos no nulos para los datos suministrados es del 0.00034 %,
y realizar multiplicaciones reiteradas del tipo matriz-vector por la parte de la izquierda (véase
Figura 5.4). Aunque de esta forma sea más lento, debido a que no se busca alcanzar grandes
potencias y a que se pueden precalcular los resultados, no supone ningún impedimento y
permite que la implementación sea posible.
31
Figura 5.4: Multiplicación reiterada por la izquierda
El único problema con esta solución es que no se puede saber la influencia que ha tenido
el conjunto de entidades sobre la entidad a analizar dado que solo se va calculando el nivel
de anomalía por entidad. Para solucionarlo se realizará la propagación inversa de los factores
anómalos del nodo elegido en el mismo momento en el que se pida dicha información.
Propagación inversa de los factores anómalos La propagación inversa recae en calcular
el porcentaje del nivel de anomalía que se distribuye para una entidad en concreto. Para ello
se realiza otra multiplicación matriz-vector pero, esta vez, el vector está situado a la derecha
de la matriz estocástica (véase Figura 5.5) y el vector está representado mediante un vector
unitario, donde el i es el identificador de la entidad a la cual calcular su influencia.
Figura 5.5: Multiplicación para la propagación inversa de los factores anómalos
5.1.2 Modelo de las anomalías para el fraude «Carrusel»Para poder explicar textualmente la razón por los que se ha definido una entidad como
anómala se han definido una serie de factores determinantes a la hora de detectar el fraude
«Carrusel», dichos factores asignan un valor de anomalía a cada una de las entidades o nodos
del grafo (véase Cuadro 5.1).
32
Nombre Descripción Cálculo Objetivo
Importancia en el entornoFactor que solo tiene en cuenta la importancia de
las entidades respecto al tiempo «virtual».
Asigna un valor constante, es este caso uno, a todas
las entidades.Maximizar
Es una entidad
intra-comunitaria
Debido a que la entidad que provee la mercancía,
con la que se realiza el fraude, tiene que ser una
entidad intra-comunitaria según se define el fraude
«Carrusel».
Asigna un valor constante, en este caso uno, a las
entidades intra-comunitarias.Maximizar
Es una entidad joven respecto a
la primera vez que pudo realizar
operaciones intra-comunitarias
Algunas entidades pueden haber sido creadas para
llevar a cabo este tipo de fraude, por lo que el
tiempo que ha pasado entre la creación de la
empresa y su registro para realizar operaciones
intra-comunitarias, es importante para su detección.
Se calcula la diferencia, en años, respecto al
registro para realizar operaciones
intra-comunitarias y la fecha de creación de la
empresa. En el caso de haber varios registros de
operaciones intra-comunitarias se tiene en cuenta el
año de registro mínimo.
Minimizar
IVA declarado en el 2015
Dado que se obtiene el IVA de los productos
comerciados para terceros, cuanto más IVA se
reclame mayor es la probabilidad de que una
entidad sea fraudulenta.
En el caso de que se conozca el IVA declarado en el
2015, se devuelve para cada entidad el IVA
declarado en ese año.
Maximizar
Porcentaje de IVA entre pagos
declarados en el 2015
Cuanto mayor sea el porcentaje de los pagos
declarados respecto al IVA declarado por una
entidad en el 2015, mayor es la probabilidad que
una entidad defraude.
En el caso de que se conozca tanto el IVA como los
pagos declarados en el 2015, se devuelve para cada
entidad el IVA declarado entre los pagos declarados
en ese año.
Maximizar
Es una entidad joven
Algunas entidades pueden haber sido creadas para
llevar a cabo este tipo de fraude, por lo que si una
entidad se ha creado recientemente es más probable
que pueda ser una entidad fraudulenta.
Se devuelve en el caso de que se conozca el año en
el que se ha tenido constancia de la existencia de la
entidad.
Minimizar
Número de empleadosUna entidad utilizada para fines fraudulentos
seguramente tendrá un bajo número de trabajadores.
En el caso de que se conozca el número de
trabajadores de una empresa se devuelve el mismo.Minimizar
Ha cometido anteriormente
fraude
Una entidad que ha cometido fraude es probable
que haya realizado operaciones con otras entidades
fraudulentas.
Se asigna un valor constante, en este caso uno, a las
entidades que se les ha dado de baja del ROI por
fraudulentas.
Maximizar
Se ha detectado anteriormente
como «trucha»
Una entidad que se ha detectado como «trucha» es
probable que haya realizado operaciones con otras
entidades fraudulentas.
Se asigna un valor constante, en este caso uno, a las
entidades detectadas como «truchas».Maximizar
Cuadro 5.1: Factores para detectar el fraude «Carrusel»
33
5.1.3 Sistema de rankingPara poder ordenar las entidades en función de la posibilidad de que sean fraudulentas se
ha utilizado la función de «fitness» del SPEA2 (véase Sección 3.2.4) con algún cambio. Dado
que los objetivos están definidos en escalas diferentes se ha aplicado una normalización de
los mismos, este paso no es necesario para calcular la dominancia de Pareto pero es necesaria
para la etapa del cálculo de la densidad. Para la normalización se ha utilizado la puntuación
estándar1.
Dado que el modelo estocástico solo sirve cuando el objetivo es de maximización se des-
plazan los valores en función de su valor mínimo o máximo posible, esto ya según sea un
problema de maximización o minimización correspondientemente. De esta manera todos los
objetivos de las anomalías se convierten en maximización donde el valor mínimo o descono-
cido es cero.
5.1.4 ArquitecturaPara la arquitectura se ha elegido una arquitectura de tres niveles (véase Figura 5.6):
Nivel de cliente Es el que consume los recursos publicados por el servicio REST o en el
caso de utilizar un cliente web también los ficheros de la página web.
Nivel de servidor web Se ha utilizado Django como framework web dado que permite desa-
rrollar sitios web rápidamente y con facilidad.
Nivel de servicio REST Es el encargado de calcular el modelo estocástico y hacerlo público
mediante una API REST. Debido a la cantidad de datos, a la complejidad de los algo-
ritmos utilizados y a la existencia de librerías existentes se ha decantado en realizarla
en el lenguaje C++.
Figura 5.6: Arquitectura del sistema
1La puntuación estándar o standard score es el número de desviaciones típicas, teniendo en cuenta el signo,
que toma un valor de una población observada por encima de la media de dicha población.
34
5.2 ImplementaciónEn esta sección se explican aquellos detalles de la implementación que se han visto más
importantes, por ello el único nivel que se va a explicar va a ser el nivel del servicio REST.
5.2.1 Gestor de anomalíasEs el encargado de orquestar a los módulos del subsistema, para ello sigue el patrón fa-
chada.
Anomalías
Para definir las anomalías se ha definido una clase abstracta que encapsula el conocimiento
del dominio propio de los factores anómalos (véase Figura 5.7).
Figura 5.7: Diagrama UML de la clase abstracta para las anomalías
En dicha clase abstracta es necesario implementar los primeros cuatro métodos para defi-
nir una nueva anomalía, mientras que el último obtiene por defecto el menor o mayor valor
de los resultados devueltos por la función «detect» aunque puede sobreescribirse en el caso
de que se conozca de antemano el valor mínimo o máximo.
ID Nombre Valor por defecto
0 Importancia en el entorno 0
1 Es una entidad intra-comunitaria 0
2Es una entidad joven respecto a la primera vez que pudo
realizar operaciones intra-comunitariasAutomático
3 IVA declarado en el 2015 Automático
4 Porcentaje de IVA entre pagos declarados en el 2015 Automático
5 Es una entidad joven Automático
6 Número de empleados Automático
7 Ha cometido anteriormente fraude 0
8 Se ha detectado anteriormente como «trucha» 0
Cuadro 5.2: Factores para detectar el fraude «Carrusel» con su identificador único
5.2.2 Gestor de ECDF
Es el encargado de calcular el «raw fitness» del SPEA2 (véase Sección 3.2.4), para ello se
ha utilizado el algoritmo del «ECDF counting» (véase Sección 3.3.3) realizando dos pasadas,
35
una para calcular el número de individuos dominados y otra para calcular el sumatorio de los
individuos dominados por cada individuo dominado.
Dado que no se ha encontrado ninguna librería para el «ECDF counting» se ha imple-
mentado la versión DYV (véase Sección 3.3.3). Algunas de las decisiones tomadas para la
implementación han sido:
Dado que hace un uso intensivo de la ordenación se ha optimizado este proceso, usando
para ello el paquete Boost Sort (véase Sección 4.1.8).
Se ha paralelizado el algoritmo para utilizar varios núcleos, para ello se ha usado
OpenMP (véase Sección 4.1.8).
5.2.3 Gestor de densidadEs el encargado de calcular la función de densidad del SPEA2 (véase Sección 3.2.4), pa-
ra ello se ha utilizado el algoritmo Hierarchical Navigable Small World (HNSW) (Malkov
y Yashunin, 2016) proporcionado en la librería NMSLIB (véase Sección 4.1.8).
5.3 ExperimentaciónEn esta sección se van a explicar los resultados obtenidos de la experimentación. Primero
se describirá el volumen de los datos y los recursos que se han contado para analizar los datos,
a continuación se analizará los tiempos de ejecución del sistema y por último se detallarán
los resultados obtenidos para corroborar la hipótesis marcada.
5.3.1 Volumen de los datosLos datos suministrados pertenecen a tres millones empresas que han realizado operacio-
nes comerciales entre los años 2010 y 2015, ambos incluidos. El volumen de las relaciones
comerciales realizadas durante ese periodo asciende a treinta y dos millones, ademas hay que
tener en cuenta que estas operaciones comerciales están filtradas a partir de una determinada
cuantia económica determinada por expertos.
Tras aplicar el modelo estocástico (véase Sección 5.1.1) se ha obtenido una matriz esto-
cástica con una densidad del 0.00034 % (véase Figura 5.8).
36
Figura 5.8: Matriz estocástica creada a partir de los datos
5.3.2 Recursos hardwarePara la realización de la investigación se ha utilizado un ordenador con las siguientes
características:
CPU AMD FX Series FX-8150 3.6GHz 8-Core
RAM G.Skill Ripjaws X DDR3 1600 PC3-12800 16 4x4GB CL9
HDD WD Black 1TB SATA3 7200rpm
5.3.3 TiemposDado que el objetivo de la aplicación es que permita analizar los datos suministrados por
los expertos en el dominio, es de vital importancia que la aplicación tenga unos tiempos de
respuesta aceptables. Estos tiempos se van a dividir en dos etapas, la etapa de preproceso
encargada de transformar los datos de entrada en el modelo y la etapa de aplicación del
modelo para unos parámetros específicos.
Preprocesamiento
En esta etapa el sistema interpreta los datos de entrada y precalcula todos los valores que
se puedan necesitar. Dado que esta etapa se puede realizar en segundo plano u «offline» el
tiempo de cómputo no repercute de manera significativa en la interacción del usuario (véase
37
Cuadro 5.3).
Etapa Tiempo mediode ejecución
Notas
Carga de los datos de
entrada y creación de la
estructura gráfica
4 minutos y
20 segundos-
Creación del modelo GFM a
partir del modelo gráfico10 segundos -
Cálculo de los factores
anómalos (de manera
individual)
Menos de un
segundo
Se tarda tan poco porque la estructura gráfica está
guardada en memoria y todos los factores se calculan
obteniendo datos concretos del grafo, sin aplicar ningún
tipo de cómputo complejo sobre el mismo.
Aplicación del modelo GFM
sobre los factores anómalos
(de manera individual)
36 minutos
Este tiempo corresponde tanto a aplicar las 1597
multiplicaciones del vector de factores anómalos sobre
la matriz estocástica como a cachear los resultados
obtenidos. Por ese motivo solo es necesario aplicar esta
etapa la primera vez, el resto de las veces ya se tienen los
valores calculados.
Cuadro 5.3: Tiempos de ejecución de las diferentes etapas que se pueden preprocesar
Análisis en tiempo real
Una vez precalculados los datos el resto de operaciones se realizan bajo demanda siempre
y cuando no estén sus valores cacheados. Las dos operaciones más costosas en tiempo real
son:
Cálculo de la función «fitness» del algoritmo SPEA2 Es el componente más crítico con
el que cuenta el sistema debido a la complejidad del «ECDF counting», cuyo algoritmo im-
plementado tiene una complejidad de O(n logk−1(n)) y por ello es bastante sensible a incre-
mentos en el parámetro k (véase Figura 5.9).
Por otro lado, el algoritmo para calcular el k-ésimo vecino más cercano, siendo k =√n,
muestra unos tiempos bajos y estables dando la impresión que, cuanto mayor sea el número
de dimensiones, mejor es su funcionamiento probabilístico y por ello decrementa el tiempo
máximo (véase Figura 5.10). Dado que calcular el k-ésimo vecino con una única dimensión
es un caso trivial tiene su propio algoritmo, por ello muestra una diferencia de tiempos tan
grande.
38
Figura 5.9: Tiempos de ejecución del módulo ECDF con diversas dimensiones
Figura 5.10: Tiempos de ejecución del módulo para obtener el k-ésimo vecino más cercano
con diversas dimensiones
Cálculo de la propagación inversa de los factores anómalos El tiempo de cálculo para
la propagación inversa está condicionada por el algoritmo de multiplicación de vector-matriz
dispersa, el cual tarda de media 600 milisegundos para realizar una multiplicación. Por ello
dependiendo del tiempo «virtual» este calculo puede resultar prohibitivo para una aplica-
ción en tiempo real aunque no sea una característica obligatoria para construir el grafo a
analizar.
5.3.4 Validación
Para la validación se ha dividido el conjunto de datos en dos conjuntos, el de entrena-
miento, que lo forman aquellas entidades detectadas como «truchas» entre los años 2010 y
39
2013 ambos incluidos, y el de validación, formado también por aquellas entidades detectadas
como «truchas» pero durante los años 2014 y 2015.
Luego se ha construido el modelo con las entidades del conjunto de entrenamiento y se le
ha pedido al sistema el «ranking» de las empresas del conjunto de validación. Los valores
obtenidos se han representado mediante diagramas de caja 2 donde cada diagrama representa
los resultados de analizar una serie de objetivos y, en cada diagrama, se ve la evolución de la
propagación de los factores anómalos a través de las relaciones (véase Anexo A).
Para las validaciones se han elegido un conjunto de cinco factores anómalos, aquellos que
se han visto más influyentes para la detección del fraude «Carrusel». Entre los cinco factores
de anomalías, el que devuelve «rankings» con una mejor posición es el factor 8 (véase Figu-
ra A.5), referente a las otras entidades detectadas como anómalas, aunque también muestra
como sus valores atípicos están más alejados del «ranking» ideal, lo cual demuestra que aun-
que una entidad fraudulenta se relaciona con otras entidades fraudulentas este tipo de factor
no es suficiente como para reducir el número de posibles entidades anómalas. Por otro lado
el factor 2, el cual simboliza las entidades intra-comunitarias, compacta mucho mejor las
entidades en posiciones buenas del «ranking» aunque le falta precisión a la hora de definir
las entidades con detalle (véase Figura A.2).
De todas maneras cuando se unen ambos factores se consigue la precisión del factor 8 y
la compactación del factor 2 (véase Figura A.12), observando que las combinaciones que
muestran mejores resultados son aquellas donde estos dos factores están incluidos.
2Un diagrama de caja es un gráfico que representa mediante cuartiles la distribución de un conjunto de
datos, donde el rectángulo o «caja» representa en 50 % de los datos y los dos brazos o «bigotes» representan
los cuartiles uno (25 % de los datos) y tres (75 % de los datos) menos/más 1.5 veces la diferencia entre el cuartil
tres y el cuartil uno (rango intercuartil).
40
Capítulo 6
Conclusiones
EN este capítulo se exponen los objetivos logrados y las destrezas obtenidas tras la reali-
zación del TFM.
6.1 Objetivos alcanzadosEl objetivo principal de este TFM era definir y realizar un marco de trabajo para la de-
tección de anomalías, junto con un sistema para el ejemplo concreto del fraude «Carrusel»
que permita al usuario analizar e interpretar los resultados obtenidos. Este objetivo ha sido
alcanzado junto a los sub objetivos que lo forman (véase Cuadro 6.1).
Identificador Descripción Consecución Donde se ha completado
O.1Identificar entidades anómalas en
los datos proporcionados.Anexo A
O.2Explicar la razón por la que una
entidad se ha considerado anómala.Sección 5.3.4
O.3Comprobar la efectividad del
sistema.Anexo A
O.4
Diseñar y crear un cliente web que
permita analizar los resultados
obtenidos proporcionados mediante la
API (Application ProgrammingInterface).
Sección 5.1.4
O.5
Diseñar y crear una nivel de datos que
permita, a través de una API web,
obtener las anomalías.
Sección 5.1.4
Cuadro 6.1: Objetivos alcanzados
Por tanto puede concluirse que se han logrado todos los sub objetivos planteados en el
Capítulo 2.
6.2 Destrezas adquiridasDurante la realización de este TFM, se han ido adquiriendo destrezas en un amplio número
de campos, tanto técnicos, como empresariales. A continuación se resumen las principales
41
destrezas adquiridas:
Planificación y realización de un sistema de envergadura.
Aprendizaje y uso de C++ como lenguaje de programación.
Aprendizaje y uso de JavaScript como lenguaje de programación para el «FrontEnd»
de la página web.
Aprendizaje y uso de OpenMP para la paralelización rápida de código C++.
Tipos de sistemas para la detección de anomalías y tácticas a utilizar.
Manejo de estructuras de tipo vector o matriz desde C++ gracias a Armadillo y Open-
BLAS.
Diseño de una arquitectura para servicios REST.
Aprendizaje de arquetipos de fraudes y como detectarlos.
Formas de representar la información de un modo conciso y amigable para el usuario.
42
Capítulo 7
Lineas futuras
DURANTE la realización de este TFM se han detectado nuevas funcionalidades intere-
santes para el sistema, que debido a factores como el tiempo disponible o el descono-
cimiento en las primeras etapas de varias herramientas y o técnicas existentes, no han podido
llevarse a cabo. Algunas de estas son:
Tiempo de respuesta Dada la gran cantidad de datos que maneja la aplicación y el enfo-
que aplicado, la aplicación no permite una funcionalidad en tiempo real fluida, para
solucionarlo se podría paralelizar la aplicación ya sea reduciendo la complejidad de
los algoritmos, utilizando un «cluster» o mediante programación para GPU (Graphics
Processor Unit).
Escalabilidad Tal y como está diseñada la arquitectura el sistema no es escalable, por lo
que una mejora a futuro seria que permitiese que la arquitectura fuese más elástica
ante incrementos tanto del volumen de los datos, aplicando modelos de computación
tipo (Malewicz et al., 2010) por ejemplo, como del número de usuarios con una mejor
arquitectura.
Mejorar la explicación textual de las anomalías Actualmente la explicación textual es po-
bre, por lo que seria interesante en un futuro reforzar dicha información con otros
datos, como relaciones comunes que conectan a dos o más entidades.
Seguridad Actualmente la comunicación entre el servicio REST y el «FrontEnd» no tiene
ningún protocolo de seguridad, por lo que seria necesario tener una base común de
usuarios para limitar las funcionalidades accesibles según el rol de los mismos.
Internacionalizar la aplicación La versión actual solo muestra los diálogos en español, por
lo que en versiones futuras, se podría aumentar su accesibilidad añadiendo otros idio-
mas, como puede ser el inglés, francés, chino, etc.
43
Anexo A
Diagramas de los resultados automatizados
EN este anexo se muestran los diferentes diagramas generados con los resultados auto-
matizados.
A.1 Diagramas de los factores anómalos por separado
Figura A.1: Diagrama de caja para el factor anómalo 1
47
Figura A.2: Diagrama de caja para el factor anómalo 2
Figura A.3: Diagrama de caja para el factor anómalo 3
48
Figura A.4: Diagrama de caja para el factor anómalo 4
Figura A.5: Diagrama de caja para el factor anómalo 8
49
A.2 Diagramas de los factores anómalos por pares
Figura A.6: Diagrama de caja para los factores anómalos 1 y 2
Figura A.7: Diagrama de caja para los factores anómalos 1 y 3
50
Figura A.8: Diagrama de caja para los factores anómalos 1 y 4
Figura A.9: Diagrama de caja para los factores anómalos 1 y 8
51
Figura A.10: Diagrama de caja para los factores anómalos 2 y 3
Figura A.11: Diagrama de caja para los factores anómalos 2 y 4
52
Figura A.12: Diagrama de caja para los factores anómalos 2 y 8
Figura A.13: Diagrama de caja para los factores anómalos 3 y 4
53
Figura A.14: Diagrama de caja para los factores anómalos 3 y 8
Figura A.15: Diagrama de caja para los factores anómalos 4 y 8
54
A.3 Diagramas de los factores anómalos por tripletas
Figura A.16: Diagrama de caja para los factores anómalos 1, 2 y 3
Figura A.17: Diagrama de caja para los factores anómalos 1, 2 y 4
55
Figura A.18: Diagrama de caja para los factores anómalos 1, 2 y 8
Figura A.19: Diagrama de caja para los factores anómalos 2, 3 y 4
56
Figura A.20: Diagrama de caja para los factores anómalos 2, 3 y 8
Figura A.21: Diagrama de caja para los factores anómalos 3, 4 y 8
57
A.4 Diagramas de los factores anómalos por cuatripletas
Figura A.22: Diagrama de caja para los factores anómalos 1, 2, 3 y 4
Figura A.23: Diagrama de caja para los factores anómalos 1, 2, 4 y 8
58
Figura A.24: Diagrama de caja para los factores anómalos 2, 3, 4 y 8
A.5 Diagrama con todos los factores anómalos
Figura A.25: Diagrama de caja para los factores anómalos 1, 2, 3, 4 y 8
59
Referencias
Akoglu, Leman, McGlohon, Mary y Faloutsos, Christos (2010). «Oddball: Spotting ano-
malies in weighted graphs». En: Advances in Knowledge Discovery and Data Mining,
págs. 410-421.
Axler, Sheldon, Gehring, FW y Ribet, KA (2000). «Graduate Texts in Mathematics». En:
Graduate Texts in Mathematics.
Barbone, Luca et al. (2013). «Study to quantify and analyse the VAT Gap in the EU-27
Member States». En:
Bentley, Jon Louis (1980). «Multidimensional divide-and-conquer». En: Communications of
the ACM 23.4, págs. 214-229.
Bernburg, Jon Gunnar (2009). «Labeling theory». En: Handbook on crime and deviance.
Springer, págs. 187-207.
Buluç, Aydin et al. (2009). «Parallel sparse matrix-vector and matrix-transpose-vector mul-
tiplication using compressed sparse blocks». En: Proceedings of the twenty-first annual
symposium on Parallelism in algorithms and architectures. ACM, págs. 233-244.
Burgess, Robert L y Akers, Ronald L (1966). «A differential association-reinforcement
theory of criminal behavior». En: Social problems 14.2, págs. 128-147.
Carver, Charles S y Scheier, Michael F (1982). «Control theory: A useful conceptual frame-
work for personality–social, clinical, and health psychology.» En: Psychological bulletin
92.1, pág. 111.
Charlet, Alain y Owens, Jeffrey (2007). «An international perspective on VAT». En: Future.
Charnes, Abraham, Cooper, William W y Ferguson, Robert O (1955). «Optimal estima-
tion of executive compensation by linear programming». En: Management science 1.2,
págs. 138-151.
Dehne, Frank y Stojmenovic, Ivan (1988). «An O(√n) time algorithm for the ECDF sear-
ching problem for arbitrary dimensions on a mesh-of-processors». En: Information pro-
cessing letters 28.2, págs. 67-70.
Ebrill, Liam P (2001). The modern VAT. International Monetary Fund.
Forrest, AR (1971). «Computational geometry». En: Proceedings of the Royal Society of
London A: Mathematical, Physical and Engineering Sciences. Vol. 321. 1545. The Royal
Society, págs. 187-195.
Gentle, James E (2007). Matrix algebra: theory, computations, and applications in statistics.
Springer Science & Business Media.
Git (2017). URL: https://git-scm.com/ (visitado 13-06-2017).
Gómez-Plana, Antonio Gómez y Arzoz, Pedro Pascual (2008). «Fraude fiscal e IVA en Es-
paña: Incidencia en un modelo de equilibrio general». En: XV Encuentro de Economía
Pública: políticas públicas y migración, pág. 9.
61
Grusec, Joan E (1992). «Social learning theory and developmental psychology: The legacies
of Robert Sears and Albert Bandura.» En: Developmental psychology 28.5, pág. 776.
Jervis, Robert (1979). «Deterrence theory revisited». En: World Politics 31.02, págs. 289-324.
Jiang, Meng et al. (2014). «Catchsync: catching synchronized behavior in large directed
graphs». En: Proceedings of the 20th ACM SIGKDD international conference on Know-
ledge discovery and data mining. ACM, págs. 941-950.
Jira (2017). URL: https://es.atlassian.com/software/jira (visitado 13-06-2017).
Keen, Michael y Smith, Stephen (2006). «VAT fraud and evasion: What do we know and
what can be done?» En: National Tax Journal, págs. 861-887.
Li, Nan et al. (2014). «A probabilistic approach to uncovering attributed graph anomalies».
En: Proceedings of the 2014 SIAM International Conference on Data Mining. SIAM,
págs. 82-90.
Lü, Linyuan y Zhou, Tao (2011). «Link prediction in complex networks: A survey». En:
Physica A: Statistical Mechanics and its Applications 390.6, págs. 1150-1170.
Malewicz, Grzegorz et al. (2010). «Pregel: a system for large-scale graph processing». En:
Proceedings of the 2010 ACM SIGMOD International Conference on Management of da-
ta. ACM, págs. 135-146.
Malkov, Y. A. y Yashunin, D. A. (2016). «Efficient and robust approximate nearest neigh-
bor search using Hierarchical Navigable Small World graphs». En: ArXiv e-prints. arXiv:
1603.09320 [cs.DS].
Mercurial (2017). URL: https://www.mercurial-scm.org/ (visitado 13-06-2017).
Moonesinghe, HDK y Tan, Pang-Ning (2008). «Outrank: a graph-based outlier detection
framework using random walk». En: International Journal on Artificial Intelligence Tools
17.01, págs. 19-36.
Poniatowski, Grzegorz, Bonch-Osmolovskiy, Mikhail y Belkindas, Misha (2016). «Study
and Reports on the VAT Gap in the EU-28 Member States: 2016 Final Report». En:
Preparata, Franco P (1985). «Michael Ian shamos». En: Computational Geometry and Intro-
duction, springer-Verlag.
Romero, Carlos (1996). Análisis de las decisiones multicriterio. 14. Isdefe Madrid.
Sanderson, Conrad y Curtin, Ryan (2016). «Armadillo: a template-based C++ library for
linear algebra». En: Journal of Open Source Software 1.2, págs. 26-32.
Shamos, Michael Ian (1978). «Computational geometry». En:
Shannon, Claude Elwood (2001). «A mathematical theory of communication». En: ACM
SIGMOBILE Mobile Computing and Communications Review 5.1, págs. 3-55.
Silverman, Bernard W (1986). Density estimation for statistics and data analysis. Vol. 26.
CRC press.
Strassen, Volker (1969). «Gaussian elimination is not optimal». En: Numerische mathematik
13.4, págs. 354-356.
62
Van Vlasselaer, Véronique, Bravo, Cristián et al. (2015). «APATE: A novel approach for
automated credit card transaction fraud detection using network-based extensions». En:
Decision Support Systems 75, págs. 38-48.
Van Vlasselaer, Véronique, Eliassi-Rad, Tina et al. (2016). «Gotcha! Network-based fraud
detection for social security fraud». En: Management Science.
Yan, Guanhua y Eidenbenz, Stephan (2014). «Sim-Watchdog: Leveraging temporal simi-
larity for anomaly detection in dynamic graphs». En: Distributed Computing Systems
(ICDCS), 2014 IEEE 34th International Conference on. IEEE, págs. 154-165.
Zadeh, Lofti (1963). «Optimality and non-scalar-valued performance criteria». En: IEEE
transactions on Automatic Control 8.1, págs. 59-60.
Zitzler, Eckart, Laumanns, Marco, Thiele, Lothar et al. (2001). SPEA2: Improving the strength
Pareto evolutionary algorithm.
63
Este documento fue editado y tipografiado con LATEX empleando
la clase etsii-tfm (versión 0.20170627) que se puede encontrar en:
https://bitbucket.org/Gonlos/etsii-tfm
65