Как получить объекты выживания, создаваемые ctree? - PullRequest
2 голосов
/ 16 января 2011

Я хотел бы получить объекты выживания, созданные функцией ctree.Причина в том, что я хотел бы получить векторы, которые описывают кривые на каждом листе дерева.

Кто-нибудь знает, как это сделать?

Заранее спасибо!Alley

1 Ответ

2 голосов
/ 17 января 2011

Вы можете получить на кривых, используя метод treeresponse. Может быть, есть гораздо лучший способ, но это то, что я придумал.

Вот иллюстрация, использующая пример дерева выживания из ?ctree:

require(party)
data("GBSG2", package = "ipred")
GBSG2ct <- ctree(Surv(time, cens) ~ .,data = GBSG2)
plot(GBSG2ct)

Мы берем (подогнанные) ответы, используя treeresponse для данных обучения. Это список с компонентом для каждого наблюдения в данных обучения.

out <- treeresponse(GBSG2ct)

Каждый компонент out является объектом выживания, класс "survfit"

> class(out[[1]])
[1] "survfit"

Для этого дерева у нас есть четыре конечных узла, поэтому есть только четыре уникальных объекта выживания. Вы можете использовать метод where, чтобы увидеть, в каких узлах были наблюдения

wnode <- where(GBSG2ct)

Мы можем использовать этот индекс уникальных объектов выживания. Например, для узла 3 (самый левый узел на графике дерева)

> n3 <- which(wnode == 3 & !duplicated(wnode))
> n3
[1] 1
> out[[n3]]
> out[[n3]]
records   n.max n.start  events  median 0.95LCL 0.95UCL 
    686     248     248      88    2093    1814      NA

Кривая выживания для узла 3 может быть построена с использованием метода plot:

plot(out[[n3]], conf.int = FALSE, mark.time = FALSE)

suvival plot for node 3 of the example tree

, который, кроме диапазона по осям, представляет собой график, используемый на панели для узла 3 на дереве, нарисованном ранее.

В этом примере вы можете повторить для узлов 4, 6 и 7, но вам нужно адаптировать, с какими узлами вы работаете, к вашим данным и подгонянному дереву.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...