如何循环多个模型以在 R 中进行生存分析?
How to loop over several models for survival analysis in R?
我有大约 10 种不同的模型,它们具有不同的特征组合,我想使用生存分析来测试这些模型。我已经尝试了以下但它不起作用
model1 = A1+A2+A3
model2 = A1+A2+A3+A4+A5
model3 = A1+A3+A4+A6
models = c(model1,model2,model3)
model_list <- array(c(models))
for (i in model_list){
print(i)
mod <- survreg(Surv(data$Days),data$Status)~ i, dist="weibull", data=data)
print(AIC(mod))
}
我意识到它给出的是一个数值而不是参数列表本身。我该如何纠正这个问题?
考虑使用 as.formula
在循环中构建公式并迭代模型的特征向量。下面假设 A
变量是 data 数据框中的列:
model1 <- "A1 + A2 + A3"
model2 <- "A1 + A2 + A3 + A4 + A5"
model3 <- "A1 + A3 + A4 + A6"
models <- c(model1, model2, model3)
for(i in models) {
print(i)
my_formula <- as.formula(paste("Surv(Days, Status) ~", i))
mod <- survreg(my_formula, dist="weibull", data=data)
print(AIC(mod))
}
我有大约 10 种不同的模型,它们具有不同的特征组合,我想使用生存分析来测试这些模型。我已经尝试了以下但它不起作用
model1 = A1+A2+A3
model2 = A1+A2+A3+A4+A5
model3 = A1+A3+A4+A6
models = c(model1,model2,model3)
model_list <- array(c(models))
for (i in model_list){
print(i)
mod <- survreg(Surv(data$Days),data$Status)~ i, dist="weibull", data=data)
print(AIC(mod))
}
我意识到它给出的是一个数值而不是参数列表本身。我该如何纠正这个问题?
考虑使用 as.formula
在循环中构建公式并迭代模型的特征向量。下面假设 A
变量是 data 数据框中的列:
model1 <- "A1 + A2 + A3"
model2 <- "A1 + A2 + A3 + A4 + A5"
model3 <- "A1 + A3 + A4 + A6"
models <- c(model1, model2, model3)
for(i in models) {
print(i)
my_formula <- as.formula(paste("Surv(Days, Status) ~", i))
mod <- survreg(my_formula, dist="weibull", data=data)
print(AIC(mod))
}