![](/img/trans.png)
[英]R :Fitting survival trees with time-varying covariates in RandomForestSRC
[英]probability of survival at particular time points using randomForestSRC
我正在使用rfsrc
来建模生存问题,如下所示:
library(OIsurv)
library(survival)
library(randomForestSRC)
data(burn)
attach(burn)
library(randomForestSRC)
fit <- rfsrc(Surv(T1, D1) ~ ., data=burn)
# predict on the train set
pred <- predict(fit, burn, OOB=TRUE, type=response)
pred$predicted
这给了我所有患者的总生存概率。
如何获得不同时间点(例如0-5个月或0-10个月)的每个人的生存概率?
如果您不熟悉该软件包,那么这个文档并不是很明显,但它是可能的。
加载数据
data(pbc, package = "randomForestSRC")
创建试验和测试数据集
pbc.trial <- pbc %>% filter(!is.na(treatment))
pbc.test <- pbc %>% filter(is.na(treatment))
建立我们的模型
rfsrc_pbc <- rfsrc(Surv(days, status) ~ .,
data = pbc.trial,
na.action = "na.impute")
测试模型
test.pred.rfsrc <- predict(rfsrc_pbc,
pbc.test,
na.action="na.impute")
所有好东西都保存在我们的预测对象中。 在$survival
对象是N行(1位病人)和N列的矩阵(每一个time.interest
-这些都是自动选择,虽然你可以使用约束它们ntime
。我们的说法矩阵是106x122)
test.pred.rfsrc$survival
的$time.interest
对象是不同的“time.interests”的列表(122,相同的列中的从矩阵的数量$surival
)
test.pred.rfsrc$time.interest
假设我们希望看到我们5年的预测状态,我们会
需要弄清楚哪个时间最接近1825天(因为我们的测量时间是天),当我们查看$time.interest
对象时,我们看到第83行= 1827天或大约5年。 $time.interest
第83行对应于$survival
矩阵中的第83列。 因此,为了看到预测的5年生存概率,我们只看一下矩阵的第83列。
test.pred.rfsrc$survival[,83]
然后,您可以针对您感兴趣的任何时间点执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.