在 R 中取消识别 survival 或 flexsurvreg 对象

De-identifying survival or flexsurvreg objects in R

请考虑以下几点:

我需要提供一些 R 代码语法来使用 flexsurv 包分析数据。我不允许直接或现场receive/analyse。但是我可以收到分析结果。


问题

当我们运行对某些数据(此处ovarian来自flexsurv包)的flexsurvreg()函数时,创建的对象(此处fitw)包含足够的信息来“重新创建”或“反向工程”实际数据。但是从技术上讲,我可以访问我不允许拥有的数据。

# Load package
library("flexsurv")
#> Loading required package: survival

# Run flexsurvreg with data = ovarian
fitw <- flexsurvreg(formula = Surv(futime, fustat) ~ factor(rx) + age,
                    data = ovarian, dist="weibull")

# Look at first observation in ovarian
ovarian[1, ]
#>   futime fustat     age resid.ds rx ecog.ps
#> 1     59      1 72.3315        2  1       1

# With the following from the survival object, the data could be re-created
fitw$data$Y[1, ]
#>   time status  start   stop  time1  time2 
#>     59      1      0     59     59    Inf
fitw$data$m[1, ]
#>   Surv(futime, fustat) factor(rx)     age (weights)
#> 1                   59          1 72.3315         1


可能的解决方案

我们可以编写代码,以便它还将所有可能用于此反向工程的数据设置为 NA,如下所示:

# Setting all survival object observation to NA
fitw$data$Y <- NA
fitw$data$m <- NA
fitw$data$mml$scale <- NA
fitw$data$mml$rate <- NA
fitw$data$mml$mu <- NA

reprex package (v2.0.0)

于 2021-08-27 创建

问题

如果我按照上面的步骤进行并将所有这些参数设置为 NA,我是否可以接收 fitw 对象(例如作为 .RDS 文件)而永远无法“反向工程”原始数据?或者有没有其他方法可以在没有附加数据的情况下共享 fitw

谢谢!

设置,例如fitw$data <- NULL 将从拟合模型对象中删除所有 individual-level 数据。但是,某些输出函数可能不适用于剥离数据的对象。在 github 的当前开发版本中,打印模型对象应该可以。 summary 和 predict 方法也应该起作用,只要在 newdata 中提供了协变量值——省略它们将不起作用,因为默认是从观测数据中获取协变量值。