![](/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.