我可以在 R 中执行 Cox 比例风险模型的所有子集变量选择吗?

问题描述 投票:0回答:2

在为我的数据选择顶级 Cox 比例风险模型时,我尝试使用类似于程序 R 中的 leafs 包中的 regsubsets 的函数(如果不是实际上的话)。这可能吗?如果是这样,函数是否已经存在?

r survival-analysis cox-regression
2个回答
0
投票

我猜您已经熟悉以下内容...如果您使用 AIC 作为“顶级模型”的标准,那么这将是一个合理的起点:

library(survival)
data(colon)
c1 <- coxph(Surv(time=time, event=status) ~
     as.factor(extent) + age + sex, data=colon)
step(c1)

如果您有缺失值,请小心 (

NA
)。当然,可能有一个更好的模型无法通过此方法找到,但由于潜在的预测变量数量较少,您不太可能错过它。如上所述,关于使用数值方法的警告(感谢@DWin),其中知情的意见可能更可靠。


0
投票

您可以使用

glmulti
包中的函数 glmulti 来完成此操作。

glmulti.cox.ph <- glmulti(Surv(time, status) ~ ., data = [your.data], 
    level = 1,             # to exclude interactions (use 2 for pairwise interaction terms)
    method = "h",          # exhaustive method
    crit = "aic",          # another option is "bic"
    report = FALSE,        # No interim reports 
    plotty = FALSE,        # No plot
    fitfunction = "coxph") # coxph function

这个答案最初发布在RPubs,所以归功于他们。

如果您包含交互项或具有大量变量,您可能需要

report = TRUE
来查看已测试了多少个模型以及每个点的最佳模型。要测试的模型数量很快就会增加。

对于任何想知道的人来说,模型的数量是 2 的自变量次方,正如数学堆栈交换的这个问题中所解释的。

© www.soinside.com 2019 - 2024. All rights reserved.