簡體   English   中英

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM