Вы можете получить кривые, используя метод 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)
который, кроме диапазона по осям, является графиком, используемым в панели для узла 3 на ранее нарисованном дереве.
Для этого примера вы можете повторить для узлов 4, 6 и 7, но вам нужно будет настроить узлы, с которыми вы работаете, с вашими данными и установленным деревом.
'ctree' не является базовой функцией R. Какой пакет вы имеете в виду? Некоторые примеры кода также помогут вам получить ответ. –
@Prasad, это в упаковке 'party'. См. '? Ctree' после загрузки пакета, чтобы получить пример простого дерева выживания. –