Existem circunstâncias em que a regressão gradual deve ser usada?


13

A regressão passo a passo havia sido superutilizada em muitos artigos biomédicos no passado, mas isso parece estar melhorando com uma melhor educação de seus muitos problemas. Muitos revisores mais antigos ainda o solicitam. Quais são as circunstâncias em que a regressão gradual tem um papel e deve ser usada, se houver?


6
I often use it when teaching classes to illustrate the idea that it shouldn't be used.
gung - Reinstate Monica

1
(+1) Thanks @gung I'm not a statistician and have found it difficult to defend this even though I know it is correct. I find it particularly difficult because 1) this very good and often quoted post doesn't go into much citable detail and.... (ctd)
bobmcpop

2
(ctd) e 2) os críticos do stepwise frequentemente o fazem para selecionar um grande número de variáveis ​​ou mineração de dados. No mundo biomédico, os cálculos de tamanho de amostra geralmente levam em consideração o número de covariáveis ​​esperadas, de modo que os modelos completos nunca sejam tão grandes assim, e cada var já tem algum motivo "biológico" anterior para ser incluído. Você acha que o passo a passo não deve ser usado igualmente nessas circunstâncias?
precisa saber é o seguinte

3
Eu faço consultoria estatística para pesquisa biomédica. Eu não uso passo a passo. Muitas pessoas não perguntam (elas podem assumir que eu o usaria se isso ajudasse o projeto), mas quando as pessoas perguntam, digo que é inválido e falo sobre o porquê.
gung - Restabelece Monica

Respostas:


11

Não estou ciente de situações nas quais a regressão gradual seria a abordagem preferida. Pode ser bom (principalmente em sua versão step-down a partir do modelo completo) a inicialização de todo o processo stepwise em conjuntos de dados extremamente grandes comn>>p. Here n is the number of observations in an continuous outcome (or number of records with an event in survival analysis) p is the number of candidate predictors including all considered interactions - i.e. when any even small effects become very clear and it does not matter so much how your do your model building (that would mean that n would be much larger than p than by substantially more than the sometimes quoted factor of 20).

Obviamente, a razão pela qual a maioria das pessoas é tentada a fazer algo como a regressão gradual é:

  1. porque não é computacionalmente intensivo (se você não executar a inicialização adequada, mas seus resultados não são confiáveis),
  2. porque fornece instruções claras "está no modelo" versus "não está no modelo" (que não são muito confiáveis ​​na regressão passo a passo padrão; algo que o bootstrapping adequado geralmente deixará claro para que essas declarações geralmente não sejam tão claras) e
  3. porque frequentemente n é menor, próximo ou um pouco maior que p.

Ou seja, um método como a regressão passo a passo (se tivesse boas características operacionais) seria especialmente atraente nessas situações, quando não tiver boas características operacionais.


3
(+1) Also stepwise & related methods may be appropriate for predictive models in needle-in-a-haystack situations, when a lot of coefficients are negligible & just a few large relative to the error variance. See Example 3 from Tibshirani (1996), Regression shrinkage & selection via the Lasso, JRSS B, 58, 1 - though even here the non-negative garotte wins.
Scortchi - Reinstate Monica

3
I cannot quite understand the last paragraph. Perhaps it could be rephrased? Also, what about 3.: I do not see a direct argument, perhaps something is supposed to be easy to infer there?
Richard Hardy

1
To clarify the last paragraph and (3): People use stepwise because of (3) (i.e. to avoid situations where fitting the full model is difficult or leads to pn), mas é exatamente quando este será um método terrível. Eles o usam, porque não é computacionalmente intensivo, mas para obter algo útil, você precisa executar uma extensa inicialização (para que também não seja realmente uma vantagem). E eles o usam, porque parece dar uma interpretação clara, mas se feito corretamente, isso não é tão claro e você vê quanta incerteza modelo existe (interpretação clara = uma ilusão).
Björn

11

Dois casos em que eu não objetaria ver regressão passo a passo são

  1. Análise exploratória de dados
  2. Modelos preditivos

Nos dois casos de uso muito importantes, você não está tão preocupado com a inferência estatística tradicional; portanto, o fato de que valores-p, etc., não são mais válidos é pouco preocupante.

Por exemplo, se um trabalho de pesquisa dissesse "Em nosso estudo piloto, usamos regressão passo a passo para encontrar três variáveis ​​interessantes em mil. Em um estudo de acompanhamento com novos dados, mostramos que essas três variáveis ​​interessantes estavam fortemente correlacionadas com a resultado de interesse ", eu não teria nenhum problema com o uso de regressão passo a passo. Da mesma forma, "Usamos a regressão passo a passo para criar um modelo preditivo. Esse modelo alternativo pré-formado X em nosso conjunto de dados de espera em relação ao MSE" também é ótimo comigo.

Para deixar claro, não estou dizendo que a regressão passo a passo é a melhor maneira de abordar esses problemas. Mas é fácil e pode oferecer soluções satisfatórias.

EDITAR:

Nos comentários, há uma questão de saber se o AIC passo a passo pode realmente ser útil para previsão. Aqui está uma simulação que mostra que ele está se saindo muito melhor do que a regressão linear com todas as covariáveis ​​e quase tão bem quanto as redes elásticas com a penalidade escolhida pela validação cruzada.

Eu não aceitaria essa simulação como o final da discussão; não é muito difícil criar um cenário em que a AIC passo a passo tenha um desempenho pior. Mas realmente não é um cenário irracional, e exatamente o tipo de situação para a qual as redes elásticas são projetadas (alta correlação de covariáveis ​​com muito poucos efeitos grandes)!

library(leaps)
library(glmnet)
nRows <- 1000
nCols <- 500

# Seed set For reproducibility. 
# Try changing for investigation of reliability of results
set.seed(1)

# Creating heavily correlated covariates
x_firstHalf  <- matrix(rnorm(nRows * nCols / 2), nrow = nRows)
x_secondHalf <- x_firstHalf + 0.5 * 
                matrix(rnorm(nRows * nCols / 2), nrow = nRows) 
x_mat        <- cbind(x_firstHalf, x_secondHalf) + rnorm(nRows)

# Creating beta's. Most will be of very small magnitude
p_large = 0.01
betas <- rnorm(nCols, sd = 0.01) + 
         rnorm(nCols, sd = 4) * rbinom(nCols, size = 1, prob = p_large)
y     <- x_mat %*% betas + rnorm(nRows, sd = 4)

all_data           <- data.frame(y, x_mat)
colnames(all_data) <- c('y', paste('x', 1:nCols, sep = '_'))

# Holding out 25% of data for validation
holdout_index <- 1:(nRows * .25) 
train_data    <- all_data[-holdout_index, ]
validate_data <- all_data[holdout_index, ]

mean_fit <- lm(y ~ 0, data = train_data)
full_fit <- lm(y ~ ., data = train_data)
step_fit <- step(mean_fit, 
                 scope = list(lower = mean_fit, upper = full_fit), 
                 direction = "forward", steps = 20, trace = 0)

glmnet_cvRes <- cv.glmnet(x = as.matrix(train_data[,-1]), 
                          y = as.numeric(train_data$y)   )

full_pred   <- predict(full_fit, validate_data)
step_pred   <- predict(step_fit, validate_data)
glmnet_pred <- predict(glmnet_cvRes, as.matrix(validate_data[,-1]), s='lambda.min')

sd(full_pred - validate_data$y)    # [1] 6.426117
sd(step_pred - validate_data$y)    # [1] 4.233672
sd(glmnet_pred - validate_data$y)  # [1] 4.127171
# Note that stepwise AIC does considerably better than using all covariates 
# in linear regression, and not that much worse than penalized methods
# with cross validation!!

Nota:

Eu realmente não sou fã de regressão gradual por muitas, muitas razões, então me sinto um pouco estranho por ter tomado essa posição em defesa dela. Mas apenas acho importante ser preciso exatamente sobre o que não gosto.


2
Em que outros cenários é comumente usado (na literatura biomédica), exceto essas duas indicações? Eu só encontrei o seu uso para modelos preditivos, mas não é aconselhável, por exemplo .
bobmcpop

5
@obmcpop: o grande problema é usar valores-p, intervalos de confiança, após a regressão gradual, conforme mencionado no artigo que você citou. Os modelos usados ​​exclusivamente para previsão (não apenas modelos com preditores) geralmente não se importam com os valores-p, mas com o quanto o erro fora da amostra é reduzido.
Cliff AB

1
@ Björn: bem, como eu disse no final, geralmente não acho que seja o melhor método para fazê-lo. Mas não é inválido e você pode acabar com resultados razoáveis. Como tal, sua força é realmente o quão fácil é usar: se você tiver um modelo que aceite covariáveis ​​e retorne probabilidades, poderá fazer uma AIC em etapas. Talvez você consiga fazer melhor com algo como o LASSO ... mas talvez não, se for um modelo novo ou sofisticado ou se estiver usando o Excel.
Cliff AB

4
(+1) Eu diria que o glmnet foi projetado para levar esse tipo de situação, entre outros, em seu ritmo (o que parece); enquanto os métodos de seleção de preditores sem retração estão especialmente sintonizados com ele. Pode ser interessante comparar abordagens quando existem "efeitos cônicos" em vez de alguns grandes e muitos pequenos.
Scortchi - Restabelece Monica

2
Editei seu código para facilitar a leitura e copiar e colar em um arquivo ou console de código. Espero que você goste. Caso contrário, reverta-o com minhas desculpas.
gung - Restabelece Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.