Uma abordagem gradual produz o modelo mais alto ?

8

Ao usar a abordagem passo a passo para selecionar variáveis, é garantido que o modelo final tenha o maior R ^ 2 possível R2? Dito de outra maneira, a abordagem por etapas garante um ótimo global ou apenas um ótimo local?

Por exemplo, se eu tiver 10 variáveis ​​para selecionar e quiser construir um modelo de 5 variáveis, o resultado final do modelo de 5 variáveis ​​construído pela abordagem stepwise terá o R ^ 2 mais alto R2de todos os possíveis modelos de 5 variáveis ​​que poderiam foram construídos?

Note que esta questão é puramente teórica, ou seja, não estamos discutindo se um valor alto de R2 é ideal, se leva a super ajuste etc.

zabidlo
fonte
2
Eu acho que a seleção gradual fornecerá o R ^ 2 mais alto possível, R2no sentido de que será enviesado para ser muito maior que o modelo real (ou seja, não resultará no modelo ideal). Você pode querer ler isso .
gung - Restabelece Monica
10
Um máximo é atingido quando todas as variáveis ​​são incluídas. Esse é claramente o caso, porque incluir uma nova variável não pode diminuir . De fato, em que sentido você quer dizer "local" e "global"? A seleção de variáveis ​​é um problema discreto - escolha um dos subconjuntos de variáveis ​​- então qual seria a vizinhança local de um subconjunto? R 2 2 k kR2R22kk
whuber
Re edição: Você poderia descrever a "abordagem gradual" que você tem em mente? (As pessoas que eu conheço não chegam a um número especificado de variáveis: parte de seu objetivo é ajudá-lo a decidir quantas variáveis ​​usar.)
whuber
Você acha que um maior (bruto) é uma coisa boa? É por isso que eles ajustaram , AIC etc.R 2R2R2
Wayne
1
Para obter o máximo R2, incluem todas as interacções de 2 vias e três vias, os vários Transformations (log, inversos, quadrado, etc), as fases da lua, etc
Zach

Respostas:

5

Você não obterá necessariamente o R mais alto, porque você só compara um subconjunto de modelos possíveis e pode perder o que tiver o R mais alto, o que incluiria todas as variáveis. Para obter esse modelo, é necessário examinar todos os subconjuntos . Mas o melhor modelo pode não ser aquele com o R mais alto porque pode ser que você se ajuste demais porque inclui todas as variáveis.2 2222

Michael R. Chernick
fonte
1
Também acredito nisso, mas para ser convincente - porque você não forneceu um argumento rigoroso - seria muito bom ver um exemplo real. Seria ainda melhor entender por que um procedimento passo a passo que converge para variáveis (digamos) pode falhar em convergir para a combinação de variáveis (o que não exigiria a pesquisa em todos os subconjuntos). R 2 kkR2k
whuber
Procedimentos passo a passo dependem de onde você inicia. Se você começar com dois conjuntos iniciais diferentes de variáveis, isso poderá levar a soluções diferentes. O ponto é que, em cada etapa, existe um critério na estatística F para uma variável entrar e também para uma variável sair. A estatística F depende das variáveis ​​que estão atualmente no modelo. O procedimento para quando nem o F para inserir nem o F para sair são estatisticamente significativos no limite especificado. Portanto, isso poderia acontecer facilmente antes de você adicionar todas as variáveis ​​ao modelo.
Michael R. Chernick 06/06/12
Isso pode ser facilmente demonstrado com um exemplo, digamos, no SAS, com a saída colada na resposta.
Michael R. Chernick 06/06/12
1
Eu concordo - mas encontrar o contra-exemplo é a parte mais difícil, @ Michael, não usar o software!
whuber
De qualquer maneira, é muito trabalho!
Michael R. Chernick
13

Aqui está um exemplo de contador usando dados gerados aleatoriamente e R:

library(MASS)
library(leaps)

v <- matrix(0.9,11,11)
diag(v) <- 1

set.seed(15)
mydat <- mvrnorm(100, rep(0,11), v)
mydf <- as.data.frame( mydat )

fit1 <- lm( V1 ~ 1, data=mydf )
fit2 <- lm( V1 ~ ., data=mydf )

fit <- step( fit1, formula(fit2), direction='forward' )
summary(fit)$r.squared

all <- leaps(mydat[,-1], mydat[,1], method='r2')
max(all$r2[ all$size==length(coef(fit)) ])

plot( all$size, all$r2 )
points( length(coef(fit)), summary(fit)$r.squared, col='red' )

R2

whuber queria o processo de pensamento: é principalmente um contraste entre curiosidade e preguiça. O post original falou sobre ter 10 variáveis ​​preditoras, e foi isso que eu usei. A correlação 0,9 foi um bom número redondo com uma correlação razoavelmente alta, mas não muito alta (se for muito alta, então passo a passo provavelmente só pegaria 1 ou 2 preditores), imaginei que a melhor chance de encontrar um contra-exemplo incluiria uma quantidade justa de colinearidade. Um exemplo mais realista teria várias correlações diferentes (mas ainda uma quantidade razoável de colinearidade) e uma relação definida entre os preditores (ou um subconjunto deles) e a variável de resposta. O tamanho da amostra de 100 também foi o primeiro que tentei como um bom número redondo (e a regra geral diz que você deve ter pelo menos 10 observações por preditor). Eu tentei o código acima com as sementes 1 e 2, envolvi a coisa toda em um loop e tentei sementes diferentes sequencialmente. Na verdade, ele parou na semente 3, mas a diferença deR2 estava na décima quinta casa decimal, então achei que era o erro de arredondamento mais provável e o reiniciei com a comparação arredondando primeiro para 5 dígitos. Fiquei agradavelmente surpreso ao encontrar uma diferença assim que 15. Se não tivesse encontrado um contra-exemplo em um período de tempo razoável, eu teria começado a mexer nas coisas (a correlação, o tamanho da amostra etc.).

Greg Snow
fonte
2
+1 Muito bem! Os exemplos são muito mais convincentes do que invocando possibilidades hipotéticas. Mas se você tiver uma chance, considere compartilhar o processo de pensamento que você passou na construção deste contra-exemplo.
whuber
Seu relato do procedimento é inestimável: esse é o tipo de material prático e revelador que aparece apenas nos jornais mais lúcidos, se é que existe, e deve ser aprendido diretamente com os outros ou reinventado. (Gostaria de poder adicionar outro
voto positivo
4

Se você realmente deseja obter o mais alto , deve procurar (como o @Michael disse) em todos os subconjuntos. Com muitas variáveis, isso às vezes não é viável, e existem métodos para se aproximar sem testar todos os subconjuntos. Um método é chamado (IIRC) "trancos e barrancos" e está no pacote R.R2

No entanto, isso produzirá resultados muito tendenciosos. os valores de p serão muito baixos, os coeficientes são desviados de 0, os erros padrão são muito pequenos; e tudo por quantias impossíveis de estimar adequadamente.

A seleção gradual também tem esse problema.

Eu recomendo fortemente contra qualquer método automatizado de seleção de variáveis, porque o pior deles é que eles o impedem de pensar; ou, em outras palavras, um analista de dados que usa métodos automatizados está dizendo ao chefe para pagar menos.

Se você precisar usar um método automatizado, deverá separar seus dados em conjuntos de treinamento e teste, ou possivelmente conjuntos de treinamento, validação e final.

Peter Flom
fonte
1
a seleção gradual não é tão ruim quanto você descobre se o objetivo é a previsão ou o uso da sequência de modelos produzidos. de fato, muitos algoritmos rj mcmc para seleção de modelos são basicamente "aleatórios por etapas", pois as propostas geralmente consistem em adicionar ou remover uma variável.
probabilityislogic
1
O Stepwise demonstrou ser horrível. Para detalhes, consulte o livro de Frank Harrell, Regression Modeling Strategies. O que é o RJ? É verdade que a sequência de modelos pode dizer algo útil, mas e daí? Eu também tenho muitos problemas com valores-p, mas isso é outra questão (ou veja The Cult of Significance Testing)
Peter Flom
1
@PeterFlom - RJ é salto reversível. stepwise é simplesmente uma maneira rápida de pesquisar o espaço do modelo, tornando o problema menos propenso a explosões combinatórias. Mas ele precisa de "várias reinicializações" para evitar que ele fique preso no modo local. Eu vou ter que pegar esse livro, eu acho.
probabilityislogic
2
@ Macro, Mesmo no caso ortogonal, você vê por que os valores (ingênuos) de estariam desativados, correto? Você também vê por quedo modelo "selecionado" tenderia a ser (estocástico) maior do que no caso não selecionado, correto? Digamos que você tenha apenas duas variáveis ​​ortogonais, ambas , e sua seleção de modelo foi escolher aquela com o menor valor a ser mantido (o mesmo que escolher a de maior magnitude). | beta | β i = 0 pp|β^|βi=0p
cardeal
1
@ cardinal, entendo. Portanto, isso basicamente é apenas o resultado do fato de que, quando você tem uma amostra de IDI , se eu tiver entendendo você corretamente. Isso faz sentido. X1,...,Xn
E(min{X1,...,Xn})<E(X1)
Macro