Inicio > Otras especialidades > Cálculo de curvas ROC utilizando una hoja de cálculo

Cálculo de curvas ROC utilizando una hoja de cálculo

Cálculo de curvas ROC utilizando una hoja de cálculo

1.            Introducción.

Las curvas ROC (receiver operating characteristic curve) son una herramienta muy útil en ciencias de la salud básicamente bajo dos circunstancias. La primera, poder determinar cuál es el mejor punto de corte de una prueba diagnóstica, es decir, cuál será el criterio para decidir si un paciente es positivo o negativo, la segunda es poder determinar de entre dos pruebas, con cual se puede obtener mejores resultados al establecer un diagnóstico. Ciertamente los resultados pueden ser importantes sin embargo no es necesariamente simple obtener las curvas. Típicamente podemos obtener una curva en softwares estadísticos especializados. En esta ocasión pretendemos plantear una solución relativamente sencilla utilizando una hoja de cálculo a la que cualquiera puede tener acceso.

Autores:

M.C. Rafael Iván Ayala Figueroa,

Dr. Rafael Martínez Miranda,

Dra. Julia Dolores Estrada Guzmán

Universidad Autónoma de Baja California. Facultad de Medicina Mexicali.

2.            Sensibilidad y Especificidad.

Una prueba diagnóstica básicamente es un clasificador que trata de distinguir a los individuos que padecen una patología o condición de los que no. Sin embargo, como cualquier sistema de detección, es susceptible a errores. En este caso, los errores posibles serían: clasificar a una persona enferma como sana; o clasificar a una persona sana como enferma. En este sentido podemos decir que una prueba diagnóstica puede presentar cuatro escenarios para cada individuo.

  1. Individuo sano lo clasifica como sano. (Verdadero negativo)
  2. Individuo enfermo lo clasifica como enfermo. (Verdadero positivo)
  3. Individuo sano lo clasifica como enfermo.(Falso negativo)
  4. Individuo enfermo lo clasifica como sano. (Falso positivo)

Claramente el primer par es correcto y el segundo par es erróneo. Así, las pruebas diagnósticas se pueden evaluar cuantificando cuantas veces se obtiene un resultado correcto respecto al total de ensayos.  Los parámetros que nos establecen que tan exacta es la prueba diagnóstica son la sensibilidad y la especificidad que se definen como sigue:

Sensibilidad: Es la probabilidad de clasificar a un individuo enfermo como enfermo.

Especificidad: Es la probabilidad de clasificar a un individuo sano como sano.

Para el cálculo de estos parámetros resulta muy práctico organizar la información en una tabla de contingencia de 2×2, donde las columnas se generan de la variable Enfermo y las filas de la variable Prueba como se observa en la figura 1.

Donde

VP: Verdaderos positivos.

VN: Verdaderos negativos.

FP: Falsos positivos.

FN: Falsos negativos.

En términos de la probabilidad condicionada, la sensibilidad se entiende como la probabilidad de que la prueba resulte positiva dado que el individuo realmente está enfermo (P(positivo|enfermo)), y la especificidad es la probabilidad de que resulte negativa dado que el individuo realmente está sano (P(negativo|sano)). Aplicando la Regla de Bayes y la Ley de la Probabilidad Total podemos llegar a las siguientes ecuaciones para sensibilidad y especificidad. Ver figura 2

Es importante aclara que para considerar a una persona como sana o enferma es necesario tener una prueba de referencia que nos indique en primera instancia el estado del individuo en cuestión.

3.            Curvas ROC

Suponga que se conoce el valor de un biomarcador X de una persona. Este biomarcador podría tener la propiedad de definir a la persona como enferma o sana si este se encuentra por encima (o por debajo) de un cierto punto de corte C en principio desconocido.

Una curva ROC es una representación gráfica de la variación de la sensibilidad contra (1-especificidad) cuando el punto de corte cambia. En otras palabras, para cada posible punto de corte nosotros debemos calcular una sensibilidad y una especificidad que serán graficadas. El problema con esto es que si tenemos muchos puntos de corte a probar, la cantidad de cálculos puede ser muy alta. Para evitar esto existe una serie de softwares estadísticos que puede resolvernos el problema, sin embargo no siempre están al alcance y en ocasiones resulta más complicado encontrar el software y aprenderlo a utilizar que hacer los cálculos manualmente.

Un parámetro para determinar la capacidad de una prueba diagnóstica para discriminar entre enfermos y sanos es el área bajo la curva, es decir, el área delimitada por el eje (1-especificidad), la línea vertical que pasa por (1-especificidad)=1, y la curva ROC. El máximo valor de esta área es menor o igual que la unidad y se dice que una prueba no es discriminativa si coincide con la línea recta que une el punto (0,0) con el (1,1) la cual define un área igual a 0.5. Mientras el área sea mayor, se considera que tiene más capacidad discriminatoria. Así, el área bajo la curva puede ser un buen parámetro para comparar dos pruebas diagnósticas, considerando que la mejor será la que mayor área cubra.

Otro aspecto de interés es determinar cuál es el punto de corte que nos identifica mejor a quien está enfermo de quien no lo está. En términos de sensibilidad y especificidad, el mejor punto de corte sería el que clasifica a todos los enfermos como positivos y a todos los sanos como negativos. Podemos decir que el mejor punto de corte sería el que obtiene una sensibilidad y una especificidad de 1. En la práctica es muy difícil poder asegurar que nuestra prueba diagnóstica es infalible por lo que obtener una sensibilidad y especificidad perfecta sería muy complicada, sin embargo podemos buscar el punto de corte que se ajuste mejor a dichas condiciones.

Un criterio para encontrar el mejor punto de corte es identificar el punto P para el cual la distancia del punto  P al punto (0,1) es mínima.

4.            Obtención de las Curvas ROC

Si tenemos una cantidad importante de datos, es decir de valores del Biomarcador X tanto de individuos sanos como enfermos, la obtención de la curva ROC puede ser muy tediosa, por tal motivo presentamos una forma de obtener dichas curvas de una manera relativamente simple mediante Excel 2010 que bien podría ser aplicada a otras versiones.

Suponga que tenemos a dos grupos de personas, en el primer grupo concentramos a todos los que han sido detectado como enfermos mediante una prueba de referencia. Y en el otro los que han sido declarados sanos por la misma prueba. Ahora bien, el biomarcador que pretendemos utilizar como parámetro diagnóstico se determina para todos los individuos obteniéndose los valores de la tabla 3.

En primera instancia vamos a escribir todos los datos en dos columnas de Excel como en la figura 4.

Nosotros tenemos todos los datos ordenados, pero no necesariamente tiene que ser de esta manera en este punto.

En seguida vamos a escribir los mismos datos pero todos en la misma columna. Ver figura 5

Sin importar quien está enfermo o sano.

Debemos obtener todos los valores de la lista anterior sin repetir, esto lo logramos de la siguiente forma.

  1. Seleccionamos la lista. Ver figura 6.
  2. Nos dirigimos a Datos > Herramientas de datos > Quitar datos duplicados y damos clic donde nos aparece el siguiente cuadro de la figura 7.
  3. Solo aceptamos y posteriormente nos indica cuantos se encontraron duplicados y removidos, y cuantos valores nos quedan sin repetir. Ver figura 8.

La tabla reducida sin valores repetidos la debemos ordenar, por lo que seleccionamos nuestra tabla una vez más, nos dirigimos a Inicio>Modificar>Ordenar de menor a mayor.

Con la tabla de biomarcador ya ordenada generamos una nueva tabla que incluye las columnas “Biomarcador”, “1-Especificidad” y “Sensibilidad”. Ver figura 9.

NOTA: Todo el procedimiento anterior tiene como fin obtener la tabla anterior y ciertamente se puede omitir si somos capaces de distinguir todos los valores sin repetir del biomarcador sin distinguir entre los enfermos y los sanos.

En este punto debemos de tener lo siguiente en la misma hoja de cálculo. Ver figura 10.

Para una mejor descripción, llamaremos “tabla 1” a la de la derecha y “tabla 2” a la de la izquierda.

El punto crucial ahora es calcular de manera rápida las columnas de “1- especificidad” y “sensibilidad”. Para nuestro ejemplo vamos a considerar como enfermos a los individuos con un valor de biomarcador mayor o igual al punto de corte y sanos a los que su valor de biomarcador se encuentre por debajo.

Para calcular las columnas faltantes utilizaremos la función CONTAR(RANGO) cuyo resultado es el total de celdas no vacías, y CONTAR.SI(RANGO,CRITERIO) cuyo resultado es el total de celdas en el rango seleccionado que cumplen el criterio.

La columna de 1-especificidad la calculamos aplicando la definición de especificidad con la siguiente fórmula:

1-CONTAR.SI($B$3:$B$42,»<«&D2)/CONTAR($B$3:$B$42)

Notas:

  1. Para nuestro ejemplo el rango es $B$3:$B$42, es decir la columna donde se encentran los sanos en la tabla 1.
  2. La condición “<”&D2 implica que los sanos serán considerados menores que D2.
  3. CONTAR($B$3:$B$42) nos cuenta la totalidad de los sanos. Ver figura 11.

Para calcular la columna de sensibilidad utilizamos la definición de sensibilidad en la siguiente fórmula:

CONTAR.SI($A$3:$A$46,»>=»&D2)/(CONTAR($A$3:$A$46))

Notas:

  1. El rango de enfermos que vamos a analizar es $A$3:$A$46 de la tabla 1.
  2. La condición “>=”&D2 implica que los enfermos serán los individuos cuyo biomarcador se encuentre mayor o igual que D2.
  3. CONTAR($A$3:$A$46)) contabiliza la totalidad de enfermos. Ver figura 12.

Hemos añadido los símbolos $ al rango para poder arrastrar la fórmula para las celdas siguientes sin que se modifique el rango.

Así posicionándonos y dando click en la esquina inferior derecha de la celda ya calculada y arrastrando el cursor hacia abajo podemos obtener los valores siguientes. Ver. Figura 13.

Para finalmente obtener lo que se observa en la figura 14.

Para graficar agregamos en la primera posición de la tabla 2 el punto 0,0. Ver figura 15.

Finalmente observaremos la curva ROC seleccionando la columna de 1-Especificidad y Sensibilidad para después ir al Menú de Insertar> Gráficos> Dispersión y seleccionar la gráfica con líneas rectas y marcadores. Ver figura 16

De donde obtenemos nuestra curva ROC. Ver figura 17.

4.1.         Área bajo la curva

Para calcular el área bajo la curva vamos aplicar la fórmula para calcular el área de un trapecio. Ver fórmula 1.

Si en nuestra tabla tenemos la tabla 18.

Entonces hacemos los cálculos con las fórmulas 2 y 3.

Para hacer el cálculo rápidamente agregamos un cero al final de la columna de Sensibilidad y 1-Especificidad y el cálculo lo iniciamos desde la segunda fila, es decir desde la fila de biomarcador igual a 58.

Así tenemos la tabla 19.

Finalmente el área será igual a la suma de todos los elementos de la columna Área, dando como resultado 0.7020.

4.2.         Localización del punto óptimo de corte

Para encontrar el punto óptimo de corte agregamos una nueva columna a la cual llamaremos Distancia. En esta columna se calculará la distancia de cada punto sobre la curva hasta el punto (0,1) el cual es el mejor resultado posible.

Consideramos que la i-esima Sensibilidad la denotamos por Si  mientras que la i-esima 1-Especificidad por Ei, el cálculo lo hacemos como: Este cálculo lo hacemos con la fórmula 4.

Por ejemplo, para cuando el biomarcador es 60, la sensibilidad es 1.00 y 1-especificidad es 0.93, así la distancia desde el punto (0.93,1.00) hasta el (0.1) es: (ver formula 5)

Esto lo hacemos para todos los puntos de corte quedando

De aquí no es difícil identificar que el valor mínimo en la columna distancia es 0.492, el cual corresponde a un biomarcador de 80.

Anexos

Anexos – Cálculo de curvas ROC utilizando una hoja de cálculo

Anexos – Cálculo de curvas ROC utilizando una hoja de cálculo

5.            Referencias bibliográficas

  1. Hanley, J. A., & McNeil, B. J. (1982). The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 143(1), 29-36.
  2. Fawcett, T. (2006). An introduction to ROC analysis. Pattern recognition letters27(8), 861-874.
  3. Rosner, B. (2015). Fundamentals of biostatistics. Nelson Education.