2015-02-16 11 views
8

Il pacchetto muhaz stima lo hazard function dai dati right censored utilizzando i metodi di smoothing del kernel. La mia domanda è, c'è un modo per ottenere intervalli di confidenza per la funzione di pericolo che calcola muhaz?Intervalli di confidenza della funzione di rischio pacchetto muhaz

options(scipen=999) 
library(muhaz) 
data(ovarian, package="survival") 
attach(ovarian) 
fit1 <- muhaz(futime, fustat) 
plot(fit1, lwd=3, ylim=c(0,0.002)) 

muhaz hazard function

Nell'esempio sopra la muhaz.objectfit presenta alcune voci fit1$msemin, fit1$var.min, fit1$haz.est tuttavia la loro lunghezza è metà fit1$haz.est.

Qualche idea se è possibile estrarre intervalli di confidenza per la funzione di rischio?

EDIT: Ho provato quanto segue based con quello @ user20650 suggerito

options(scipen=999) 
library(muhaz) 
data(ovarian, package="survival") 
fit1 <- muhaz(ovarian$futime, ovarian$fustat,min.time=0, max.time=744) 


h.df<-data.frame(est=fit1$est.grid, h.orig=fit1$haz.est) 

for (i in 1:10000){ 
d.s.onarian<-ovarian[sample(1:nrow(ovarian), nrow(ovarian), replace = T),] 
d.s.muhaz<-muhaz(d.s.onarian$futime, d.s.onarian$fustat, min.time=0, max.time=744) 
h.df<-cbind(h.df, d.s.muhaz$haz.est) 
} 


h.df$upper.ci<-apply(h.df[,c(-1,-2)], 1, FUN=function(x) quantile(x, probs = 0.975)) 
h.df$lower.ci<-apply(h.df[,c(-1,-2)], 1, FUN=function(x) quantile(x, probs = 0.025)) 
plot(h.df$est, h.df$h.orig, type="l", ylim=c(0,0.003), lwd=3) 
lines(h.df$est, h.df$upper.ci, lty=3, lwd=3) 
lines(h.df$est, h.df$lower.ci, lty=3, lwd=3) 

Impostazione max.time sembra opere, ogni campione HAST bootstrap gli stessi punti della griglia stima. Tuttavia, l'IC ha ottenuto, ha poco senso. Normalmente mi aspetterei che gli intervalli siano stretti a t = 0 e diventino più ampi col tempo (meno informazioni, più incertezza) ma gli intervalli ottenuti sembrano essere più o meno costanti nel tempo.

enter image description here

+2

Potrebbe riavviarlo ?. Questo 'con (fit1, trama (est.grid, haz.est, type =" l ", lwd = 3, ylim = c (0,0.002)))' fornisce lo stesso grafico, quindi avrai bisogno di stime di 'haz .est' con gli stessi punti di tempo di 'fit1'. Tuttavia, mentre ricampionate e rimontate il modello 'muhaz', cambiano i tempi, da un rapido tentativo, penso che potete forzare' est.grid' ad essere agli stessi punti di tempo per ogni ricampionamento se impostate il 'min.time' e 'max.time' per essere uguale alla misura originale. cioè 'con (dat, muhaz (futime, fustat, min.time = 0, max.time = 744))', dove 'dat' sono i dati di bootstrap. – user20650

+0

Impostazione max.il tempo sembra funzionare, ogni campione di bootstrap ha gli stessi punti della griglia di stima. Tuttavia, l'IC ha ottenuto, ha poco senso. Normalmente mi aspetterei che gli intervalli si allarghino con il tempo (meno informazioni, più incertezza) ma gli intervalli ottenuti sembrano essere più o meno costanti nel tempo. – ECII

risposta

1

bootstrap fornisce la risposta, come il commentatore ha suggerito. Le tue intuizioni hanno ragione che devi aspettarti che gli IC aumentino man mano che il numero a rischio diminuisce. Tuttavia, questo effetto diminuirà a causa del processo di livellamento e più lungo sarà l'intervallo su cui viene applicato il livellamento, meno si dovrebbe notare la variazione di dimensioni dell'elemento della configurazione. Prova ad appianare su un intervallo sufficientemente breve e tu devi notare che gli elementi di configurazione si allargano in modo più evidente.

Come si può notare, questi grafici di rischio livellati possono essere di uso molto limitato e sono estremamente sensibili a come viene eseguita la levigatura. Come esercizio, è istruttivo simulare i tempi di sopravvivenza da una serie di distribuzioni di Weibull w/il parametro di forma impostato su 0.8, 1.0, 1.2, quindi esaminare questi diagrammi di pericolo livellati e provare a categorizzarli. Nella misura in cui questi grafici sono informativi, dovrebbe essere abbastanza facile capire la differenza tra queste tre curve in base al tasso di tendenza della funzione di rischio. YMMV, ma non sono stato molto impressionato dai risultati quando ho fatto questi test con campioni di dimensioni ragionevoli coerenti con gli studi clinici in oncologia.

In alternativa alle trame di rischio livellate, è possibile provare a montare curve esponenziali a tratti usando il metodo di Han et al. (http://www.ncbi.nlm.nih.gov/pubmed/23900779) e facendo il bootstrap. Il loro algoritmo identificherà i punti di rottura in cui vi è un cambiamento statisticamente significativo nella percentuale di rischio e potrebbe darvi un migliore senso dell'andamento della pericolosità rispetto ai diagrammi di pericolo livellati. Eviterà anche la scelta alquanto arbitraria ma consequenziale dei parametri di livellamento.

+0

Grazie per la tua risposta elaborata. Sai se esiste un pacchetto R per quella procedura? – ECII

+0

Non credo che abbiano ancora pubblicato il loro codice R. Potresti essere in grado di ottenere il codice dagli autori se spieghi come lo userai e chiederai gentilmente. In alternativa, il loro articolo dovrebbe spiegare il metodo abbastanza bene da renderlo un progetto interessante. – jrdnmdhl

Problemi correlati