gpt4 book ai didi

r - coxph 命令中时间变换函数的默认值是多少?

转载 作者:行者123 更新时间:2023-12-04 16:47:14 24 4
gpt4 key购买 nike

简介:

可以使用 survival 包的 coxph 函数估算 Cox 比例风险 (PH) 模型。从这种类型的模型中获得合理结果的一个明显要求是危害是成比例的,即它们随时间保持不变。如果某个变量不是这种情况,可以通过使该变量的系数随时间变化来解决。 (现在它在技术上是一个扩展的 Cox 模型。)这是通过将 tt() 添加到该变量并随时间指定一个函数来完成的(参见 vignette("timedep", package = "生存”) 第 19 页以上)。

问题:

如果使用tt()而不指定函数,则使用哪个函数?

这是一个例子:

library(survival)
data(lung)
cox_model <- coxph(Surv(time, status) ~ age + sex + ph.karno, data = lung)
cox_model_ph <- cox.zph(cox_model)
# rho chisq p
# age 0.00701 0.00871 0.92566
# sex 0.12249 2.42336 0.11954
# ph.karno 0.23135 8.24167 0.00409
# GLOBAL NA 11.54750 0.00911

我们看到 ph.karno 违反了 PH 假设(小 p 值),所以添加 tt():

cox_model_tt <- coxph(Surv(time, status) ~ age + sex + tt(ph.karno), data = lung)
cox_model_tt_ph <- cox.zph(cox_model_tt)
# rho chisq p
# age -0.00907 0.0142 0.9052
# sex 0.12844 2.7270 0.0987
# tt(ph.karno) 0.11643 2.3846 0.1225
# GLOBAL NA 5.0220 0.1702

现在 PH 假设得到满足,但我不知道 tt() 函数实际上做了什么。我尝试了一些常用函数,例如 tt = function(x, t, ...) x*t, tt = function(x, t, ...) x + t, tt = function(x, t, ...) x*log(t).但都给出了不同的结果(并且无法修复 PH 违规)。

感谢任何帮助。

最佳答案

查看 coxph 的代码我想如果我找到了它。您没有为“tt”参数提供任何值,所以我认为这会被执行:

if (is.null(tt)) {
tt <- function(x, time, riskset, weights) {
obrien <- function(x) {
r <- rank(x)
(r - 0.5)/(0.5 + length(r) - r)
}
unlist(tapply(x, riskset, obrien))
}

这是一个实验确认:

> cox_model_OB <- coxph(Surv(time, status) ~ age + sex + tt(ph.karno), data = lung, tt=  function(x, time, riskset, weights) {
+ obrien <- function(x) {
+ r <- rank(x)
+ (r - 0.5)/(0.5 + length(r) - r)
+ }
+ unlist(tapply(x, riskset, obrien))
+ }
+ )
> ( cox_model_tt_ph <- cox.zph(cox_model_tt) )
rho chisq p
age -0.00907 0.0142 0.9052
sex 0.12844 2.7270 0.0987
tt(ph.karno) 0.11643 2.3846 0.1225
GLOBAL NA 5.0220 0.1702

我想知道这是不是故意的。我怀疑这是开发 session 期间留下的代码。我怀疑 Therneau 的意图是,未能提供“tt”功能应该至少发出警告,但可能更希望出现错误。 所以这是一个猜测,我通过搜索小插图发现我错了,发现它是有意的:“这依赖于 tt() 的输入参数按事件编号或风险集排序的事实。这个函数如果在 coxph 调用中不存在 tt 参数,则用作默认值,但模型公式中有 tt 项。(这样做允许我贬低 survobrien 函数)。引用:“在 Cox 模型中使用时间相关协变量和时间相关系数”的第 23 页,来自当前的生存包索引帮助页面链接到小插图。

关于r - coxph 命令中时间变换函数的默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38640914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com