簡體   English   中英

如何計算 R 中給定概率集的 brier 分數以獲得生存結果?

[英]How to calculate brier score for a given set of probabilities in R for survival outcome?

我有一個生存數據集,其中給出了timestatus變量以及(比如說) time = 12的一些生存概率,這些概率是根據數據集中每個人的一些指數計算得出的。 現在,我想計算數據集中每個索引的 brier 分數並選擇最好的一個。 這是我的示例代碼:

set.seed(99)
library(dplyr)
library(survival)
library(prodlim) 
library(pec)   

# simulated survival data data
data <- SimSurv(100)

# add two incides
data$index1<-runif(100, 0.4, 0.9)
data$index2<-runif(100, 0.5, 1)

我在R中使用pec package 嘗試了以下操作。

# let's try for one index
models<-as.matrix(data$index1)

# try pec package, which provides brier score
PredError <- pec(object=models,
             formula = Surv(time, status)~1, cens.model="marginal",
             data=data, verbose=F, maxtime=200, times = 12)

但我收到以下錯誤消息:

Error in predictSurvProb.matrix(object = c(0.596092602680437, 0.675279439869337,  :

Prediction matrix has wrong dimensions:
Requested newdata x times: 100 x 102
Provided prediction matrix: 100 x 1

有人對如何解決這個問題有任何建議嗎?

使用矩陣作為 object 時,在 function 內部調整時間參數,因此如果將時間參數更改為零並精確為 FALSE,代碼運行成功。

models <- as.matrix(data$index1)

PredError <- pec(object = models, formula = Surv(time, status) ~ 1, cens.model = "marginal", data = data, verbose = T, maxtime = 200, times = 0, exact = FALSE)

此外,如果您將 object 更改為除矩陣之外的其他類型,則代碼可以正常工作。

例如

models <- list("Cox.X1" = coxph(Surv(time, status) ~ index1, data = data, x = TRUE, y = TRUE))

PredError <- pec(object = models, formula = Surv(time, status) ~ 1, cens.model = "marginal", data = data, verbose = T, maxtime = 200, times = 12)

有關 object 參數的詳細信息,請參閱以下聲明:

預測模型的命名列表,其中允許的條目是 (1) 存在 predictSurvProb 方法的 R 對象(請參閱詳細信息),(2)對此類 R 對象求值的調用(請參閱示例),(3)具有與數據一樣多的行和與時間一樣多的列的預測概率的矩陣。 對於交叉驗證,此列表中的所有對象都必須包含它們的調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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