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


R pseudo 生存的伪值。


R语言 pseudo 位于 survival 包(package)。

说明

从生存曲线生成伪值。

用法

pseudo(fit, times, type, addNA=TRUE, data.frame=FALSE, minus1=FALSE, ...)

参数

fit

survfit 对象,或继承该类的对象。

times

时间点向量,在该时间点评估伪值。

type

值的类型,状态 pstate 中的概率、累积危险 cumhaz 或状态 sojourn 中的预期停留时间。

addNA

如果由于 fit 对象中缺少值而删除了任何观察结果,请将这些行(作为 NA)添加到返回中。这会导致伪结果与原始数据帧匹配。

data.frame

如果为 TRUE,则将 "long" 形式的数据作为 data.frame 返回,其中 id、时间和伪值作为变量。

minus1

使用 n-1 作为乘数而不是 n

.

...

residuals.survfit 函数的其他参数,该函数完成大部分工作,例如 collapseweighted

细节

该函数根据一阶泰勒级数计算伪值,也称为"infinitesimal jackknife" (IJ) 或"dfbeta" 残差。为了完全正确,这些结果可能被称为“IJ 伪值”,甚至是伪psuedo-values。然而,对于中等到大数据,结果值在数值上几乎与普通折刀相同。

这种方法的主要优点是计算速度。其他特征(不好或坏)是,它们将与其他生存包估计的稳健标准误差一致,这些估计基于 IJ,并且对受试者的估计平均值正是基本的生存估计。

对于 type 变量, survpstate 可接受的同义词,而 rmstrmts 相当于 sojourn 。所有这些都不区分大小写。

该例程的结果只是 IJ 值的 n 倍,其中 n 是受试者的数量。 (如果包含 survfit 调用和 id 选项,则 n 是唯一 id 值的数量,否则是数据集中的行数。)针对 Aalen-Johansen 估计的所有变体都明确定义了 IJ 值,由 survfit 函数计算;事实上,它们是结果标准误差的基础。然而,对 pseudo-values 属性的理解仍在不断发展。对于最简单的情况 (Kaplan-Meier)、竞争风险以及相应的停留时间,有效性已得到证明。另一方面,当数据包含left-truncation(P.K. Andersen,个人通讯)以及累积危险的pseudo-values时,必须小心。随着理解的发展,将此例程的结果视为更复杂模型的研究工具,而不是生产工具。

向量、矩阵或数组。第一个维度始终是 fit 对象中的观测值数量,与原始数据集的顺序相同(减去创建 survfit 对象时删除的任何缺失值);第二个(如果适用)对应于 fit$states ,例如,多状态生存,以及所选时间点的最后一个维度。 (如果给定 id 有多行,则每个唯一 id 只有一个伪值。)

对于 data.frame 选项,包含 id、时间和伪值的数据帧。如果原始 survfit 调用包含 id 语句,则 id 列中的值将从该变量中获取。如果 id 语句具有简单的形式,例如 id = patno ,则 id 列的名称将为 ‘patno’,否则将命名为“(id)”。

注意

如果在 survfit 调用中使用 model=TRUE 选项,代码会稍微快一些。如果在另一个函数中使用 survfit/pseudo 对,这可能是必要的。

例子

fit1 <- survfit(Surv(time, status) ~ 1, data=lung)
yhat <- pseudo(fit1, times=c(365, 730))
dim(yhat)
lfit <- lm(yhat[,1] ~ ph.ecog + age + sex, data=lung)

# Restricted Mean Time in State (RMST) 
rms <- pseudo(fit1, times= 730, type='RMST') # 2 years
rfit <- lm(rms ~ ph.ecog + sex, data=lung)
rhat <- predict(rfit, newdata=expand.grid(ph.ecog=0:3, sex=1:2), se.fit=TRUE)
# print it out nicely
temp1 <- cbind(matrix(rhat$fit, 4,2))
temp2 <- cbind(matrix(rhat$se.fit, 4, 2))
temp3 <- cbind(temp1[,1], temp2[,1], temp1[,2], temp2[,2])
dimnames(temp3) <- list(paste("ph.ecog", 0:3), 
                        c("Male RMST", "(se)", "Female RMST", "(se)"))

round(temp3, 1)
# compare this to the fully non-parametric estimate
fit2 <- survfit(Surv(time, status) ~ ph.ecog, data=lung)
print(fit2, rmean=730)
# the estimate for ph.ecog=3 is very unstable (n=1), pseudovalues smooth it.
#
# In all the above we should be using the robust variance, e.g., svyglm, but
#  a recommended package can't depend on external libraries.
# See the vignette for a more complete exposition.

参考

PK Andersen and M Pohar-Perme, Pseudo-observations in surivival analysis, Stat Methods Medical Res, 2010; 19:71-99

也可以看看

residuals.survfit

相关用法


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