当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R predict.coxph Cox 模型的预测


R语言 predict.coxph 位于 survival 包(package)。

说明

计算 coxph 拟合模型的拟合值和回归项

用法

## S3 method for class 'coxph'
predict(object, newdata,
type=c("lp", "risk", "expected", "terms", "survival"),
se.fit=FALSE, na.action=na.pass, terms=names(object$assign), collapse,
reference=c("strata", "sample", "zero"),  ...)

参数

object

coxph 拟合的结果。

newdata

用于进行预测的可选新数据。如果缺少预测,则针对原始拟合中使用的数据帧。当使用在另一个上下文中创建的公式参数调用 coxph 时,即,在另一个函数中调用 coxph 并将公式作为参数传递给该函数时,查找数据集可能会出现问题。请参阅下面的注释。

type

预测值的类型。选项包括线性预测变量 ( "lp" )、风险评分 exp(lp) ( "risk" )、给定协变量和随访时间的预期事件数 ( "expected" ) 以及线性预测变量的项("terms")。受试者的生存概率等于exp(-expected)。

se.fit

如果为 TRUE,则为预测生成逐点标准误差。

na.action

仅当存在 newdata 参数时适用,并定义新数据的缺失值操作。默认情况下包括所有观察结果。当没有新数据时,缺失的行为由原始拟合的 na.action 选项决定。

terms

如果 type="terms",则此参数可用于指定应包含哪些术语;默认为全部。

collapse

主题标识符的可选向量。如果指定,输出将包含每个主题一个条目,而不是每个观察一个条目。

reference

居中预测的参考,请参阅下面的详细信息

...

对于未来的方法

细节

Cox模型是相对风险模型; "linear predictor"、"risk" 和 "terms" 类型的预测均与它们所来自的样本相关。默认情况下,每个变量的参考值是层内的平均协变量。根本原因既有统计上的,也有实践上的。首先,Cox 模型仅预测同一层内的成对受试者之间的相对风险,因此向任何协变量添加常数(无论是总体还是仅在特定层内)对拟合结果没有影响。其次,下游计算取决于风险分数 exp(线性预测器),对于大于 .Machine\$double.max.exp 的线性预测器,这将成为数字溢出的牺牲品。 coxph 例程尝试将预测变量大致置于自我保护的中心。使用 reference="strata" 选项是最安全的居中方式,因为层偶尔有不同的方式。当 predict 的结果用于进一步计算时,可能需要对所有观察结果使用单一参考水平。使用 reference="sample" 将使用整体平均值,并与 coxph 对象的 linear.predictors 组件一致(它使用整体平均值来向后兼容旧代码)。 type="terms" 的预测几乎总是会传递到进一步的计算,因此对于这些,我们默认使用样本作为参考。 "zero" 的引用导致不进行居中。

"expected" 类型的预测包含基线危险,因此是绝对的而不是相对的; reference 选项对这些没有影响。这些值取决于未来受试者的随访时间以及协变量,因此 newdata 参数需要包含公式中的右侧和左侧变量。 (状态变量不会被使用,但由于底层代码需要重建整个公式,因此是必需的。)

包含 frailty 项的模型是一种特殊情况:由于技术困难,当存在 newdata 参数时,预测将始终是随机效应为零。

预测向量或矩阵,或者包含预测(元素"fit")及其标准误差(元素"se.fit")的列表(如果se.fit选项为TRUE)。

注意

一些预测可以直接从 coxph 对象获得,而对于其他预测,例程必须具有完整的原始数据集,例如,对于 type = terms 或如果请求标准错误。如果 model=TRUE ,则此额外信息将保存在 coxph 对象中,否则将重建原始数据。如果知道需要此类残差,并且保存模型信息,则总体执行速度会稍快一些。

在某些情况下,重建可能会失败。最常见的情况是在另一个函数内部调用 coxph 并将公式作为参数之一传递给该封闭函数。另一种情况是数据集在原始调用和预测调用之间发生变化。在每个问题中,简单的解决方案是将 model=TRUE 添加到原始 coxph 调用中。

例子

options(na.action=na.exclude) # retain NA in predictions
fit <- coxph(Surv(time, status) ~ age + ph.ecog + strata(inst), lung)
#lung data set has status coded as 1/2
mresid <- (lung$status-1) - predict(fit, type='expected') #Martingale resid 
predict(fit,type="lp")
predict(fit,type="expected")
predict(fit,type="risk",se.fit=TRUE)
predict(fit,type="terms",se.fit=TRUE)

# For someone who demands reference='zero'
pzero <- function(fit)
  predict(fit, reference="sample") + sum(coef(fit) * fit$means, na.rm=TRUE)

也可以看看

predictcoxphtermplot

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Predictions for a Cox model。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。