【问题标题】:How to loop over several models for survival analysis in R?如何在R中循环几个模型进行生存分析?
【发布时间】:2019-11-15 23:11:31
【问题描述】:

我有大约 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))
}

我意识到它给出的是一个数值,而不是参数列表本身。我该如何纠正?

【问题讨论】:

    标签: r survival-analysis


    【解决方案1】:

    考虑使用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))
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 2013-05-20
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多