Eliminação regressiva automática

Em Machine Learning, é muito comum realizarmos o processo de eliminação regressiva (Backward Elimination) em Regressões Lineares, a fim de diminuir o conjunto de variáveis independentes x que influenciam a variável dependente y, criando um modelo bom e simples.

Esse processo pode ser feito de forma automática, e abaixo compartilho um trecho de código para fazer a eliminação regressiva em R.

Repare que o nome da variável dependente está fixo no algoritmo (Profit). No caso você deve substituí-la pelo nome da sua variável dependente y.

backwardElimination <- function(x, sl) {
  
  numVars = length(x)
  
  for (i in c(1:numVars)){
    regressor <- lm(formula = Profit ~ ., data = x)
    maxVar <- max(coef(summary(regressor))[c(2:numVars), "Pr(>|t|)"])
    if (maxVar > sl){
      j = which(coef(summary(regressor))[c(2:numVars), "Pr(>|t|)"] == maxVar)
      x = x[, -j]
    }
    numVars <- numVars - 1
  }
  return(summary(regressor))
}
dataset = ...

SL = 0.05 
training_set = ...
backwardElimination(training_set, SL)

....

Deixe um comentário