Come stimare la funzione di rischio basale nel modello Cox con R


13

Devo stimare la funzione di rischio di base in un modello Cox dipendente dal tempoλ0(t)

λ(t)=λ0(t)exp(Z(t)β)

Mentre ho seguito il corso di sopravvivenza, ricordo che la derivata diretta della funzione di rischio cumulativo ( ) non sarebbe un buon stimatore perché lo stimatore di Breslow fornisce una funzione di passaggio.λ0(t)dt=dΛ0(t)

Quindi, c'è qualche funzione in R che potrei usare direttamente? O qualche riferimento su questo argomento?

Non sono sicuro se valga la pena di aprire un'altra domanda, quindi aggiungo solo alcuni retroscena del perché la funzione di rischio di base è importante per me. La formula seguente stima la probabilità che il tempo di sopravvivenza per un soggetto sia maggiore di un altro. In un'impostazione del modello Cox, è richiesta la funzione di rischio di base . λ0(t)

P(T1>T2)=0S1(t)dS2(t)=0S1(t)S2(t)λ2(t)dt



Informazioni sulla stima di Breslow: stats.stackexchange.com/questions/20747/…
Stéphane Laurent

La formula (4) di questo documento fornisce una stima. jstor.org/stable/2530904
elong

Risposte:


20

Un modello Cox è stato esplicitamente progettato per essere in grado di stimare i rapporti di rischio senza dover stimare la funzione di rischio di base. Questa è una forza e una debolezza. Il punto di forza è che non è possibile commettere errori nelle funzioni che non si stimano. Questo è un vero punto di forza ed è il motivo per cui le persone lo chiamano "semi-parametrico" ed è in gran parte responsabile della sua popolarità. Tuttavia, è anche una vera debolezza, in quanto una volta che si desidera conoscere qualcosa di diverso dal rapporto di rischio, è spesso necessario disporre della funzione di rischio di base e che vanifica lo scopo stesso di un modello Cox.

Quindi tendo a usare i modelli Cox solo quando sono interessato ai rapporti di rischio e nient'altro. Se voglio sapere altre cose, in genere passo ad altri modelli come quelli discussi qui: http://www.stata.com/bookstore/f flexible-parametric-survival- analysis-stata/


2
+1 Questo è un altro modo di modellare parametricamente i dati di rischio di base.princeton.edu/wws509/notes/c7s4.html
boscovich

3

La funzione di rischio al basale può essere stimata in R usando la funzione "basehaz". Il file "help" afferma che è chiaramente la funzione di "sopravvivenza prevista". Se si ispeziona il codice, è chiaramente la funzione di rischio cumulativo di un survfitoggetto. Per ulteriore stupidità, l'impostazione predefinita è centered=TRUEche a) non è una funzione di rischio di base (come suggerirebbe il nome), e b) impiega la previsione alla media che è ampiamente screditata come valida in ogni senso pratico.

E al punto precedente: sì, questa funzione utilizza la funzione Step. È possibile trasformare quell'uscita in una funzione di pericolo usando il livellamento. La parte peggiore di tutto, qual è l'intervallo di incertezza per quella previsione? Puoi ottenere una medaglia Fields se riesci a ricavarla. Non credo che sappiamo nemmeno se il bootstrap funziona o meno.

Come esempio:

set.seed(1234)
x <- rweibull(1000, 2, 3)
coxfit <- coxph(Surv(x) ~ 1)
bhest <- basehaz(coxfit)
haz <- exp(diff(bhest[, 1])*diff(bhest[, 2]))
time <- (bhest[-1,2] + bhest[-1000, 2])/2
b <- 2^-3

curve(3*b*x, from=0, to=max(x), xlab='Survival time', ylab='Weibull hazard')
points(t <- bhest[-1,2], h <- diff(bhest[, 1])/diff(bhest[, 2]), col='grey')
smooth <- loess.smooth(t, h)
lines(smooth$x, smooth$y, col='red')
legend('topright', lty=c(1,1,0), col=c('black', 'red', 'grey'), pch=c(NA,NA,1), c('Actual hazard fun', 'Smoothed hazard fun', 'Stepped discrete-time hazards'), bg='white')

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.