Evaluando tests: una guía básica de métricas.

November 4, 2020

A menudo escuchamos hablar acerca de la fiabilidad de ciertos métodos, tests, o algoritmos, y nos exponen la idea basándose en ciertas métricas, como la exactitud, la precisión o la sensibilidad. Pero, ¿qué diferencias hay entre esas métricas y por qué nos exponen varias de ellas? ¿Es mejor usar una u otra dependiendo del contexto? ¿Hay una métrica que sirva para todo y sea mejor que el resto? Continúa leyendo y sabrás la respuesta a todas estas preguntas.

Matriz de confusión

Antes de nada, hay que entender un concepto básico cuando tenemos delante un test que predice positivos y negativos: la matriz de confusión. Una matriz de confusión nos dice el rendimiento de nuestro algoritmo o test, donde las filas son los datos reales y las columnas las predicciones (o viceversa).

Como se puede apreciar, la matriz de confusión nos dice, para los positivos y negativos reales, cuantos ha predicho como positivo y cuantos como negativo. Cada uno de los valores dentro de la matriz tiene un nombre, y son los siguientes:

TP = True Positive (verdadero positivo) Real: Covid | Predicción: Covid

FN = False Negative (falso negativo) Real: Covid | Predicción: No Covid

FP = False Positive (falso positivo) Real: No Covid | Predicción: Covid

TN = True Negative (verdadero negativo) Real: No Covid | Predicción: No Covid

Una vez entendida esta tabla, podemos repasar las métricas más importantes.

Exactitud

La exactitud te dice qué porcentaje de las predicciones son correctas.

$$Exactitud = \frac{TP + TN}{Todas ~ las ~ predicciones} = \frac{TP + TN}{TP + TN + FP + FN}$$

Esta métrica puede parecer muy buena a primera vista, pero presenta un punto débil. Cuando tu set de datos está desbalanceado (muchos más casos reales de positivo que de negativo o viceversa) pierde fiabilidad. Supongamos que tenemos un set de datos de 100 pacientes, y solo 1 tiene Covid-19. Y supongamos, también, que el test nos dice que ninguno de ellos lo tiene:

Estaríamos hablando de una exactitud del 99%, pero es posible que nuestro test no sea capaz de detectar positivos. Necesitamos métricas capaces de detectar errores de falsos positivos y falsos negativos. Necesitamos la precisión, la sensibilidad, y, en última instancia, el F1-score.

Precisión

La precisión es una métrica que nos dice lo siguiente: de las predicciones positivas que he hecho, qué porcentaje son realmente positivas.

$$Precisión = \frac{TP}{Predicciones ~ positivas} = \frac{TP}{TP + FP}$$

Esta métrica es útil cuando el coste de un falso positivo es alto. Por ejemplo, si tu sistema detecta si un email es spam, un falso positivo podría enviar un email que no es spam a la carpeta de spam, lo cual es un error que puede conllevar la pérdida de información importante.

Sensibilidad

La sensibilidad, al contrario que la precisión, es útil cuando el coste de un falso negativo es alto. Nos dice: de todos los casos positivos, qué porcentaje ha acertado el test.

$$Sensibilidad = \frac{TP}{Positivos ~ Reales} = \frac{TP}{TP + FN}$$

Por ejemplo, en un test para detectar Covid-19, un falso negativo (decir que el paciente no tiene covid cuando realmente sí lo tiene) tiene un coste muy elevado, como la vida de una o varias personas.

F1-score

Después de leer acerca de la precisión y la sensibilidad es natural que surja la siguiente pregunta: ¿Qué pasa si quiero una métrica que busque un equilibrio entre la precisión y la sensibilidad y penalice tanto los falsos positivos como los falsos negativos?

Supongamos que tenemos varios tests, todos con diferentes métricas de precisión y sensibilidad, y queremos buscar el mejor de ellos teniendo en cuenta por igual ambas métricas (es decir, penalizando por igual los falsos positivos y los falsos negativos). Para este caso tenemos la F1-score, cuya fórmula es:

$$F1 = 2\times\frac{Precisión \times Sensibilidad}{Precisión + Sensibilidad}$$

Como podemos ver en la fórmula, el F1-score busca un equilibrio entre precisión y sensibilidad. Si una de las dos métricas tiene un valor muy bajo, el F1-score cae drásticamente. Por ejemplo, en el caso extremo de que la precisión o la sensibilidad sea 0, el resultado sería 0 independientemente de la otra métrica.

Conclusión

Después de leer acerca de todas las métricas, la respuesta a “¿Qué métrica uso?” queda clara: la F1-score es la más completa a la hora de evaluar nuestro test, ya que tiene en cuenta los falsos negativos y falsos positivos. Únicamente en el caso de tener un contexto en el que uno de los dos errores sea claramente fatal, se debería usar la sensibilidad o la precisión para evaluar nuestro test. Por otro lado, aún evaluando con la F1-score, es interesante exponer tanto la precisión como la sensibilidad, para ver con más detalle qué tipo de error comete más a menudo.