Есть ли обстоятельства, в которых следует использовать ступенчатую регрессию?

13

В прошлом поэтапная регрессия использовалась во многих биомедицинских работах, но, похоже, она улучшается благодаря лучшему пониманию многих ее проблем. Однако многие старые рецензенты все еще просят об этом. В каких обстоятельствах ступенчатая регрессия играет свою роль и должна использоваться, если таковая имеется?

bobmcpop
источник
6
Я часто использую это, когда преподаю классы, чтобы проиллюстрировать идею, что это не должно использоваться.
gung - Восстановить Монику
1
(+1) Спасибо @gung Я не статистик, и мне трудно это защитить, хотя я знаю, что это правильно. Я нахожу это особенно трудным, потому что 1) этот очень хороший и часто цитируемый пост не вдавается в подробности, и .... (ctd)
bobmcpop
2
(ctd) и 2) критики поэтапно часто, кажется, делают это для выбора из большого числа переменных или извлечения данных. В биомедицинском мире при расчете размера выборки часто учитывается число ожидаемых ковариат, так что полные модели никогда не бывают такими большими для начала, и у каждой переменной уже есть некоторая предварительная «биологическая» причина для включения. Считаете ли вы, что ступенчато не следует использовать в этих условиях?
bobmcpop
3
Я занимаюсь статистическим консультированием для биомедицинских исследований. Я не использую пошагово. У меня не было много людей, которые спрашивали (они могли бы предположить, что я просто использовал бы это, если это помогло бы их проекту), но когда люди спрашивают, я говорю им, что это неверно, и обсуждаю почему.
gung - Восстановить Монику

Ответы:

11

Я не знаю ситуаций, в которых пошаговая регрессия была бы предпочтительным подходом. Это может быть хорошо (особенно в его понижающую версии , начиная с полной модели) с самозагрузкой всего процесса ступенчатого на чрезвычайно больших массивах данных с . Здесь n - количество наблюдений в непрерывном результате (или количество записей с событием в анализе выживания), p - число кандидатов-предикторов, включая все рассматриваемые взаимодействия, т.е. когда любые даже небольшие эффекты становятся очень ясными, и это не имеет значения сколько вы делаете построение вашей модели (это будет означать, что п будет намного больше, чем рn>>pnpnp чем значительно больше, чем иногда цитируемый коэффициент 20).

Конечно, причина, по которой большинство людей склонны делать что-то вроде ступенчатой ​​регрессии, заключается в том, что

  1. потому что это не требует больших вычислительных ресурсов (если вы не выполняете правильную загрузку, но ваши результаты довольно ненадежны),
  2. потому что он обеспечивает четкие выражения «в модели» и «не в модели» (которые очень ненадежны при стандартной пошаговой регрессии; то, что правильная начальная загрузка обычно проясняет, так что эти утверждения обычно не будут столь ясными) и
  3. np

Т.е. такой метод, как ступенчатая регрессия, (если бы он имел хорошие рабочие характеристики) был бы особенно привлекательным в тех ситуациях, когда он не имеет хороших рабочих характеристик.

Бьерн
источник
3
(+1) Кроме того, пошаговые и родственные методы могут быть подходящими для прогнозных моделей в ситуациях с иголками в стоге сена, когда множество коэффициентов пренебрежимо мало и лишь несколько велико по отношению к дисперсии ошибки. См. Пример 3 из Tibshirani (1996), « Регрессивная усадка и отбор с помощью лассо» , JRSS B , 58 , 1 - хотя даже здесь побеждает неотрицательная гаротта.
Scortchi - Восстановить Монику
3
Я не совсем понимаю последний абзац. Возможно, это можно перефразировать? Кроме того, как насчет 3 .: Я не вижу прямой аргумент, возможно, что-то должно быть легко сделать вывод?
Ричард Харди
1
pn
11

Два случая, в которых я не стал бы возражать против поэтапной регрессии:

  1. Исследовательский анализ данных
  2. Прогнозные модели

В обоих этих очень важных случаях использования вас не слишком беспокоит традиционный статистический вывод, поэтому тот факт, что значения p и т. Д. Больше не действительны, не представляет большой проблемы.

Например, если в исследовательской работе говорилось: «В нашем пилотном исследовании мы использовали пошаговую регрессию, чтобы найти 3 интересные переменные из 1000. В последующем исследовании с новыми данными мы показали, что эти 3 интересные переменные были тесно связаны с Интересный результат », у меня не было бы проблем с использованием пошаговой регрессии. Точно так же «Мы использовали пошаговую регрессию для построения прогностической модели. Эта альтернативная модель X с предварительным преобразованием в нашем наборе данных о удержании в отношении MSE» также полностью устраивает меня.

Чтобы было ясно, я не говорю, что поэтапная регрессия - лучший способ решения этих проблем. Но это легко и может дать вам удовлетворительные решения.

РЕДАКТИРОВАТЬ:

В комментариях возникает вопрос о том, может ли ступенчатая AIC быть полезной для прогнозирования. Вот симуляция, которая показывает, что она работает намного лучше, чем линейная регрессия со всеми ковариатами, и почти так же, как и эластичные сети со штрафом, выбранным путем перекрестной проверки.

Я бы не стал воспринимать эту симуляцию как конец дискуссии; несложно придумать сценарий, в котором пошаговая АПК будет хуже преформироваться. Но на самом деле это не необоснованный сценарий, а именно тот тип ситуации, для которого предназначены эластичные сети (высокая корреляция ковариат с очень небольшим большим эффектом)!

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!!

Примечание:

Я действительно не фанат ступенчатой ​​регрессии по многим, многим причинам, поэтому я чувствую себя несколько неловко, заняв эту позицию в защиту этого. Но я просто думаю, что важно быть точным в том, что мне не нравится в этом.

Клифф AB
источник
2
В каких еще сценариях он обычно используется (в литературе по биоме), кроме этих двух показаний? Я только сталкивался с его использованием для прогнозирующих моделей, но это не рекомендуется, например .
bobmcpop
5
@bobmcpop: большая проблема заключается в использовании p-значений, доверительных интервалов после ступенчатой ​​регрессии, как упоминалось в цитируемой вами статье. Модели, используемые исключительно для прогнозирования (не только модели с предикторами), обычно не заботятся о p-значениях, а скорее только о том, насколько уменьшена ошибка вне выборки.
Клифф А.Б.
1
@ Бьорн: ну, как я уже сказал в конце, я не думаю, что это вообще лучший способ сделать это любым способом. Но это не недействительно, и вы можете получить разумные результаты. Таким образом, его сила в том, насколько легко его использовать: если у вас есть модель, которая принимает ковариации и возвращает вероятности, вы можете сделать пошаговую AIC. Возможно, вам удастся добиться большего успеха с чем-то вроде LASSO ... но вы не сможете, если это какая-то модная новая модель или вы используете Excel.
Клифф А.Б.
4
(+1) Я бы сказал, что glmnet был разработан для того, чтобы, среди прочего, справиться с подобной ситуацией (что, похоже, так); в то время как методы выбора предиктора без усадки особенно приспособлены к этому. Может быть интересно сравнить подходы, когда есть «сужающиеся эффекты», а не несколько больших и много крошечных.
Scortchi - Восстановить Монику
2
Я отредактировал ваш код, чтобы его было легче читать и копировать и вставлять в файл кода или консоль. Я надеюсь тебе это понравится. Если вы этого не сделаете, отбросьте его обратно с моими извинениями.
gung - Восстановить Монику