使用 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]
然后您可以在您感兴趣的任何时间点执行此操作。
我正在使用 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]
然后您可以在您感兴趣的任何时间点执行此操作。