我试图了解在幸存模型上运行残差函数产生的“ld”残差是什么?
例如
library(survival)
mod <- survreg(Surv(time, status -1) ~ age , data = lung)
residuals( mod , "ldcase")
residuals( mod, "ldshape")
residuals( mod , "ldresp")
剩余功能的文档说明如下:
基于这些数量的诊断在一篇文章中讨论 Escobar和Meeker。主要是可能的位移 用于扰动案件重量(ldcase)的残差,即响应 value(ldresp)和形状。
参考
Escobar,L。A.和Meeker,W。Q.(1992)。评估影响力 使用删失数据进行回归分析。生物识别技术48,507-528。
特别是对于案例权重“ldcase”,我从参考文献中得出的理解是,这些残差表示通过将受试者的体重设置为2来拟合原始模型和相同模型之间的对数似然差异的两倍估计值。 / p>
然而,当我尝试自己手动编码时,我的派生值似乎与剩余函数产生的值完全没有关系(下面完全可重现的例子):
library(survival)
library(ggplot2)
mod <- survreg( Surv(time, status -1) ~ age , data = lung)
get_ld <- function(i, mod){
weight <- rep(1 , nrow(lung))
weight[i] <- 2
modw <- survreg(
Surv(time, status -1) ~ age ,
data = lung ,
weights = weight
)
2 * as.numeric(logLik(mod) - logLik(modw))
}
dat <- data.frame(
ld = sapply( 1:nrow(lung), get_ld , mod = mod),
ld_est = residuals(mod , "ldcase")
)
ggplot( data = dat , aes( x = ld_est , y = ld)) + geom_point()
此外,从论文中,这些残差应该以2 * chisq(p + 2)分布分布,在这种情况下,p = 1给出单侧95%截止点15.62,这意味着我手动派生残差至少在正确的范围内,这让我对“ldcase”返回的残差究竟是什么感到困惑?