Regressão passo a passo em R – como funciona?

Estou tentando entender a diferença básica entre regressão stepwise e regressiva em R usando a função step. Para regressão stepwise, usei o seguinte comando

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="both") 

Obtive o resultado abaixo para o código acima.

avançar

Para a seleção da variável para trás, usei o seguinte comando

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="backward") 

E obtive a saída abaixo para trás

para trás

Tanto quanto eu entendi, quando nenhum parâmetro é especificado, a seleção stepwise atua como retrógrada, a menos que os parâmetros “superior” e “inferior” sejam especificados em R. Ainda na saída da seleção stepwise, existe um + disp que é adicionado na 2ª etapa. O que a função está tentando alcançar adicionando + disp novamente na seleção passo a passo? Por que R está adicionando + disp na 2ª etapa enquanto os resultados são os mesmos (valores AIC e valores de seleção de modelo) que a seleção reversa. Como R está trabalhando exatamente na seleção passo a passo?

Eu realmente quero entender como esta função está funcionando no R. Obrigado desde já pela ajuda!

Resposta

Talvez fosse mais fácil entender como a regressão gradual está sendo feita examinando todos os 15 modelos de filme possíveis.

Aqui está uma rapidinha para gerar a fórmula para todas as 15 combinações.

library(leaps) tmp<-regsubsets(mpg ~ wt + drat + disp + qsec, data=mtcars, nbest=1000, really.big=T, intercept=F) all.mods <- summary(tmp)[[1]] all.mods <- lapply(1:nrow(all.mods, function(x)as.formula(paste("mpg~", paste(names(which(all.mods[x,])), collapse="+")))) head(all.mods) [[1]] mpg ~ drat <environment: 0x0000000013a678d8> [[2]] mpg ~ qsec <environment: 0x0000000013a6b3b0> [[3]] mpg ~ wt <environment: 0x0000000013a6df28> [[4]] mpg ~ disp <environment: 0x0000000013a70aa0> [[5]] mpg ~ wt + qsec <environment: 0x0000000013a74540> [[6]] mpg ~ drat + disp <environment: 0x0000000013a76f68> 

Os valores AIC para cada um dos modelos são extraídos com:

all.lm<-lapply(all.mods, lm, mtcars) sapply(all.lm, extractAIC)[2,] [1] 97.98786 111.77605 73.21736 77.39732 63.90843 77.92493 74.15591 79.02978 91.24052 71.35572 [11] 63.89108 65.90826 78.68074 72.97352 65.62733 

Vamos voltar para sua regressão em etapas. O valor extractAIC para lm (mpg ~ wt + drat + disp + qsec) é 65,63 (equivalente ao modelo 15 na lista acima).

Se o modelo remover disp (-disp), então lm (mpg ~ wt + drat + qsec) é 63.891 (ou modelo 11 na lista).

Se o modelo remover não remover nada (nenhum), então o AIC ainda é 65,63

Se o modelo remove qsec (-qsec), então lm (mpg ~ wt + drat + disp) é 65,908 (modelo 12).

etc.

Basicamente, o resumo revela todas as remoções possíveis de um termo de seu modelo completo e compara o valor de extractAIC, listando-os em ordem crescente. Uma vez que o valor AIC menor tem mais probabilidade de se parecer com o modelo TRUTH, retenha o modelo (-disp) na etapa um.

O processo é repetido novamente, mas com o modelo retido (-disp) como ponto de partida. Os termos são subtraídos (“para trás”) ou subtraídos / adicionados (“ambos”) para permitir a comparação dos modelos. Visto que o menor valor de AIC em comparação ainda é o modelo (-disp), a parada do processo e os modelos resultantes são fornecidos.

Com relação à sua consulta: “Qual é a função que está tentando alcançar adicionando o + disp novamente na seleção passo a passo? “, neste caso, ele realmente não faz nada, porque o melhor modelo entre todos os 15 modelos é o modelo 11, ou seja, lm (mpg ~ wt + drat + qsec).

No entanto, em modelos complicados com grande número de preditores que requerem várias etapas para resolver, a adição de um termo que foi removido inicialmente é fundamental para fornecer a maneira mais exaustiva de comparar os termos.

Espero que esta ajuda de alguma forma.

Comentários

  • " Visto que o menor valor AIC tem mais probabilidade de se parecer com o O modelo VERDADEIRO " é totalmente falso. A construção do modelo passo a passo tem a mesma probabilidade de reter preditores falsos e rejeitar preditores verdadeiros … entre uma série de outros problemas: stats.stackexchange.com/questions/115843/…
  • Obviamente, ' uma mentira. É por ' por que a seleção de modelos com base em critérios únicos (como regressão stepwise) é um tanto ingênua.
  • @Alexis adora suas recomendações em sua resposta no link.

Resposta

Aqui, uma resposta simplificada. Primeiro, ambos os procedimentos tentam reduzir o AIC de um determinado modelo, mas o fazem de maneiras diferentes. Então, a diferença básica é que no procedimento de seleção regressiva você só pode descartar variáveis do modelo em qualquer etapa, enquanto na seleção stepwise você também pode adicionar variáveis ao modelo.

Sobre a saída no stepwise seleção, em geral a saída mostra alternativas ordenadas para reduzir seu AIC, portanto, a primeira linha em qualquer etapa é sua melhor opção. Então, há um +disp na terceira linha porque adicionar essa variável ao seu modelo seria sua terceira melhor opção para diminuir seu AIC. Mas obviamente, como sua melhor alternativa é <none>, isso significa não fazer nada, o procedimento para e dá a você os mesmos resultados da seleção reversa.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *