concordance
位于 survival
包(package)。 说明
一致性统计量计算观察到的响应与预测变量之间的一致性。它与 Kendall 的 tau-a 和 tau-b、Goodman 的 gamma 和 Somers 的 d 密切相关,所有这些也可以从该函数的结果计算出来。
用法
concordance(object, ...)
## S3 method for class 'formula'
concordance(object, data, weights, subset, na.action,
cluster, ymin, ymax, timewt= c("n", "S", "S/G", "n/G2", "I"),
influence=0, ranks = FALSE, reverse=FALSE, timefix=TRUE, keepstrata=10, ...)
## S3 method for class 'lm'
concordance(object, ..., newdata, cluster, ymin, ymax,
influence=0, ranks=FALSE, timefix=TRUE, keepstrata=10)
## S3 method for class 'coxph'
concordance(object, ..., newdata, cluster, ymin, ymax,
timewt= c("n", "S", "S/G", "n/G2", "I"), influence=0,
ranks=FALSE, timefix=TRUE, keepstrata=10)
## S3 method for class 'survreg'
concordance(object, ..., newdata, cluster, ymin, ymax,
timewt= c("n", "S", "S/G", "n/G2", "I"), influence=0,
ranks=FALSE, timefix=TRUE, keepstrata=10)
参数
object |
拟合模型或公式。该公式应采用 |
data |
data.frame,用于解释 |
weights |
案例权重的可选向量。仅当 |
subset |
表达式,指示在拟合中应使用数据行的哪个子集。仅当 |
na.action |
缺失数据过滤函数。在使用任何子集参数后,这将应用于model.frame。默认为 |
... |
允许多个拟合模型。仅当 |
newdata |
可选,一个新的 DataFrame ,用于评估(但不重新拟合)模型 |
cluster |
用于计算稳健方差的可选分组向量 |
ymin , ymax |
计算限制范围 ymin <= y <= ymax 上的一致性。 (对于生存数据,这是一个时间范围。) |
timewt |
要应用的权重。总体统计数据是事件时间的加权平均值。 |
influence |
1=返回 dfbeta 向量,2=返回完整影响矩阵,3=返回两者 |
ranks |
如果为 TRUE,则返回一个 DataFrame ,其中包含构成总体分数的缩放排名。 |
reverse |
如果为 TRUE,则假设较大的 |
timefix |
纠正可能的舍入误差。请参阅有关绑定时间的小插图以获取更多说明。本质上,精确关系是一致性计算的重要组成部分,但"exact"对于浮点数来说可能是一个微妙的问题。 |
keepstrata |
TRUE、FALSE 或整数值。计算始终在层内完成,然后相加。如果层总数大于 |
细节
一致性是 的估计值,对于模型拟合,将 替换为 (模型的预测响应)。对于生存结果,某些值对是不可比较的,例如,在时间 5 进行审查,在时间 6 进行死亡,因为我们不知道第一个观察是否会比第二个观察更长久。在这种情况下,可评估对的总数较小。
与其他统计量的关系:对于连续的 x 和 y,2C-1 等于 Somers' d。如果响应是二元的,C 等于受试者工作曲线下的面积或 AUC。对于生存响应和二元预测变量 C 是 Gehan-Wilcoxon 测试的分子。
简单的计算需要将所有 n(n-1)/2 次比较相加,这对于大型数据集来说可能相当慢。此例程使用 O(n log(n)) 算法。在每个未经审查的事件时间 y,计算发生该事件的受试者的 x 排名,与所有其他存活时间较长的受试者的 x 值相比,其中排名的值在 0 到 1 之间。一致性是以下各项的加权平均值这些排名由 timewt
选项确定。当受试者添加到风险集中时,可以有效地更新排名向量。有关更多详细信息,请参阅小插图。
方差基于无穷小折刀。这种方法的一个优点是,它还为基于多个不同预测值的协方差提供了有效的协方差,即使这些预测来自完全不同的模型。例如,请参见下面的示例,其中有一个泊松模型和两个非嵌套 Cox 模型。例如,这对于将机器学习模型与 Cox 模型拟合进行比较很有用。然而,预测值必须准确对齐,每行都有相同的观察值,这一点绝对至关重要;否则结果将是无意义的。 (警惕缺失值的影响。)
timewt
选项仅适用于审查数据。在本例中,默认值对应于 Harrell 的 C 统计量,该统计量与 Gehan-Wilcoxon 测试密切相关; timewt="S"
对应于 Peto-Wilcoxon,timewt="S/G"
是由 Schemper 建议的,timewt="n/G2"
对应于 Uno 的 C。事实证明,Schemper 和 Uno 权重在计算上是相同的,为了方便用户,我们保留了两个选项标签。 timewt= "I"
选项与log-rank 统计信息相关。
当层数非常大时,例如在条件逻辑回归中(clogit
函数),当不保留各个层结果时,可以使用更快的计算速度;使用keepstrata=FALSE
或keepstrata=0
来执行此操作。在一般情况下,keepstrata = 10
默认值只是保持打印输出易于管理:如果层数 <= 10,它会保留并打印 per-strata 计数。
值
concordance
类的对象包含以下组件:
concordance |
估计的一个或多个一致性值 |
count |
包含一致对数量的向量,不一致,与 x 相关但不与 y 相关,与 y 相关但不与 x 相关,并且与 x 和 y 均相关 |
n |
观察数量 |
var |
包含基于无穷小折刀 (IJ) 方法的一致性估计方差的向量。如果有多个模型,它包含估计的方差/协方差矩阵。 |
cvar |
包含一致性值的估计方差的向量,基于比例风险模型的相关分数测试的方差公式。 (这是 |
dfbeta |
可选,一致性的杠杆估计向量 |
influence |
可选,每个计数的杠杆值矩阵,每个观察一行 |
ranks |
可选,包含每个事件时间 Somers d 排名的 DataFrame ,以及时间权重和观察的案例权重。排名的时间加权和将等于一致对-不一致对。 |
注意
出现数值故障的 coxph 模型可能具有未定义的预测值,在这种情况下,一致性将为 NULL。
现有 coxph 模型与 newdata
的计算对于原始调用中的额外参数有一些微妙之处。这些包括
-
模型中的tt() 项。 newdata 不支持此函数。
-
子集。原始调用中的任何子集子句都将被忽略,即不应用于新数据。
-
模型中的strata() 项。新数据预计将具有在原始数据集中找到的分层变量,并在分层内计算一致性。地层变量的水平不必与原始数据中的水平相同。
-
id 或 cluster 指令。这个问题还没有解决。
例子
fit1 <- coxph(Surv(ptime, pstat) ~ age + sex + mspike, mgus2)
concordance(fit1, timewt="n/G2") # Uno's weighting
# logistic regression
fit2 <- glm(I(sex=='M') ~ age + log(creatinine), binomial, data= flchain)
concordance(fit2) # equal to the AUC
# compare multiple models
options(na.action = na.exclude) # predict all 1384 obs, including missing
fit3 <- glm(pstat ~ age + sex + mspike + offset(log(ptime)),
poisson, data= mgus2)
fit4 <- coxph(Surv(ptime, pstat) ~ age + sex + mspike, mgus2)
fit5 <- coxph(Surv(ptime, pstat) ~ age + sex + hgb + creat, mgus2)
tdata <- mgus2; tdata$ptime <- 60 # prediction at 60 months
p3 <- -predict(fit3, newdata=tdata)
p4 <- -predict(fit4) # high risk scores predict shorter survival
p5 <- -predict(fit5)
options(na.action = na.omit) # return to the R default
cfit <- concordance(Surv(ptime, pstat) ~p3 + p4 + p5, mgus2)
cfit
round(coef(cfit), 3)
round(cov2cor(vcov(cfit)), 3) # high correlation
test <- c(1, -1, 0) # contrast vector for model 1 - model 2
round(c(difference = test %*% coef(cfit),
sd= sqrt(test %*% vcov(cfit) %*% test)), 3)
作者
Terry Therneau
参考
F Harrell, R Califf, D Pryor, K Lee and R Rosati, Evaluating the yield of medical tests, J Am Medical Assoc, 1982.
R Peto and J Peto, Asymptotically efficient rank invariant test procedures (with discussion), J Royal Stat Soc A, 1972.
M Schemper, Cox analysis of survival data with non-proportional hazard functions, The Statistician, 1992.
H Uno, T Cai, M Pencina, R D'Agnostino and Lj Wei, On the C-statistics for evaluating overall adequacy of risk prediction procedures with censored survival data, Statistics in Medicine, 2011.
也可以看看
相关用法
- R concordancefit 计算一致性
- R colon B/C 期结肠癌的化疗
- R coxsurv.fit survfit.coxph“计算引擎”的直接接口
- R coxph.wtest 计算二次形式
- R cox.zph 测试 Cox 回归的比例风险假设
- R coxph.detail Cox 模型拟合的详细信息
- R coxph 拟合比例风险回归模型
- R coxph.control 控制 coxph 拟合的辅助参数
- R cgd0 慢性肉芽肿病数据
- R cipoisson 泊松分布的置信极限
- R cluster 识别集群。
- R cgd 慢性肉芽肿病数据
- R cch 将比例风险回归模型拟合到病例队列数据
- R clogit 条件逻辑回归
- R hoel 小鼠癌症数据
- R survcondense 缩短 (time1, time2) 生存数据集
- R myeloid 急性粒细胞白血病
- R tobin 托宾的托比特数据
- R pseudo 生存的伪值。
- R levels.Surv 返回多状态 Surv 对象的状态
- R rats Mantel 等人的大鼠治疗数据
- R diabetic 糖尿病视网膜病变
- R pbc 梅奥诊所原发性胆汁性胆管炎数据
- R plot.survfit survfit 对象的绘图方法
- R kidney 肾导管数据
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Compute the concordance statistic for data or a model。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。