我想获得由ctree函数创建的生存对象。 原因是我想获得描述树的每个叶子中的曲线的向量。
有谁知道怎么做?
提前致谢! 胡同
答案 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)
除了轴上的范围之外,还是前面绘制的树上节点3的面板中使用的绘图。
对于此示例,您可以重复节点4,6和7,但是您需要定制与您的数据和拟合树一起使用的节点。