Recupero dei dati grezzi dietro una curva di sopravvivenza non parametrica

Principi

Per cominciare, assumeremo che i valori della curva Kaplan-Meier o Nelson-Aalen possano essere misurati con sufficiente accuratezza e precisione (rilasseremo questo requisito nelle sezioni successive). In tali casi, i primi principi e alcune detrazioni – in genere permettono di recuperare non solo (i) il distinto “evento” di tempo t che definisce ogni rischio, ma anche per ogni rischio set (ii) il numero a rischio n e (iii) il numero di eventi d’. Quindi, da successive sottrazioni, si può calcolare (iv) il numero di osservazioni censurate tra successive rischio imposta c. A meno che i tempi esatti di censurate osservazioni sono indicate sul grafico, i dati recuperati possono essere compressi in sequenza

n 0 , c 0 , t 1 , n 1 , d , 1, c 1 , t 2 , n 2 , d 2 , … .

Se i tempi di censura esatti sono indicati sul grafico, in linea di principio, l’intero set di dati può essere ricostruito; altrimenti, il meglio che si può fare è usare l’interpolazione, insieme alla descrizione del periodo di reclutamento e delle date di chiusura dello studio, per imputare le posizioni delle osservazioni censurate nei vari intervalli di tempo. La maggior parte degli autori li hanno distanziati uniformemente all’interno di questi intervalli.

Per rivedere i principi e illustrare il ragionamento, iniziamo con un piccolo esempio, utilizzando un set di dati illustrativo ampiamente utilizzato. La figura 1a mostra la stima Kaplan-Meier della funzione di sopravvivenza per i pazienti con leucemia mieloide acuta (AML) nel gruppo “mantenuto”, disponibile nel pacchetto di sopravvivenza in R. La domanda al momento era se il ciclo standard di chemioterapia dovesse essere mantenuto per cicli aggiuntivi per questi pazienti. Per cominciare, chiediamo al lettore di ignorare le informazioni aggiuntive che mostriamo su ogni pannello e di limitare la loro attenzione alla curva, con i suoi passi e segni di censura.

Figura 1
figure1

Kaplan-Meier survivor funzione, che mostra le altezze, salti, e rapporti di altezze. (a) Stima Kaplan-Meier della funzione di sopravvivenza per i pazienti con AML nel gruppo mantenuto, mostrando le altezze S (t j). (b) Stessa curva K-M che mostra i salti J (t j ). (c) Stessa curva K-M che mostra i rapporti delle altezze S(t j )/S (tj−1). La curva mostrata in ciascun pannello è stata montata e disegnata utilizzando il pacchetto di sopravvivenza in R.

Sia S(t j ) denotare la probabilità di sopravvivenza, o l ‘’ altezza ‘della curva di sopravvivenza, al tempo t j e definire il’ salto ‘ J(t j ) come S(tj−1)−S(t j ). Di solito lo sapremmo, ma supponiamo di non sapere nemmeno n0, il numero di soggetti al tempo t0=0. Senza altre informazioni tranne i valori della funzione passo e i tempi dei passi, quanta delle informazioni grezze si può recuperare da tale grafico, se le S sono conosciute con sufficiente precisione? (Con sufficiente precisione, intendiamo che il vero valore può essere dedotto in modo affidabile per essere n j e non n j -1 o n j + 1).

Una rapida ispezione della Figura 1a mostra che ci sono sette salti e tre segni di censura, quindi n0 è almeno 10. Anche senza segni di censura, le differenze nella dimensione dei salti indicano qualche censura-se non ce ne fossero, tutti i salti sarebbero di dimensioni uguali (1/n0), o multipli di questo, cioè, m/n0 se m>1 eventi in un set di rischio. Come mostrato in Figura 1b, J(t3)>J(t2), mentre J(t5)>J(t4) e J(t7)>J(t6); inoltre, dal momento che l’ultima osservazione è censurato, possiamo dedurre che ci deve essere almeno di quattro censurato valori in totale.

Un modo per capire perché i salti (a singolo evento) situati più a destra possono essere più grandi di quelli che li precedono è tramite l’algoritmo di ridistribuzione a destra di Efron : inizialmente, una massa di probabilità di 1/n0 viene posizionata ad ogni tempo di osservazione. Procedendo da sinistra a destra, quando si incontra un tempo censurato, la sua massa viene ridistribuita in parti uguali a tutte le osservazioni sulla sua destra. Questa procedura di spazzare via le osservazioni censurate viene ripetuta fino a quando tutte le loro masse associate sono state ridistribuite.

Nella Figura 1b, i primi due salti J(t1) e J(t2) sono di uguale dimensione di 0.09091, o 1/11, suggerendo che potrebbe essere stato inizialmente 11 persone a rischio (ovviamente, senza avere ulteriori informazioni, potrebbe anche essere stato il 22 o 33, ma i valori successivi della curva effettivamente la regola di questi). Il fatto che il terzo salto sia più grande stabilisce che ci deve essere un’osservazione censurata a t2 o dopo e prima di t3. Ma poiché (a differenza delle altre osservazioni censurate che rientrano strettamente tra i tempi degli eventi) non è indicato da un segno di spunta sul grafico, la censura deve, per convenzione, essere avvenuta immediatamente dopo l’evento(s) a t2, ma a causa della discrezione dei dati, sono stati registrati come un ‘ t2+’. Pertanto, mentre i marchi censurati possono fornire posizioni più precise delle osservazioni censurate, i pacchetti statistici non li visualizzano necessariamente tutti, e quindi non si dovrebbe fare affidamento sull’identificazione di tutti solo dai segni di spunta.

Seguendo l’algoritmo di Efron, J (t3) di dimensione 0.10227 può essere visto come la somma della massa originale di 1/11 (0.09091) e(1/8)della stessa massa di dimensioni associata all’osservazione censurata ‘ t2+’ che è stata ridistribuita tra gli otto che erano a rischio subito dopo t2, cioè J(t3)=J(t2)+1/8×J (t2). Tuttavia, l’aritmetica e le molteplici possibili “eredità” e configurazioni diventano complicate, se ci sono più eventi allo stesso tempo osservato, o se più di un’osservazione in un intervallo viene censurata. Quindi, poiché le espressioni per le dimensioni assolute dei salti iniziano a diventare complicate, in quale altro modo potremmo determinare i numeri a rischio – e il numero di eventi – al momento di ogni salto successivo?

Abbiamo trovato più semplice assumere prima che ogni dj =1, quindi derivare il corrispondente nj , quindi utilizzare eventuali anomalie nel modello di nj successive per rivedere dj a un numero intero più grande e ridimensionare il corrispondente nj di conseguenza. Un modo per andare da dj a nj è sfruttare la struttura del “prodotto delle probabilità di sopravvivenza condizionali” dello stimatore KM: invertire la sequenza di prodotti che vengono utilizzati come stimatore e dividere the t j per t t j − 1 . Il rapporto risultante è 1-d(t j )/n(t j ), dove d(t j ) indica il numero di eventi al tempo t j e n (t j ) è il numero a rischio al tempo t j . Se possiamo stabilire cos’è d (t j), otteniamo la semplice espressione per nj :

n t j = d t j 1 − t t j / t t j − 1 ,j=1,2,….
(1)

In effetti, come mostrato nella Figura 1c, possiamo dedurre usando questa espressione che i numeri a rischio a {t1,…,t7} sono {n1,…,n7}={11,10,8,7,5,4,2}.

I numeri iniziali – che di solito sono riportati nelle pubblicazioni – e la sequenza di numeri “montati” o “inferiti” a rischio, possono essere usati per stabilire con certezza virtuale il numero di eventi ad ogni tempo di evento distinto – il djs. Se effettivamente c’è un singolo evento ad ogni tempo di evento distinto, allora i numeri inferiti a rischio formeranno – a parte gli errori di misurazione (di solito piccoli) – una sequenza monotonicamente decrescente. Le partenze sistematiche dalla monotonicità sono immediatamente evidenti: se ci fossero infatti due eventi in un momento evento distinto, il numero ‘montato ‘a rischio, nj , sarà 1/2 di quello che dovrebbe essere, e si distinguerà distintamente dai suoi vicini singleton-based; se ci fossero tre eventi, il numero’ montato’ a rischio sarà 1/3 dei suoi vicini, e così via. Lo illustreremo più avanti quando discuteremo l’esempio nella Figura 2 (a destra). Da {s1,…, s7} così stabilito, e {n1,…, n7}, possiamo quindi per sottrazione dedurre che nel nostro esempio {c1,…, c7}={0,1,0,1,0,1,1}.

Figura 2
figure2

Tassi di eventi cumulativi e numeri stimati a rischio. (A sinistra) Tassi di eventi cumulativi in pazienti con fibrillazione atriale trattati con warfarin o rivaroxaban. (A destra) La posizione verticale di ciascun punto rappresenta il numero stimato a rischio nel braccio warfarin nel rischio impostato in questione (posizione orizzontale). I numeri sono stati ricavati applicando l’equazione 1 alle stime S (t j ) derivate dai comandi PostScript utilizzati per il rendering dell’immagine vettoriale. I diamanti rappresentano i numeri a rischio ai giorni 0, (120), 840, riportati in fondo alla figura nell’articolo. Chiaramente, anche se non fossero stati forniti, avrebbero potuto essere stimati molto accuratamente solo dalle successive stime S (t j). La leggera mancanza di monotonicità nella serie (a) riflette gli errori di arrotondamento nelle coordinate PostScript. Ogni nj in serie (b) si basa sul presupposto (chiaramente falso) che il corrispondente dj =1; in questi distinti tempi di guasto, chiaramente, dj =2, quindi ogni nj è il doppio di quello mostrato. Allo stesso modo, le nj s in serie (c) si basano sull’assunzione di dj =1, quando, ancora chiaramente, dj =3, e la nj dovrebbe essere tre volte quella mostrata.

Se gli spazi temporali tra le t adiacenti sono relativamente brevi o se i numeri a rischio in determinati punti temporali (ad es.. annuale o mensile) sono indicati sul grafico, quindi mediante ulteriore interpolazione della sequenza di numeri a rischio, gli importi totali del tempo di persona per ogni intervallo di tempo di interesse possono essere stabiliti con un errore minimo. Le trame di sopravvivenza hanno in genere una larghezza:rapporto di aspetto altezza maggiore di 1. Pertanto, gli errori relativi tenderanno ad essere più piccoli sul “tempo” che sulla dimensione “persona” degli input del denominatore persona-tempo per i tassi di evento calcolati.

La formula precedente si riferiva alla curva di Kaplan-Meier. Se invece della curva di sopravvivenza, il grafico mostra lo stimatore Nelson-Aalen della funzione cumulative hazard rate, data da H t j = t t i ≤ t j d t i / n t i, allora l’espressione per n (t j ) è

n t j = d t j t t j − t t j − 1 ,j=1,2,….
(2)

Non è sempre evidente dall’etichetta dell’asse verticale se una curva crescente di “Nelson-Aalen” si riferisce a questa sequenza di H s, cioè pericoli integrati, o all’incidenza cumulativa, o rischio, cioè, CI j =R j =1− exp. Se infatti è quest’ultimo, cioè il complemento di S, allora la formula per n j diventa

n t j = d t j log log t j − 1 / t t j .
(3)

Fino ad ora, abbiamo ipotizzato che le coordinate verticali e orizzontali dei vertici possano essere misurate con una precisione “sufficiente”. Passiamo ora a ciò che può essere ottenuto utilizzando le curve K-M e N-A effettive che possono essere estratte da immagini bitmap e grafica vettoriale nelle pubblicazioni.

Aspetti pratici

Solo un decennio o due fa, era ancora comune, ma dispendioso in termini di tempo, utilizzare l’approccio “matita e righello” per “leggere le probabilità di sopravvivenza” da un grafico cartaceo (possibilmente ingrandito). Questa pratica potrebbe comportare un errore di misura sostanziale, specialmente quando la stampa era piccola o la risoluzione era scarsa. Oggi, poiché la maggior parte dei grafici può essere letta elettronicamente o convertita in tale formato, il lavoro ad alta intensità di lavoro può essere ridotto, con maggiore precisione e accuratezza. Nel nostro sito http://www.med.mcgill.ca/epidemiology/hanley/software/DataRecovery, abbiamo raccolto insieme una serie di grafici trovati in articoli pubblicati elettronicamente. Queste immagini sono in genere di due tipi, ciò che la documentazione di Adobe Acrobat si riferisce a “immagini raster” e “oggetti vettoriali”.

Immagini raster

Un’immagine raster, o bitmap, è costituita da pixel (i più piccoli elementi dello schermo indirizzabili in un dispositivo di visualizzazione) disposti in una griglia bidimensionale. Ogni pixel, rappresentato da un punto o un quadrato, ha le sue coordinate e il suo colore. Quando si ingrandisce sempre di più, l’immagine diventa più granulosa e i singoli punti che compongono le linee e i simboli sul grafico diventano più evidenti.

In un’immagine in bianco e nero o in scala di grigi, il bianco è in genere rappresentato dal valore 1, il nero da uno 0 e il grigio da un valore intermedio; le immagini a colori utilizzano uno schema di codifica più elaborato che coinvolge più canali, come RGB o CMYK. Proprio come nella fotografia digitale, maggiore è il numero di pixel, più fedele è la rappresentazione dei valori originali. Per un esempio dallo screening del cancro alla prostata (un argomento da discutere più avanti), vedere le figure due e tre nell’articolo di Andriole .

Immagini raster possono essere memorizzati in un certo numero di formati di file; i più comuni sono.JPEG,.png,.tiff, e.GIF. Possono essere generati in diversi modi, ad esempio (i) scansionando la copia cartacea e memorizzandola come immagine raster, (ii) (se si trova in una pagina di un documento elettronico) ingrandendo l’area contenente il grafico e facendo uno screenshot, o (iii) (se è già incorporato in un file PDF) utilizzando la funzione “esporta immagini” in Adobe Acrobat.

I punti desiderati sul grafico possono essere estratti dal file immagine in due modi. Il più tecnico è quello di utilizzare un linguaggio di programmazione come il Basic, C++, o SAS per leggere i valori di colore in una matrice 2d, identificare i colori della puntini pixel posizioni della chiave di riferimento, come gli assi si intersecano, e le più lontane verticale e orizzontale tacche), e, infine, determinare le sequenze di pixel posizioni contenere i punti che compongono le curve di interesse. Mentre il pacchetto ReadImages semplifica la lettura dell’array in R, la programmazione per elaborare l’array è ancora una sfida considerevole, in particolare per le porzioni in cui le curve si sovrappongono.

Il modo più semplice è utilizzare un digitalizzatore grafico, un programma per computer che (i) importa e visualizza l’immagine selezionata sullo schermo e (ii) consente all’utente di identificare i punti di riferimento orizzontali e verticali tramite il cursore e di fare clic su tutte le posizioni sul grafico desiderate, quindi converte e memorizza i valori corrispondenti (x,y). Un certo numero di digitalizzatori grafici (come GraphClick, Engauge Digitizer e Plot Digitizer) sono disponibili gratuitamente sul web. Guyot et al. segnala che il software DigitizeIt (http://www.digitizeit.de/) ha funzionato bene. Perché le digitalizzazioni di immagini raster sono state trattate in dettaglio da Guyot et al. , non daremo esempi ma semplicemente contrapporremo la loro accuratezza con quelli di immagini di vettore nell’analisi di errore teorica sotto.

Immagini vettoriali

Una figura o grafico basato su vettori è costituito da primitive geometriche o elementi come punti e linee; può essere identificato dal fatto che può essere ingrandita indefinitamente senza perdita di qualità. Due punti finali di una linea sono rappresentati da due coppie (x, y) e un punto da una linea di lunghezza zero. Il ‘Post’ in PostScript – il linguaggio più comune per la loro produzione-si riferisce al principio di indipendenza del dispositivo: gli elementi sono resi in tempo reale dalle coordinate memorizzate degli elementi, indipendentemente dall’hardware locale su cui viene utilizzato il software. Questo principio di portabilità è alla base del Portable document Format (PDF), sviluppato da Adobe; i file PDF sono basati sul linguaggio PostScript.

Il contenuto di un documento PDF viene in genere memorizzato come file binario, ma sia l’applicazione Adobe Acrobat Pro, sia l’applicazione di anteprima fornita in Mac OS, possono esportare un documento PDF (o la pagina che contiene il grafico di interesse) come file PostScript, che contiene i comandi. Tali file tendono ad essere grandi e contengono molte informazioni tecniche, ma è facile (se noioso) identificare i comandi che producono gli assi, i segni di spunta e la sequenza di segmenti di linea o punti che compongono le curve K-M e N-A.

In PostScript, le posizioni su una pagina vengono misurate in punti di stampa (72 punti per pollice) dall’angolo in alto a sinistra della pagina. Pertanto, un asse x da 2 pollici (144 punti), che si estende da t = 0 e t = 5, e fisicamente da 1 a 3 in dal lato sinistro della pagina e situato 5 in (360 punti) sotto la parte superiore della pagina sarebbe specificato dal segmento di linea(72, 360) ⇔ (216, 360). Supponiamo che le estremità dell’asse y alto 1,5 in (108 punti) corrispondano rispettivamente a S=0 e S=1. Quindi, da queste coordinate PostScript, possiamo determinare che il segmento di linea (144, 300) ((146.88, 300) è un tratto orizzontale della funzione a gradino prendendo il valore S=(360-300)/108=0.555 nell’intervallo t=(144-72)/(144/5)=2.5 a t=(146.88−72)/(144/5)=2.6 e che il segmento (146.88, 300) ⇔ (146.88, 303) è un salto verticale a t=2.6, di lunghezza Δ S=3/108=0.028 S=0.555 per S=0.583.

Sorprendentemente, alcune pubblicazioni includono un mix di formati. Infatti, nella pubblicazione utilizzata come fonte della Figura Uno , gli assi nella figura originale del New England Journal of Medicine (NEJM) erano stati resi come vettori in PostScript, ma le due curve sono sovrapposte come un’immagine. Il composito è stato analizzato come immagine da Guyot et al. . Al contrario, l’altra figura in quella pubblicazione NEJM è stata resa interamente in PostScript, anche se con alcuni percorsi molto complessi per formare i segmenti di linea.

Precisione

Quanto sono precisi i dati estratti dalle immagini raster e vettoriali? Si può valutare questa domanda a un certo numero di livelli, a partire dalla precisione delle misurazioni themselves(o 1−Ŝ) stesse. Si consideri una tipica immagine raster a 300 punti per pollice (dpi) in cui l’asse S completo (0, 1) è alto 1,6 pollici o 480 pixel. Questo dà una risoluzione di Δ S≈0,002. (Una curva “verso il basso” che termina a dire S=0.9, ma su un grafico che utilizza la scala completa (0,1), spreca una notevole precisione: ha più senso tracciare la funzione “verso l’alto”, 1−S, fino a 0.1, rendendo i valori 1−S accurati entro ±0.0005).

Si consideri invece un’immagine vettoriale contenente la stessa curva, sulla stessa scala verticale 1.6-in (=72×1.6=115.2 punti). Poiché le coordinate fornite nel file PostScript esportato da Adobe Acrobat vengono registrate con tre cifre decimali, la risoluzione è Δ S=1/(115.2×1,000)≈0.00001, o 200 volte quella dell’immagine raster.

Mentre entrambe queste risoluzioni forniscono misure adeguatamente precise di Ŝ e consentono di determinare quanti eventi sono coinvolti in ogni salto, potrebbero non fornire misure così precise del numero a rischio ad ogni salto, poiché è misurato come il reciproco di 1−t t j / t t j − 1 . Come valutazione empirica della precisione delle misurazioni derivate, la figura 2 mostra i numeri stimati da un’immagine raster e da un’immagine vettoriale, insieme – come controllo di validità – ai numeri segnalati a rischio alla fine di ogni intervallo di tempo. Si abbinano molto bene con quelli indicati negli articoli.

La precisione può anche essere quantificata utilizzando un’analisi teorica degli errori. Si consideri due valori adiacenti sulla stessa curva di incidenza cumulativa, dove l’asse verticale va da 0% a 5%, riportato (dopo un certo arrotondamento) per essere y0 e y5 punti, rispettivamente, sopra qualche punto di riferimento; supponiamo che senza arrotondamento, sarebbero Y0 e Y5 punti sopra. Denota le posizioni verticali (analogamente arrotondate) dei due punti adiacenti sul grafico come y ‘e y”, con y “> y’, corrispondenti ai valori non arrotondati di Y’ e Y”. Quindi, le stime del numero a rischio sono le seguenti:

n t j = 20 y 5 − y 0 − y ‘− y 0 y “− y ‘ .

Nell’Appendice, forniamo la varianza di questa quantità derivata, supponendo che gli errori (e) contenuti nelle quattro y siano uguali e indipendenti l’uno dall’altro. In pratica, i punti PostScript sono arrotondati a tre cifre decimali; quindi, la vera posizione Y associata a una posizione riportata di y=563.384 punti si trova tra 563.3835 e 563.3845 punti. Se gli errori sono uniformi su questo intervallo 0,001 tale che σ e ≈0,001 / 12 =0.0003 punti, quindi il coefficiente di variazione (CV) è



Lascia un commento

Il tuo indirizzo email non sarà pubblicato.