我正在使用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]

然后,您可以在感兴趣的任何时间点执行此操作。

关于r - 使用randomForestSRC在特定时间点生存的概率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31904303/

10-12 17:48