Regressão stepwise em R - valor p crítico

12

Qual é o valor p crítico usado pelo step() função em R para regressão passo a passo? Presumo que seja 0,15, mas minha suposição está correta? Como posso alterar o valor p crítico?

Jason Samuels
fonte
7
A função 'step' de R é baseada em AIC.
Michael M
7
É melhor não usar rotinas de seleção de modelo passo a passo. Para entender o porquê, pode ser útil ler minha resposta aqui: Algoritmos para seleção automática de modelo .
gung - Restabelece Monica
3
Além do comentário do @ MichaelMayer: a Descriptionparte da página de ajuda ?stepdiz, na sua totalidade: Selecione um modelo baseado em fórmula da AIC.
Stephan Kolassa

Respostas:

27

Como expliquei no meu comentário sobre sua outra pergunta, step usa AIC em vez de valores-p.

No entanto, para uma única variável de cada vez, AIC faz correspondem ao uso de um valor de p de 0,15 (ou para ser mais preciso, 0,1573):

Considere comparar dois modelos, que diferem por uma única variável. Chame os modelos (modelo menor) e M 1 (modelo maior) e deixe seus AICs serem AIC 0 e AIC 1M0M1AIC0 0AIC1 respectivamente.

Usando o critério AIC, você usaria o modelo maior se . Este será o caso se - 2 log L 0 - ( - 2 log L 1 ) > 2 .AIC1<AIC0 0-2registroeu0 0-(-2registroeu1)>2

Mas isso é simplesmente a estatística em um teste de razão de verossimilhança. A partir do teorema de Wilks, rejeitaremos o nulo se a estatística exceder o quantil superior de um χ 2 1 . Portanto, se usarmos um teste de hipótese para escolher entre o modelo menor e o maior, escolheremos o modelo maior quando - 2 log L 0 - ( - 2 log L 1 ) > C α .αχ122logL0(2logL1)>Cα

Agora está no percentil 84,27 de um χ 2 1 . Portanto, se escolhermos o modelo maior quando tiver um AIC menor, isso corresponderá à rejeição da hipótese nula para um teste do termo adicional com um valor de p de 1 - 0,843 = 0,157 , ou 15,7 %2χ1210.843=0.15715.7%


Então, como você o modifica?

Fácil. Altere o kparâmetro stepde 2 para outra coisa. Você quer 10% em seu lugar? Faça 2.7:

qchisq(0.10,1,lower.tail=FALSE)
[1] 2.705543

Você quer 2,5%? Conjunto k=5:

qchisq(0.025,1,lower.tail=FALSE)
[1] 5.023886

e assim por diante.


No entanto, mesmo que isso resolva sua pergunta, recomendo que você preste muita atenção à resposta de Frank Harrell em sua outra pergunta, e procure respostas de muitos estatísticos sobre outras questões relacionadas à regressão passo a passo aqui, conselho esse que tende a ser muito consistentemente para evitar procedimentos passo a passo em geral.

Glen_b -Reinstate Monica
fonte
Boa explicação. Você sabe se isso seria aproximadamente verdadeiro para os valores-p dos testes t de regressão ordinários?
Ben Ogorek
α=0.05
(ctd) ... uma série de problemas sérios com o stepwise. Outros incluem estimativas tendenciosas e erros padrão muito pequenos.
Glen_b -Reinstala Monica
1
Momentaneamente deixando de lado os problemas com a seleção gradual de modelos, estou interessado em generalizar a regra menor de AIC => 0,1573 p-value. O valor-p da Razão de Verossimilhança que você descreve é ​​bom, mas em rotinas como o de R, a estimativa / std.err está sendo comparada a uma distribuição t. Este é um teste diferente, e eu queria saber se o seu resultado .1573 pode durar aproximadamente.
Ben Ogorek
2
tk
4

Como dito acima, a stepfunção em R é baseada nos critérios da AIC. Mas acho que com valor-p você quer dizer alfa para entrar e alfa para sair. O que você pode fazer é usar a função stepwiseescrita por Paul Rubin e disponível aqui . Como você pode ver, você tem os argumentos de alpha.to.enter e alpha.to.leave que você pode alterar. Observe que esta função usa o teste F ou teste t equivalente para selecionar os modelos. Além disso, ele pode lidar não apenas com a regressão por etapas, mas também com a seleção direta e a eliminação retroativa, se você definir os argumentos adequadamente.

Estado
fonte