在 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
中提供了协变量值——省略它们将不起作用,因为默认是从观测数据中获取协变量值。
请考虑以下几点:
我需要提供一些 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
中提供了协变量值——省略它们将不起作用,因为默认是从观测数据中获取协变量值。