逻辑回归:删除无关紧要的预测变量

时间:2014-10-18 13:15:16

标签: r regression logistic-regression

我正在使用R对我的数据集执行逻辑回归。我的数据集有50多个变量。

挑战在于编写R中的代码,可以评估某些记录和变量的统计有效性(例如,p值> .05),并根据诸如此类的参数从模型中消除记录和变量。

是否有任何已实施的方法可以执行此操作?任何帮助或建议将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

这是一个基本函数的实现,它将采用一组预测变量并逐步消除这些变量,直到找到只有预测值低于所需显着性水平的线性模型。

reverse.step <- function(y, b, df, alpha=0.05) {
  # y = dependent variable name (as character) e.g. 'Height', 
  # b = vector of explanatory variable names (as characters) e.g. 
  # c('x1','x2','x3',...), # df = data frame
  sum <- summary(lm(paste(paste(y,' ~ ', sep=''), 
                          paste(b, collapse='+'), sep=''), data=df))
  cat(b)
  cat("\n")
  pvals <- sum$coeff[2:nrow(sum$coeff),4]
  if (pvals[which.max(pvals)] < alpha) {
    return(sum)
  }
  new.b <- names(pvals[-which.max(pvals)])
  if (length(new.b) == 0 | length(new.b) == length(b)) {
    return(sum)
  } else {
    return(reverse.step(y, new.b, df, alpha))
  }
}

它可能不是最强大的功能,但它会让你开始。

您还可以查看库leaps中的regsubsets方法。