如何获得由ctree创建的生存对象?

时间:2011-01-16 20:44:11

标签: r classification

我想获得由ctree函数创建的生存对象。 原因是我想获得描述树的每个叶子中的曲线的向量。

有谁知道怎么做?

提前致谢! 胡同

1 个答案:

答案 0 :(得分:2)

您可以使用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

可以使用plot方法绘制节点3的生存曲线:

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

suvival plot for node 3 of the example tree

除了轴上的范围之外,还是前面绘制的树上节点3的面板中使用的绘图。

对于此示例,您可以重复节点4,6和7,但是您需要定制与您的数据和拟合树一起使用的节点。