编写函数来识别混杂变量

时间:2017-02-16 04:08:59

标签: r

我试图将结果建模为几次暴露的函数,调整可能是混杂因素的任何协变量的模型(当添加到模型时,结果系数≥10%Δ)。我正在将许多协变量视为潜在的混淆因素,因此创建了一个包含所有这些数据框的数据框并使用了lapply(结果和曝光位于已经附加的单独数据框中)。为了更容易地对我的所有输出进行排序,我试图编写一个函数,只有在协变量是混淆时才会显示输出。它们的曝光和数量在每个模型中都是不同的,所以我发现每次运行分析时都必须编写类似于下面的代码,但是知道必须有一个更简单的方法。我是否可以使用没有混淆器的模型和Covariates数据框作为参数来编写一个函数?谢谢!

lapply(Covariates, function(x) {
  model <- summary(lm(Outcome ~ Exposure1 + Exposure2 + ... + x))
  if ((model$coefficients[2, 1] - summary(lm(Outcome ~ Exposure))$coefficients[2, 1])/
      model$coefficients[2, 1] >= .1)
    return(model)
})

1 个答案:

答案 0 :(得分:1)

我写了一个函数来解决这个问题!

D

然后我将此函数提供给模型:

    confounder <- function(model) {
      model.sum <- summary(model)
      model.b <- model.sum$coefficients[2, 1]
      oldmodel <- update(model, . ~ . -x)
      oldmodel.sum <- summary(oldmodel)
      oldmodel.b <- oldmodel.sum$coefficients[2, 1]
      model.frame <- tidy(model.sum)
      model.sub <- subset(model.frame, term = "x")
      model.sub.b <- model.sub[, 5]
      if ((model.b - oldmodel.b)/model.b >= .1 |
           model.sub.b < .05)
        return(model.sum)
    }