我正在使用R包' survcomp'计算预测存活率与已知测试集存活率的c指数。但结果是它返回了NA。数据如下:
测试集已知存活率:
OS.Time OS.event
1 1686 0
2 517 0
3 7 0
4 1965 0
5 5748 0
6 495 0
7 10 0
8 365 1
9 1733 0
预测存活率(可能不是一个好的估计,但不应该影响c指数计算):
0.11946905 0.27748710 0.88212024 0.19557143 0.09421667 0.27926806 1.53901710 1.03344646 0.73955159
用于计算c-index的R代码是:concordance.index(pred, test_surv$OS.Time, test_surv$OS.event, method="noether")$c.index
。如上所述,NA返回。
这是因为测试集中只有一个事件吗?但我检查了c-index计算formular。似乎只有当分母为0时,c指数可以是NA,但不是上面的情况。
答案 0 :(得分:0)
如果您查看代码,您会看到这是预期的行为:
if (sum(cc.ix) < 3) {
if (msurv) {
data <- list(x = x, surv.time = surv.time, surv.event = surv.event)
}
else {
data <- list(x = x, cl = cl)
}
return(list(c.index = NA, se = NA, lower = NA, upper = NA,
p.value = NA, n = sum(cc.ix), data = data, comppairs = NA))
当事件数量为2或更少时,作者显然打算为几乎所有事情返回NA。 (构建复制这一结论的实验并不困难。)