Análisis secundario mejorado de los datos de supervivencia: reconstrucción de los datos de las curvas de supervivencia de Kaplan-Meier publicadas

El método de estimación de Kaplan-Meier (KM)

El método de Kaplan-Meier (KM) se utiliza para estimar la probabilidad de experimentar el evento hasta el tiempo t, SKM(t), a partir de datos de pacientes individuales obtenidos de un ECA que está sujeto a censura correcta (en el que algunos pacientes se pierden en el seguimiento o están libres de eventos al final del período de estudio). El método funciona resumiendo la DPI en forma de una serie de intervalos de tiempo r SKM (t m ) en el momento del evento t m :

S K M (t m) = j j = 1 m n j-d j n j = S K M ( t m – 1) * n m-d m n m m = 1, 2,…, r
(2)

El algoritmo de reconstrucción de datos de Kaplan-Meier

Entradas de datos requeridas

El primer archivo de datos de entrada requerido para el algoritmo contiene las coordenadas extraídas del eje x, T k , y coordenadas del eje y, S k, para k = 1,…, N puntos en la curva Km. Existen varios paquetes de software para hacer esto, y descubrimos que la digitalización del software (http://www.digitizeit.de/) funcionó bien. Las curvas de KM, extraídas de a .artículo pdf, se leen en el software, se definen los ejes y, a continuación, el analista utiliza los clics del ratón para seleccionar los puntos que desea leer de la curva. Las coordenadas T k y S k resultantes se exportan a un archivo de texto. Este trabajo preliminar debe realizarse con cuidado. Los datos deben ser suficientes: cada paso visto en las figuras debe haberse capturado durante la extracción de datos. Por lo tanto, la ubicación y el número de clics son importantes. Los datos también deben ser coherentes: la probabilidad de experimentar el evento disminuye con el tiempo, y se debe verificar que este es siempre el caso para los puntos de datos extraídos. Pueden producirse anomalías debido a la calidad de publicación de la curva y a errores humanos en el control de los clics. Cualquier anomalía debe corregirse antes de ejecutar el algoritmo a continuación. En estos datos iniciales deben incluirse las horas en que se consignan en la publicación las cifras de riesgo. Como convención, el primer punto de datos es T1 = 0 y la probabilidad de experimentar el evento al tiempo 0 es, por lo tanto, S1 = 1. Cada curva de KM se extrae por separado.

El segundo archivo de datos de entrada necesario para el algoritmo contiene información sobre los números de riesgo notificados. La curva se divide en i = 1,.., intervalos nint, para cada uno tenemos el número reportado en riesgo al comienzo de ese intervalo, nrisk i , el momento en que se proporciona el número en riesgo, trisk i , el número de la primera fila de las coordenadas extraídas para ese intervalo de tiempo i inferior , y el número de la última fila de las coordenadas extraídas para ese intervalo de tiempo i superior . nrisk i y trisk i provienen de la publicación original, mientras que lower i y upper i provienen del número de clics realizados en cada intervalo, para crear el primer archivo de datos de entrada. Para cada i, i inferior es igual a k cuando T k = trisk i y i superior es igual a k cuando Tk + 1 = triski + 1.

Los datos de entrada finales requeridos son el número total de eventos, totevents.

Comenzamos describiendo el algoritmo para el caso en el que se notifica el número de riesgo al inicio del estudio y al menos otro punto temporal, y cuando se informa el número total de eventos (caso «toda la información»). A continuación, mostramos cómo se puede adaptar el algoritmo cuando el número en riesgo solo se notifica al comienzo del estudio (caso «sin números en riesgo»), cuando no se informa el número total de eventos (caso «sin eventos totales») y cuando no se informa ninguno de estos (caso «ninguno»).

El algoritmo para el caso «toda la información»

El número de individuos censurados no está disponible a partir de los datos reportados. Por lo tanto, utilizamos los números reportados en riesgo , nrisk i, para aproximar el número de individuos censurados en cada intervalo de tiempo i. No podemos identificar el patrón de censura exacto dentro de cada intervalo, por lo que nos vemos obligados a hacer una suposición. Hemos asumido que la censura se produce a un ritmo constante dentro de cada uno de los intervalos de tiempo, lo que parece razonable si el patrón de censura no es informativo (cada sujeto tiene un tiempo de censura que es estadísticamente independiente de su tiempo de fracaso).

El algoritmo se compone de los siguientes pasos (también ilustrados en la Figura 3).

Gráfico 3
figura 3

Diagrama de flujo del algoritmo (caso’ toda la información’).

PASO 1. Primero hacemos una conjetura inicial para el número censurado en el intervalo i. Si no hubiera individuos censurados en el intervalo i, entonces el número en riesgo al comienzo del intervalo siguiente, nris k i + 1 n o c e n s o r, sería el número en riesgo al comienzo del intervalo i, multiplicado por la probabilidad de experimentar el evento en el intervalo i condicional a estar vivo al comienzo del intervalo i:

n r i s k i + 1 n o c e n s o r = n r i s k i * S l o w e r i + 1 / S l o w e r i

redondea al entero más cercano.

Nuestra estimación inicial para el número censurado en el intervalo i es la diferencia entre el número indicado en riesgo al comienzo del intervalo i + 1, nriski+1, y el número en riesgo bajo ninguna censura:

n c e n ^ o r i o s = n r i s k i + 1 n o c e n s o r – n r i s k i + 1 n c e n ^ o r i o s = S l o w e r i + 1 / S l o w e r i * n r i s k i n r i s k i + 1
(3)

PASO 2. Distribuimos el c = 1,…,nce n ^ so r i censor times, ce n ^ t c, uniformemente sobre el intervalo i:

c e n ^ t c = T l o w e r i + c * (T l o w e r i + 1-T l o w e r i) / (n c e n ^ s o r i + 1 ) c = 1,…, n c e n ^ s o r i
(4)

El número de observaciones censuradas entre las coordenadas KM extraídas k y k + 1 se encuentra contando el número de tiempos de censura estimados, ce n ^ t c, que se encuentran entre el tiempo T k y Tk + 1:

c ê n k = ∑ c = 1 n c e n ^ s o r i (c e n ^ t c * I { c e n ^ t c ∈ } )
(5)

donde I { c e n ^ t c ∈ } es un indicador que devuelve 1 si ce n ^ t c se encuentra en el intervalo y 0 de lo contrario.

PASO 3. El número de eventos, d ^ k , en cada coordenada KM extraída, k, y por lo tanto el número de pacientes en riesgo en la siguiente coordenada, n ^ k + 1 , se puede calcular entonces. Reordenando la Ec. 2, obtenemos que d ^ k es igual al número de pacientes en riesgo en la coordenada KM extraída, k, multiplicado por uno menos la probabilidad de experimentar el evento en la coordenada KM extraída, k, dividido por l l a s t ( k ) K M la probabilidad estimada de supervivencia KM en la coordenada anterior donde estimamos que ocurrió un evento, última(k). Los intervalos de las estimaciones de KM están diseñados para que al menos un evento ocurra al comienzo de cada intervalo, pero este no es necesariamente el caso de nuestras coordenadas extraídas, por lo que necesitamos rastrear la hora del último evento:

> l a s t ( k ) = 1 i f k = 1 k ‘o t h e r w i s e

donde k’ es tal que d ^ k ‘>0

pero d ^ j =0for j = k’ + 1,…, k-1

Usando la ec.2, tenemos:

Ŝ k K M = 1 i f k = 1 Ŝ l a s t ( k ) K M * ( 1 – d ^ k n ^ k ) o t h e r w i s e

por lo Tanto:

d ^ k = n ^ k * ( 1 – S k Ŝ l a s t ( k ) K M ) k = l o w e r i , … , u p p e r i
(6)

redondea al entero más cercano.

El número de pacientes en riesgo en cada coordenada extraída, k, se obtiene mediante el uso de la Ec.1:

n ^ k + 1 = n ^ k – d ^ k – c ê n k k = l o w e r i , … , u p p e r i
(7)

donde en el inicio del intervalo establecemos n ^ l o w e r i =nri k yo . Esto produce un número estimado de riesgo al comienzo del intervalo siguiente nrîs k i + 1 = n ^ u p p e r i + 1 .

PASO 4. Si nrîs k i + 1 ≠nris k i + 1, entonces reajustamos el número estimado de observaciones censuradas en el intervalo i, ncenoror, por:

n c e n = o r i = n c e n ^ s o r i + ( n ^ u p p e r i + 1-n r i s k i + 1 )
(8)

Repetimos los pasos 2-3 iterativamente hasta que el número estimado y publicado en riesgo coincida (es decir, nrîs k i + 1 =nris k i + 1 ).

PASO 5. Si i + 1 no es el último intervalo, repetimos los pasos 1-4 para el intervalo siguiente.

PASO 6. En los ECA publicados, generalmente no hay ningún número en riesgo publicado al final del último intervalo, nint. Primero asumimos que el número censurado en el último intervalo es igual al número total censurado estimado antes del último intervalo, ∑ i = 1 n i n t – 1 n c e n o o r i , ponderado por el tiempo restante en relación con el tiempo ya transcurrido, redondeado al entero más cercano. Pero si se observaba que este número era mayor que el número de pacientes que seguían en riesgo al comienzo del último intervalo, se eligió este número en riesgo en su lugar. Esta suposición está escrita formalmente en la ecuación a continuación:

n c e n ^ s o r n i n t = min (T u p p e r n i n t-T l o w e r n i n t u p p e r n i n t – 1 – T l o w e r 1 * ∑ i = 1 n i n t – 1 n c e n ^ s o r i ; n r i s k n i n t )

Y corremos el paso 2-3.

PASO 7. Luego usamos el número total de eventos reportados, toteventos. Calculamos el número total estimado de eventos obtenidos al comienzo del último intervalo, ∑ k = 1 u p p e r n i n t – 1 d ^ k . Si esto es mayor o igual a totevents, asumimos que no se producen más eventos o censuras:

d ^ k = 0 , c ê n k = 0 , n ^ k = n u p p e r n i n t – 1 k = l o w e r n i n t , … , u p p e r n i n t

PASO 8. Si ∑ k = 1 u p p e r n i n t – 1 d ^ k es menor que toteventos, reajustamos el número estimado de observaciones censuradas en intervalo nint, nce n ^ so r n i n t, por la diferencia en el número total de eventos:

n c e n ^ s o r n i n t = n c e n ^ s o r n i n t + ( ∑ k = 1 u p p e r n i n t d ^ k – t o t e v e n t o s )
(9)

Nosotros, a continuación, vuelva a ejecutar los pasos 2-3,8 para el último intervalo, nint, hasta que el número total estimado de eventos, ∑ k = 1 u p p e r n i n t – 1 d ^ k , es igual a la cantidad total de eventos, totevents o hasta que el número total estimado de los eventos es menor que el reportado número total de eventos, pero el número total de censura en el último intervalo, nce n ^ de manera que r n i n t , es igual a cero.

Ajustes al algoritmo para el caso de «no hay números en riesgo»

En este caso solo hay un intervalo nint = 1. Primero asumimos que el número total censurado es igual a cero y luego procedemos como en el paso 8.

Ajustes al algoritmo para el caso’ sin eventos totales ‘

En este caso, procedemos como para el caso ‘toda la información’, excepto que no se puede realizar ningún reajuste utilizando el número total de eventos y, por lo tanto, nos detenemos en el paso 6.

Ajuste al algoritmo para el caso’ ni ‘

Cuando no se reporta el número total de eventos ni los números en riesgo más allá del inicio del estudio, asumimos que no hubo observaciones censuradas. Esta es una suposición fuerte, pero tan fuerte como cualquier otra suposición que podríamos hacer sobre la censura sin más información. Debido a la falta de información, se espera una menor calidad de los resultados.

Obtención de los datos individuales del paciente (ENI) a partir de los datos reconstruidos de Kaplan-Meier

De nuestros parámetros reconstruidos de Kaplan-Meier d ^ k ,cê n k , n ^ k para cada coordenada KM extraída k = 1,…, N, podemos derivar el IPD que generaría esos datos. Esta última pieza de codificación es, de hecho, bastante sencilla. Cada vez que se estima un evento o una censura, se registra el tiempo correspondiente, así como un indicador de evento (uno para evento y cero para censura).

Evaluación de reproducibilidad y precisión

En el ejercicio de validación se utilizaron seis pares de curvas de Kaplan-Meier. Se extrajeron de un subconjunto de publicaciones que formaban parte de una revisión retrospectiva de los métodos de análisis del tiempo de supervivencia utilizados en las evaluaciones económicas . Se realizó una reconstrucción de veintidós probabilidades de supervivencia, siete medianas de supervivencia, seis razones de riesgo y cuatro errores estándar de las razones de riesgo log que fueron reportados en estas cuatro publicaciones. Cada uno fue reconstruido en dos ocasiones por los mismos tres observadores. Dos de los tres observadores no participaron en el desarrollo del algoritmo.

Se evaluó la reproducibilidad y precisión del método para cada uno de los 4 niveles de información diferentes («toda la información», «sin números en riesgo», «sin eventos totales» y «ninguno»). Para evaluar las diferencias entre las estadísticas reconstruidas y las originales, se utilizó la escala natural para las probabilidades de supervivencia, mientras que la escala logarítmica se utilizó para medianas, HRS y sus incertidumbres. Las curvas de Kaplan Meier y Cox HRs basadas en datos reconstruidos se estimaron utilizando las rutinas R survfit y coxph.

Ajustamos un ANOVA bidireccional estándar con medidas repetidas a las diferencias entre los resultados reconstruidos y los resultados originales, ya sea en la escala natural o en la logarítmica, dependiendo de la estadística considerada. Los componentes de varianza fueron ejemplar, observador, interacción ejemplar × observador y error dentro de la célula. Debido a que el valor de p de la prueba de relación F para la interacción fue en todos los casos superior al 10%, agrupamos el término de interacción con el término de error dentro de la celda. El enfoque elegido es similar a lo que se conoce en aplicaciones de ingeniería como «repetibilidad y reproducibilidad del medidor».

La reproducibilidad representa el error si un solo observador hace una reconstrucción única para una estadística especificada. Esto se estimó como la suma del error dentro del observador y entre el observador. Se utilizó la simulación de Monte Carlo del modelo ANOVA ajustado para obtener los intervalos de confianza del 95% alrededor de las desviaciones estándar. Se asumió que los grados de libertad para las variaciones internas, intermedias y de resultados seguían las distribuciones chi-cuadrado. Para garantizar una inferencia sólida, se extrajeron 150 000 muestras de grados de libertad de cada una de estas distribuciones, es decir, para cada fuente de variación. A continuación, se calcularon las estimaciones de cuadrados medios, utilizando la suma de cuadrados obtenidos por el ANOVA y la muestra obtenida por la simulación, para cada una de las 150 000 muestras y para cada una de las fuentes de variación. Posteriormente se estimaron las correspondientes desviaciones estándar de 150 000 dentro, entre y resultado, y finalmente se extrajeron los percentiles 2,5 y 97,5 para obtener las estimaciones de intervalos de confianza.

Para evaluar la precisión, se examinó la diferencia de medias entre las estadísticas reconstruidas y las originales. El sesgo medio resultante, o error medio (ME), refleja una sobreestimación sistemática. Los intervalos de confianza del 95% se obtienen directamente de la estimación de las desviaciones estándar dadas por el ANOVA. También registramos sesgo absoluto o error absoluto medio (MAE). Esto ignora la dirección de los errores y mide su magnitud, dando una medida de la precisión absoluta de los resultados reconstruidos. Se volvió a utilizar un método de simulación para obtener los intervalos de confianza del 95%, que asumían que los EM se distribuían normalmente. Para cada estadística, para asegurar una inferencia robusta, se extrajeron 150 000 muestras de la distribución normal con la media y varianza observadas, según lo indicado por el ANOVA. Luego calculamos los 150 000 valores absolutos correspondientes de estos números y finalmente extraemos los percentiles 2,5 y 97,5 para obtener las estimaciones de intervalos de confianza.

Finalmente se registró la variación en la diferencia entre estadística reconstruida y original que se debió a la elección de ejemplares, es decir, a las 22 probabilidades de supervivencia, 7 medianas, 6 HRs y 4 errores estándar de la log HRs. Esto da una indicación adicional de la exactitud del método.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

More: