在为我的数据选择顶级 Cox 比例风险模型时,我尝试使用类似于程序 R 中的 leafs 包中的 regsubsets 的函数(如果不是实际上的话)。这可能吗?如果是这样,函数是否已经存在?
我猜您已经熟悉以下内容...如果您使用 AIC 作为“顶级模型”的标准,那么这将是一个合理的起点:
library(survival)
data(colon)
c1 <- coxph(Surv(time=time, event=status) ~
as.factor(extent) + age + sex, data=colon)
step(c1)
如果您有缺失值,请小心 (
NA
)。当然,可能有一个更好的模型无法通过此方法找到,但由于潜在的预测变量数量较少,您不太可能错过它。如上所述,关于使用数值方法的警告(感谢@DWin),其中知情的意见可能更可靠。
您可以使用
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 的自变量次方,正如数学堆栈交换的这个问题中所解释的。