È un po 'complicato poiché il pericolo è una stima di una probabilità istantanea (e si tratta di dati discreti), ma la funzione basehaz
potrebbe essere di aiuto, ma restituisce solo il rischio cumulativo. Quindi avresti ancora dovuto eseguire un ulteriore passaggio.
Ho anche avuto fortuna con la funzione muhaz
. Dalla sua documentazione:
library(muhaz)
?muhaz
data(ovarian, package="survival")
attach(ovarian)
fit1 <- muhaz(futime, fustat)
plot(fit1)

Non sono sicuro che il modo migliore per ottenere con l'intervallo di confidenza del 95%, ma il bootstrap potrebbe essere un approccio.
#Function to bootstrap hazard estimates
haz.bootstrap <- function(data,trial,min.time,max.time){
library(data.table)
data <- as.data.table(data)
data <- data[sample(1:nrow(data),nrow(data),replace=T)]
fit1 <- muhaz(data$futime, data$fustat,min.time=min.time,max.time=max.time)
result <- data.table(est.grid=fit1$est.grid,trial,haz.est=fit1$haz.est)
return(result)
}
#Re-run function to get 1000 estimates
haz.list <- lapply(1:1000,function(x) haz.bootstrap(data=ovarian,trial=x,min.time=0,max.time=744))
haz.table <- rbindlist(haz.list,fill=T)
#Calculate Mean,SD,upper and lower 95% confidence bands
plot.table <- haz.table[, .(Mean=mean(haz.est),SD=sd(haz.est)), by=est.grid]
plot.table[, u95 := Mean+1.96*SD]
plot.table[, l95 := Mean-1.96*SD]
#Plot graph
library(ggplot2)
p <- ggplot(data=plot.table)+geom_smooth(aes(x=est.grid,y=Mean))
p <- p+geom_smooth(aes(x=est.grid,y=u95),linetype="dashed")
p <- p+geom_smooth(aes(x=est.grid,y=l95),linetype="dashed")
p

Questo è abbastanza buono. Sono molto poco pratico con data.table. Qualcuno può ottenere facilmente est.grid come sequenza di 1 anno? Inoltre, sto cercando quell'intervallo 0:50 nei miei dati ma il bootstrap non campiona sempre il tempo massimo e quindi plot.table non restituisce l'intervallo di cui ho bisogno. Hai qualche suggerimento? – jnam27
Penso di essere un po 'confuso. Cosa succede se si sostituisce 744 con 50 (il limite superiore di ciò che si desidera stimare)? Non dovrebbe importare che il bootstrap non selezioni il massimo in ogni campione, poiché alla fine tutti i punti stimati sono mediati. Forse se hai pubblicato una rappresentazione più riproducibile dei tuoi dati, potrei capire meglio. –