Detección de anomalías

¿Cuántas veces tenemos que lanzar una moneda para darnos cuenta de que está trucada?

A la hora de detectar anomalías en procesos conocidos con resultados esperables, nos puede interesar ir analizando los datos más recientes para detectar desviaciones atípicas que merezca la pena analizar y anticiparnos a posibles graves consecuencias. ¿Está generando nuestro aerogenerador la energía media esperada? ¿Está nuestro motor consumiendo el combustible medio esperado? O, por simplificar la explicación, ¿algún número de la ruleta sale significativamente más que otros?, ¿está nuestra moneda trucada?

Veamos la base estadística con este último ejemplo. El experimento consistente en lanzar una moneda al vuelo y anotar el resultado (cara o cruz). Podría ocurrir que la moneda que estamos lanzando estuviese trucada y este hecho influyese en el número de veces que el lanzamiento resultase cara o cruz. Ahora bien, ¿cómo podemos saber si nos están engañando ?, o, dicho de otro modo, ¿cómo podemos identificar una anomalía como esta en una serie de eventos?

Lo primero que hay que aclarar es que no se puede responder a esta pregunta con un 100 % de confianza y, por tanto, tendremos que definir previamente un nivel de confianza (usualmente el 95%). Veamos esto de la ‘confianza’ con más detalle. Si lanzamos una moneda 100 veces y contamos el número de caras, se pueden obtener 101 posibles valores del total de caras: 0 caras en 100 lanzamientos, 1 cara en 100 lanzamientos o hasta 100 caras en 100 lanzamientos. Ahora bien, si obtuviésemos 100 caras en 100 lanzamientos, podemos razonar de dos formas:

  1. ¡Qué suerte hemos tenido! A pesar de que la probabilidad de obtener 100 caras es (1/2)100 = 7,88 * 10-31, ¡ha ocurrido!
  2. O bien, sospechar y concluir ¡La moneda debe estar trucada!

Entonces, ¿existe alguna forma de saber si la moneda que usamos en el lanzamiento está o no trucada? La respuesta es sí, y se llama Inferencia Estadística, que se define como el estudio de diferentes métodos para obtener conclusiones generales de toda una población a partir del análisis de una muestra aportando información sobre el grado de fiabilidad o confianza de los resultados obtenidos.

Existen numerosos caminos para llegar al resultado que nos interesa, pero, en este caso, emplearemos un método conocido como aproximación Bayesiana. Esta técnica se basa fundamentalmente en lanzar la moneda repetidas veces y contrastar (o comparar) los resultados obtenidos con lo que debería haber sucedido si tuviésemos una moneda ideal. Dicho de otro modo, sabemos qué probabilidades tienen las diferentes combinaciones de ‘caras-cruces’ y, por tanto, qué combinaciones son altamente improbables (luego, sospechosas). Así, si seleccionamos un 95 % como ‘nivel de confianza’ para este experimento, concluiremos que la moneda está trucada si se obtiene alguno de los resultados del otro 5 % de resultados extremos (y muy poco probables).

En las siguientes tablas se proporcionan los rangos de valores (% de caras en la primera tabla o número de caras en la segunda) para los que no sospecharíamos de la moneda. Una primera conclusión, cuantos más lanzamientos (datos) más fácil detectar la anomalía (los rangos son más pequeños a medida que lanzamos más veces la moneda):

Nivel de significación
 1%5%10%
Nº lanzamientosMinMaxMinMaxMinMax
10037,12 %62,88 %40,20 %59,80 %41,78 %58,22 %
50044,24 %55,76 %45,62 %54,38 %46,32 %53,68 %
100045,93 %54,07 %46,90 %53,10 %47,40 %52,60 %

Tabla 1. Proporción mínima y máxima para aceptar que la moneda no está trucada según el nivel de significación deseado y el número de lanzamientos realizados.

La siguiente tabla la podemos interpretar como sigue. Si lanzamos una moneda 500 veces, con una probabilidad del 95 % obtendremos entre 228 y 272 caras (45 de los 501 posibles resultados acumulan el 95 % de la probabilidad). Cualquier otro valor, nos haría sospechar que la moneda está trucada.

Nivel de significación
 1%5%10%
Nº lanzamientosMinMaxMinMaxMinMax
100376340604258
500221279228272232268
1000459541469531474526

Tabla 2. Número mínimo y máximo de caras para aceptar que la moneda no está trucada según el nivel de significación deseado y el número de lanzamientos realizados.

Para visualizarlo mejor, se ha creado una animación en R. Se ha simulado el lanzamiento de una moneda 500 veces para anotar el número de caras obtenidas e ir construyendo la función de distribución asociada a la probabilidad de sacar cara de forma posterior a cada lanzamiento. Si la moneda que se está empleando en el experimento fuese ideal, es decir, no estuviese trucada, conforme se fuesen realizando más ‘tiradas’ la distribución debería acercarse más al valor 0.50 (línea vertical discontinua en la animación) y, de igual modo, la probabilidad de que la probabilidad de sacar cara tome un valor entre 0.45 y 0.55 debería ser cada vez más alta.

Observamos que, para un total de 500 lanzamientos de la moneda, el número de caras resultó 258. Dicho valor se encuentre entre el Min y el Max en nuestra tabla anterior (incluso para los tres niveles de significación), por lo que no sospecharíamos de la moneda virtual usada.

En caso de que esto ocurriese en algún proceso de nuestro negocio, entenderíamos que todo estaría en orden pues no se aprecian anomalías relevantes en el proceso que se está llevando a cabo. Por ejemplo, si se tratase de un análisis del consumo de combustible medio que están consumiendo los vehículos que componen la flota de nuestra empresa, bastaría con analizar el consumo por km de los últimos N viajes y analizar si el consumo medio está en el intervalo del 95% de confianza o, por el contrario, está en el 5% de los valores anómalos.

En OGA tenemos experiencia en el desarrollo, explotación y detección de estas tendencias. Si estás interesado en su implantación, no dudes en contactar con nosotros y podremos ayudarte a analizar el escenario de negocio en el que operas y a detectar posibles anomalías que te ayuden a mejorar su eficiencia.

Acerca del autor

Autor
María José Silva oga
María José Silva
Data Scientist / Analyst en OGA | Web

Graduada en Matemáticas en la Universidad de Sevilla (US) con experiencia en Análisis y Tratamiento de Datos, Entrenamiento de Modelos Econométricos, Optimización e Inteligencia Artificial.

Enamorada de la danza, de mis raíces y de las nuevas experiencias.