Plot von zwei cuminc (cmprsk) Objekten

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Janik
Beiträge: 5
Registriert: Di Mär 17, 2020 10:38 am

Plot von zwei cuminc (cmprsk) Objekten

Beitrag von Janik »

Hallo Leute,

ich möchte zwei cuminc (cmprsk Paket) Objekte im gleichen Plot darstellen um die Kurven direkt gegenüberzustellen. Leider schaffe ich es nicht den Plot zu erstellen. Hier ist ein minimales Beispiel:

Code: Alles auswählen

set.seed(2)
ss <- rexp(100)
gg <- factor(sample(1:2,100,replace=TRUE),1:2,c('a','b'))
cc <- sample(0:2,100,replace=TRUE)
strt <- sample(1:2,100,replace=TRUE)

# Cuminc Objekt 1
xx <- cuminc(ss,cc,gg,strt)

set.seed(3)
ss <- rexp(100)
gg <- factor(sample(1:2,100,replace=TRUE),1:2,c('a','b'))
cc <- sample(0:2,100,replace=TRUE)
strt <- sample(1:2,100,replace=TRUE)

# Cuminc Objekt 2
yy <- cuminc(ss,cc,gg,strt)



#Wie bekomme ich es hin beide Objekte in einem Graph zu plotten?
plot(xx+yy,lty=1,color=1:8)
Ich muss die Base Graphics verwenden, also ggplot ist keine Option. Hoffe es weiß jemand weiter. Freue mich über Antorten. :)
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Plot von zwei cuminc (cmprsk) Objekten

Beitrag von EDi »

So hier?

Code: Alles auswählen

set.seed(2)
ss <- rexp(100)
gg <- factor(sample(1:2,100,replace=TRUE),1:2,c('a','b'))
cc <- sample(0:2,100,replace=TRUE)
strt <- sample(1:2,100,replace=TRUE)

# Cuminc Objekt 1
library(cmprsk)
xx <- cuminc(ss,cc,gg,strt)

set.seed(3)
ss <- rexp(100)
gg <- factor(sample(1:2,100,replace=TRUE),1:2,c('a','b'))
cc <- sample(0:2,100,replace=TRUE)
strt <- sample(1:2,100,replace=TRUE)

# Cuminc Objekt 2
yy <- cuminc(ss,cc,gg,strt)



# adapted from internals of cmprsk::plot.cuminc
plot(xx)
yy$Tests <- NULL
for(i in seq_along(yy)) {
  lines(yy[[i]][[1]], yy[[i]][[2]], , lty = i, col = 'red')
}
legend("topright", legend = paste('yy_', names(yy)), lty = seq_along(yy), 
       col = "red",, bty = "n", bg = -999999)

Ist aber sehr unübersichtlich...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Janik
Beiträge: 5
Registriert: Di Mär 17, 2020 10:38 am

Re: Plot von zwei cuminc (cmprsk) Objekten

Beitrag von Janik »

Hallo EDi,
mega, das ist genau das was ich brauchte.

Dass es etwas unübersichtlich aussieht ist erstmal nicht schlimm. Ich möchte letztendlich nur eines der Events vergleichen und die Kurven trennen sich etwas besser. Sieht erstmal ganz gut aus :)

Könntest du mir noch helfen das gleiche nochmal mit dem normalen "survfit()" aus dem survival Package zu schaffen?

Hier wieder die Testdaten:

Code: Alles auswählen

set.seed(2)
ss1 <- rexp(100)
gg1 <- factor(sample(1:2,100,replace=TRUE),1:2,c('a','b'))
cc1 <- sample(0:1,100,replace=TRUE)

surv_fit1 <- survfit(Surv(ss1,cc1)~gg1)


set.seed(3)
ss2 <- rexp(100)
gg2 <- factor(sample(1:2,100,replace=TRUE),1:2,c('a','b'))
cc2 <- sample(0:1,100,replace=TRUE)

surv_fit2 <- survfit(Surv(ss2,cc2)~gg2)


plot(surv_fit1)

#mein Versuch
lines(surv_fit2$time[1:unname(surv_fit2$strata)[1]],surv_fit2$surv[1:unname(surv_fit2$strata)[1]])
lines(surv_fit2$time[(unname(surv_fit2$strata)[1]+1):length(surv_fit2$time)],surv_fit2$surv[(unname(surv_fit2$strata)[1]+1):length(surv_fit2$surv)])
Das Problem liegt wieder darin die eigentlichen Koordinaten für die KM-Kurve aus dem survfit-Objekt herauszubekommen. Ich habe auch mal mit seq_along() durchgeguckt, aber da sind diesmal deutlich mehr Listen enthalten und keine davon sieht wirklich brauchbar aus. Mit $time und $surv kriegt man grob den Verlauf der Kurve, aber eben nicht in der typischen KM-Form mit nur Bewegung in entweder x- oder y-Richtung. Hoffe es gibt hierfür auch so eine elegante Lösung.

Danke :)
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Plot von zwei cuminc (cmprsk) Objekten

Beitrag von EDi »

Dafür biete survival ne eigene Methode an und man muss das nicht selbst schreibe: https://stat.ethz.ch/R-manual/R-patched ... rvfit.html
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Janik
Beiträge: 5
Registriert: Di Mär 17, 2020 10:38 am

Re: Plot von zwei cuminc (cmprsk) Objekten

Beitrag von Janik »

Das hat funktioniert. Vielen vielen Dank. :)
Antworten