2016-10-20 5 views
1

Ich zeichnete Überlebenskurven mit survplot{rms}. Als ich jedoch n.risk = TRUE verwendete, um die Nummer der Risikotabelle zu plotten, gab R mir eine Nummer des gesamten Datensatzes, nicht für jede Kurve, und ich kann nicht herausfinden warum.survplot() in "rms": Anzahl der Risiken wird durch die gesamte Gruppe angezeigt, nicht für jede Kurve

# initialize survival commands in R 

survive <- Surv(dat$dx_lastcontact_death_months, dat$event) 

library(rms) 

ff <- cph(survive ~ radiation, data = dat,x = T, y = T) 

survplot(ff,radiation,conf.int = 0.95, 
     lty = c(1,1,1), col = c("red","blue","yellow"), xlab = "", ylab = "", 
     xlim = c(0,60), time.inc = 12, label.curves = F, n.risk = T) 

n.risk.shown.wrong

Zum Beispiel zum Zeitpunkt = 0, sollte die Zahl des Risikos3042 sein, jetzt ist die Handlung 13694 zeigt, die Summe der drei Gruppen. Könnte mir jemand helfen herauszufinden, wo es falsch läuft? Vielen Dank?

+0

Es ist schwierig, da man ein reproduzierbares Beispiel hat keine zu helfen (wir haben nicht 'dat' so können wir Ihre Ergebnisse nicht reproduzieren). Sie könnten versuchen,

Antwort

1

@WeihuangWong ist möglicherweise korrekt. Ich erhalte die gleiche Art von Ausgabe wie Sie, wenn ich das erste Beispiel in survplot benutze, aber das Hinzufügen einer strat() Funktion um eine kategoriale Variable ergibt das erwartete Ausgabeformat. Ich habe auch surv=T hinzugefügt.

n <- 1000 
set.seed(731) 
age <- 50 + 12*rnorm(n) 
label(age) <- "Age" 
sex <- factor(sample(c('male','female'), n, TRUE)) 
cens <- 15*runif(n) 
h <- .02*exp(.04*(age-50)+.8*(sex=='female')) 
dt <- -log(runif(n))/h 
label(dt) <- 'Follow-up Time' 
e <- ifelse(dt <= cens,1,0) 
dt <- pmin(dt, cens) 
units(dt) <- "Year" 
dd <- datadist(age, sex) 
options(datadist='dd') 

f <- cph(Surv(dt,e) ~ strat(sex), x=T,y=T, surv=T) 
survplot(f, sex, label.curves = F, n.risk = T) 

enter image description here

Verwandte Themen