我有一个与 R 包生存中的函数 tmerge() 相关的问题。 尝试设置具有时间相关协变量的数据集,但初始时间段的值设置为 NA(请参见下面的 reprex)。
我有一个包含基线变量、时间和事件数据的数据框,以及第二个包含基线后 3 个月测量的变量的数据框。
已使用与 Terry Therneau 和 Co. 的小插图中的 PBC 数据示例相同的方法(或至少尝试过!https://cran.r-project.org/web/packages/survival/vignettes/timedep .pdf)。上页。 11 它说: “tdc 和 cumtdc 参数可以有 1、2 或 3 个参数。第一个始终是 时间点,第二个(如果存在)是要插入的值,可选的第三个参数是初始值。如果 tdc 调用只有一个参数,则结果始终是 0/1 变量,时间点之前为 0,之后为 1。对于 2 或 3 参数形式,新变量第一次定义之前(第一个时间点之前)的起始值将是初始值。 初始值的默认值为 NA,即 tdcstart 选项的值。”不确定我是否理解以粗体突出显示的最后一位。
当我复制 PBC 示例时,不会遇到同样的问题。尝试在第二个 tmerge 调用中指定 init 和/或 tdcstart 选项,但没有成功(两者都会生成错误)。协变量或结果(时间、事件)中没有缺失值。
伸出援手,因为我无法找出我做错了什么。
提前非常感谢!
PS。这是我的第一篇文章,如果我错过了什么,请道歉。希望这是有道理的。
library(tidyverse)
library(survival)
set.seed(123)
# Generate data
df_base <- tibble(
ID = as.numeric(1:100),
time = as.integer(runif(100, min = 100, max = 730)),
status = as.factor(sample(x = c("0", "1"), prob = c(0.7, 0.3), size = 100, replace = T)),
vas = as.integer(rnorm(n = 100, mean = 53, sd = 10)))
df_fu <- tibble(
ID = as.numeric(1:100),
fu_3mo = 91,
vas = as.integer(rnorm(n = 100, mean = 44, sd = 15)))
# Baseline data
head(df_base)
#> # A tibble: 6 x 4
#> ID time status vas
#> <dbl> <int> <fct> <int>
#> 1 1 281 0 45
#> 2 2 596 0 55
#> 3 3 357 0 50
#> 4 4 656 1 49
#> 5 5 692 0 43
#> 6 6 128 1 52
# Follow-up data
head(df_fu)
#> # A tibble: 6 x 3
#> ID fu_3mo vas
#> <dbl> <dbl> <int>
#> 1 1 91 76
#> 2 2 91 63
#> 3 3 91 40
#> 4 4 91 52
#> 5 5 91 37
#> 6 6 91 36
# Generate time-dependent covariates
df_tdc <- tmerge(df_base, df_base, id = ID, surgery = event(time, status))
head(df_tdc)
#> ID time status vas tstart tstop surgery
#> 1 1 281 0 45 0 281 0
#> 2 2 596 0 55 0 596 0
#> 3 3 357 0 50 0 357 0
#> 4 4 656 1 49 0 656 1
#> 5 5 692 0 43 0 692 0
#> 6 6 128 1 52 0 128 1
df_tdc <- tmerge(df_tdc, df_fu, id = ID, vas = tdc(fu_3mo, vas))
#> Warning in tmerge(df_tdc, df_fu, id = ID, vas = tdc(fu_3mo, vas)): replacement
#> of variable 'vas'
head(df_tdc)
#> ID time status vas tstart tstop surgery
#> 1 1 281 0 NA 0 91 0
#> 2 1 281 0 76 91 281 0
#> 3 2 596 0 NA 0 91 0
#> 4 2 596 0 63 91 596 0
#> 5 3 357 0 NA 0 91 0
#> 6 3 357 0 40 91 357 0
由 reprex 包于 2021 年 11 月 26 日创建(v0.3.0)
我没有答案,但还有关于同一主题的另一个问题。我也遇到了这个问题。当我对第一条时间相关协变量线 (tdc) 的 NA 执行 coxph() 时,模型无法收敛。当我将 NA 更改为 0 时,得到了一个不错的模型,但我不知道用 0 替换 NA 是否有效。我的变量是0/1。那么更换NA有效吗?