universidad politÉcnica de madrid …oa.upm.es/48528/1/tfm_juan_manuel_fernandez_garcia...este...

94
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

Upload: others

Post on 25-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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

Y2NTC (Y, ¿YO NO TE CONOZCO?)SISTEMA DE BÚSQUEDA DE ANOMALÍAS EN ESTRUCTURAS GRÁFICAS

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

ANEXOS

45

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