Enhanced secondary analysis of survival data: ricostruire i dati pubblicati sopravvivenza di Kaplan-Meier curve

Il metodo di Kaplan-Meier (KM) metodo di stima

Il metodo di Kaplan-Meier (KM) metodo viene utilizzato per stimare la probabilità di sperimentare l’evento fino al tempo t, SKM(t), dal singolo paziente dati ottenuti da un RCT che è soggetto di diritto-censura (dove alcuni pazienti persi al follow-up o sono libera da eventi alla fine del periodo di studio). Il metodo funziona riassumendo l’IPD sotto forma di una serie di intervalli di tempo r SKM (t m ) al tempo dell’evento t m :

S K M ( t m ) = ∏ 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)

Il metodo di Kaplan-Meier dati algoritmo di ricostruzione

Dati di input richiesti

Il primo file di dati di input necessari per l’algoritmo contiene l’estratto asse x coordinate, T k , e l’asse y coordinate, S k , per k = 1,…, N punti sulla curva KM. Esistono diversi pacchetti software per fare questo, e abbiamo scoperto che il software DigitizeIt (http://www.digitizeit.de/) ha funzionato bene. Le curve KM, estratte da un .articolo pdf, vengono letti nel software, gli assi sono definiti, e quindi l’analista utilizza clic del mouse per selezionare i punti da leggere dalla curva. Le coordinate T k e S K risultanti vengono quindi esportate in un file di testo. Questo lavoro preliminare deve essere eseguito con attenzione. I dati dovrebbero essere sufficienti: ogni passo visto nelle figure dovrebbe essere stato catturato durante l’estrazione dei dati. La posizione e il numero di clic sono quindi importanti. I dati dovrebbero anche essere coerenti: la probabilità di sperimentare l’evento diminuisce con il tempo, e dovrebbe essere verificato che questo è sempre il caso per i punti di dati estratti. Anomalie possono verificarsi a causa della qualità di pubblicazione della curva, e l’errore umano nel controllo dei clic. Eventuali anomalie devono essere corrette prima di eseguire l’algoritmo sottostante. I tempi, in cui i numeri a rischio sono riportati nella pubblicazione, devono essere inclusi in questi dati iniziali. Come convenzione, il primo punto dati è T1 = 0 e la probabilità di sperimentare l’evento al tempo 0 è quindi S1 = 1. Ogni curva KM viene estratta separatamente.

Il secondo file di dati di input richiesto per l’algoritmo contiene informazioni sui numeri segnalati a rischio. La curva è divisa in i = 1,.., intervalli nint, per ogni abbiamo il numero segnalato a rischio all’inizio di tale intervallo, nrisk i , il tempo in cui viene fornito il numero a rischio, trisk i , il primo numero di riga delle coordinate estratte per quell’intervallo di tempo i inferiore e l’ultimo numero di riga delle coordinate estratte per quell’intervallo di tempo i superiore . nrisk i e trisk vengo dalla pubblicazione originale, mentre inferiore i e superiore vengo dal numero di clic fatto su ogni intervallo, al fine di creare il primo file di dati di input. Per ogni i, i inferiore è uguale a k quando T k = trisk i e i superiore è uguale a k quando Tk+1= triski + 1.

I dati di input finali richiesti sono il numero totale di eventi, totevents.

Iniziamo descrivendo l’algoritmo per il caso in cui il numero a rischio è segnalato all’inizio dello studio e almeno un altro punto temporale e quando viene riportato il numero totale di eventi (caso “tutte le informazioni”). Mostriamo quindi come l’algoritmo può essere adattato quando il numero a rischio è riportato solo all’inizio dello studio (caso “nessun numero a rischio”), quando il numero totale di eventi non è riportato (caso “nessun evento totale”) e quando nessuno di questi è riportato (caso “nessuno”).

L’algoritmo per il caso “tutte le informazioni”

Il numero di individui censurati non è disponibile dai dati riportati. Usiamo quindi i numeri segnalati a rischio, nrisk i, per approssimare il numero di individui censurati su ogni intervallo di tempo i. Non possiamo identificare il modello di censura esatto all’interno di ogni intervallo, e quindi siamo costretti a fare un’ipotesi. Abbiamo ipotizzato che la censura avvenga a un ritmo costante all’interno di ciascuno degli intervalli di tempo, il che sembra ragionevole se il modello di censura non è informativo (ogni soggetto ha un tempo di censura che è statisticamente indipendente dal loro tempo di fallimento).

L’algoritmo è costituito dai seguenti passaggi (illustrati anche in Figura 3).

Figura 3
figura3

Diagramma di flusso dell’algoritmo (caso’ tutte le informazioni’).

PUNTO 1. Abbiamo prima forma un’ipotesi iniziale per il numero censurato su un intervallo i. Se non ci fossero persone censurato su un intervallo i, allora il numero a rischio all’inizio del seguente intervallo, nri k i + 1 n o c e n s o r , potrebbe essere il numero a rischio all’inizio dell’intervallo i, moltiplicato per la probabilità di sperimentare l’evento all’intervallo ho condizionato essere vivi all’inizio dell’intervallo 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

arrotondato al numero intero più vicino.

la Nostra ipotesi iniziale per il numero censurato intervallo i è la differenza tra il numero segnalato a rischio all’inizio dell’intervallo i + 1, nriski+1, e il numero a rischio in nessuna censura:

n c e n ^ s o r i = n r i s k i + 1 n o c e n s o r e n a r i s k i + 1 n c e n ^ s o r i = 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)

PASSO 2. Distribuiamo i c=1,…,nce n ^ quindi r i censore volte, ce n ^ t c , in modo uniforme su un intervallo 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)

Il numero di osservazioni censurate tra estratti KM coordinate k e k + 1 si trova contando il numero stimato di censurare volte, ce n ^ t c , che si trovano tra il tempo T k e Tk+1:

c ê n k = ∑ c = 1∈ } )
(5)

dove I {c e n ^ t c}} è un indicatore che restituisce 1 se ce n ^ t c si trova sull’intervallo e 0 altrimenti.

PUNTO 3. Il numero di eventi, d ^ k, ad ogni coordinata KM estratta, k, e quindi il numero di pazienti a rischio alla successiva coordinata, n ^ k + 1, può quindi essere calcolato. Ri-organizzare Eq. 2, otteniamo che d ^ k è uguale al numero di pazienti a rischio alla coordinata KM estratta, k, moltiplicato per uno meno la probabilità di sperimentare l’evento alla coordinata KM estratta, k, diviso per l l a s t ( k ) K M la probabilità di sopravvivenza KM stimata alla coordinata precedente in cui stimiamo che si è verificato un evento, ultimo(k). Gli intervalli delle stime KM sono progettati per essere tali che almeno un evento si verifica all’inizio di ogni intervallo, ma questo non è necessariamente il caso per le nostre coordinate estratte, e quindi abbiamo bisogno di tenere traccia del tempo dell’ultimo evento:

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

dove k’ è tale che d ^ k ‘>0

ma d ^ j =0per j = k ‘ + 1,…, k-1

Utilizzando eq.2, abbiamo:

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

Quindi:

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)

arrotondato al numero intero più vicino.

Il numero di pazienti a rischio ad ogni coordinata estratta, k, viene quindi ottenuto utilizzando Eq.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)

dove all’inizio dell’intervallo impostiamo n ^ l o w e r i =nris k i . Ciò produce un numero stimato a rischio all’inizio del seguente intervallo nrîs k i + 1 = n ^ u p p e r i + 1 .

PUNTO 4. Se nrîs k i + 1 n nris k i + 1, aggiustiamo nuovamente il numero stimato di osservazioni censurate nell’intervallo i, ncenŝor, di:

+ 1 )
(8)

Ripetiamo i passaggi 2-3 iterativamente fino a quando il numero stimato e pubblicato corrisponde al rischio (cioè nrîs k i + 1 =nris k i + 1).

PUNTO 5. Se i + 1 non è l’ultimo intervallo, ripetiamo i passaggi 1-4 per il seguente intervallo.

PUNTO 6. Negli RCT pubblicati, non vi è generalmente alcun numero a rischio pubblicato alla fine dell’ultimo intervallo, nint. Per prima cosa assumiamo che il numero censurato sull’ultimo intervallo sia uguale al numero totale censurato stimato prima dell’ultimo intervallo, ∑ i = 1 n i n t – 1 n c e n o o r i , ponderato dal tempo rimanente rispetto al tempo già trascorso, arrotondato al numero intero più vicino. Ma se questo numero è stato visto essere maggiore del numero di pazienti ancora a rischio all’inizio dell’ultimo intervallo, questo numero a rischio è stato scelto invece. Questa ipotesi è formalmente scritta nell’equazione seguente:

n c e n ^ s o r i d i a n t = min ( T u p p e r i d i a n t i – T e l l o w e r n i n t e t u p p e r l ‘ 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 i n t )

E siamo in fase di esecuzione dei 2-3.

PUNTO 7. Usiamo quindi il numero totale riportato di eventi, totevents. Calcoliamo il numero totale stimato di eventi ottenuti all’inizio dell’ultimo intervallo, k k = 1 u p p e r n i n t-1 d ^ k . Se questo è maggiore o uguale a totevents assumiamo che non si verifichino più eventi o censure:

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

PUNTO 8. Se k k = 1 u p p e r n i n t-1 d ^ k è inferiore a totevents ri-aggiustiamo il numero stimato di osservazioni censurate nell’intervallo nt, nce n ^ so r n i n t, per la differenza nel numero totale di eventi:

(9)

Quindi rieseguiamo i passaggi 2-3, 8 per l’ultimo intervallo, nint, fino a quando il numero totale stimato di eventi, k k = 1 u p p e r n i n t – 1 d ^ k , è uguale al numero totale riportato di eventi, totevents o fino a quando il numero totale stimato di eventi è inferiore al numero totale riportato di eventi ma il numero totale di censure nell’ultimo intervallo, nce n ^ so r n i n t , diventa uguale a zero.

Aggiustamenti all’algoritmo per il caso ‘nessun numero a rischio’

In questo caso c’è solo un intervallo nint = 1. Per prima cosa assumiamo che il numero totale censurato sia uguale a zero e quindi procediamo come nel passaggio 8.

Aggiustamenti all’algoritmo per il caso ‘nessun evento totale’

In questo caso, procediamo come per il caso ‘tutte le informazioni’ tranne che non è possibile eseguire alcuna ri-regolazione utilizzando il numero totale di eventi e ci fermiamo quindi al passaggio 6.

Adeguamento all’algoritmo per il caso “nessuno dei due”

Quando non sono riportati né il numero totale di eventi né i numeri a rischio oltre l’inizio dello studio, abbiamo ipotizzato che non ci fossero osservazioni censurate. Questa è un’ipotesi forte, ma forte come qualsiasi altra ipotesi che potremmo fare sulla censura senza ulteriori informazioni. A causa della mancanza di informazioni, è prevista una qualità inferiore dei risultati.

Ottenere i dati del singolo paziente (IPD) dai dati Kaplan-Meier ricostruiti

Dai nostri parametri Kaplan-Meier ricostruiti d ^ k, cê n k, n ^ k per ogni coordinata KM estratta k = 1,…, N, possiamo ricavare l’IPD che genererebbe quei dati. Quest’ultimo pezzo di codifica è in realtà abbastanza semplice. Ogni volta che viene stimato un evento o una censura, viene registrato il tempo corrispondente e un indicatore di evento (uno per l’evento e zero per la censura).

Valutazione della riproducibilità e dell’accuratezza

Nell’esercizio di convalida sono state utilizzate sei coppie di curve Kaplan-Meier. Questi sono stati tratti da un sottoinsieme di pubblicazioni che facevano parte di una revisione look-back dei metodi di analisi del tempo di sopravvivenza utilizzati nelle valutazioni economiche . Abbiamo effettuato una ricostruzione di ventidue probabilità di sopravvivenza, sette tempi medi di sopravvivenza, sei hazard ratio e quattro errori standard dei log hazard ratio che sono stati riportati in queste quattro pubblicazioni. Ciascuno è stato ricostruito in due occasioni dagli stessi tre osservatori. Due dei tre osservatori non sono stati coinvolti nello sviluppo dell’algoritmo.

La riproducibilità e l’accuratezza del metodo sono state valutate per ciascuno dei 4 diversi livelli di informazione (“tutte le informazioni”, “nessun numero a rischio”, “nessun evento totale” e “nessuno”). Per valutare le differenze tra le statistiche ricostruite e quelle originali, è stata utilizzata la scala naturale per le probabilità di sopravvivenza, mentre la scala di log è stata utilizzata per le mediane, le ore e le loro incertezze. Le curve di Kaplan Meier e le ore di Cox sulla base di dati ricostruiti sono state stimate utilizzando le routine R survfit e coxph.

Abbiamo montato un ANOVA standard a due vie con misure ripetute alle differenze tra i risultati ricostruiti e i risultati originali, sia sulla scala naturale che sulla scala log a seconda della statistica considerata. Le componenti della varianza erano exemplar, observer, exemplar × observer interaction e within-cell error. Poiché il valore p del test F-ratio per l’interazione era in tutti i casi superiore al 10%, abbiamo unito il termine di interazione con il termine di errore all’interno della cella. L’approccio scelto è simile a quello indicato nelle applicazioni ingegneristiche come “ripetibilità e riproducibilità del calibro”.

La riproducibilità rappresenta l’errore se un singolo osservatore esegue una singola ricostruzione per una statistica specificata. Questo è stato stimato come la somma dell’errore tra osservatore e osservatore. La simulazione Monte Carlo del modello ANOVA montato è stata utilizzata per ottenere gli intervalli di confidenza del 95% attorno alle deviazioni standard. I gradi di libertà per l’interno, il tra e le variazioni di risultato sono stati assunti per seguire le distribuzioni chi-quadrato. Per garantire una solida inferenza, sono stati estratti 150 000 campioni di gradi di libertà da ciascuna di queste distribuzioni, vale a dire per ciascuna fonte di variazione. Quindi, le stime dei quadrati medi sono state calcolate, utilizzando la somma dei quadrati ottenuti dall’ANOVA e dal campione ottenuto dalla simulazione, per ciascuno dei 150 000 campioni e per ciascuna delle fonti di variazione. Le corrispondenti deviazioni standard di 150 000 all’interno, tra e risultato sono state successivamente stimate e abbiamo finalmente estratto i percentili 2.5 e 97.5 per ottenere le stime degli intervalli di confidenza.

Per valutare l’accuratezza abbiamo esaminato la differenza media tra le statistiche ricostruite e quelle originali. Il pregiudizio medio risultante, o errore medio (ME) riflette una sovra – o sottostima sistematica. Gli intervalli di confidenza del 95% sono ottenuti direttamente dalla stima delle deviazioni standard fornite dall’ANOVA. Abbiamo anche registrato bias assoluto o errore assoluto medio (MAE). Questo ignora la direzione degli errori e misura la loro grandezza, dando una misura dell’accuratezza assoluta dei risultati ricostruiti. È stato nuovamente utilizzato un metodo di simulazione per ottenere gli intervalli di confidenza del 95%, che presupponevano che i MES fossero normalmente distribuiti. Per ogni statistica, per garantire una solida inferenza, sono stati prelevati 150 000 campioni dalla distribuzione normale con la media e la varianza osservate, come indicato dall’ANOVA. Abbiamo quindi calcolato i corrispondenti valori assoluti 150 000 di questi numeri e abbiamo infine estratto i percentili 2.5 e 97.5 per ottenere le stime degli intervalli di confidenza.

Infine abbiamo registrato la variazione della differenza tra le statistiche ricostruite e quelle originali che era dovuta alla scelta degli esemplari, cioè alle 22 probabilità di sopravvivenza, 7 mediane, 6 ore e 4 errori standard delle ore di log. Ciò fornisce un’ulteriore indicazione dell’accuratezza del metodo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

More: