在任何情况下都应使用逐步回归?


13

过去,逐步回归在许多生物医学论文中已被过度使用,但是随着对其许多问题的更好的教育,这种逐步改善的趋势似乎正在改善。但是,许多较老的审阅者仍然要求它。在什么情况下逐步回归会起作用,应该使用逐步回归(如果有)吗?


6
我在上课时经常使用它来说明不应该使用它的想法。
gung-恢复莫妮卡

1
(+1)感谢@gung我不是统计学家,即使我知道这是正确的,也发现很难为之辩护。我发现这特别困难,因为1)这篇很好的且经常被引用的帖子没有涉及太多可引用的细节,并且....(ctd)
bobmcpop

2
(ctd)和2)逐步评论家似乎经常这样做是为了从大量变量或数据挖掘中进行选择。在生物医学领域,样本大小的计算通常会考虑预期协变量的数量,因此,完整的模型从一开始就不会那么大,并且每个变量都已经包含了一些先前的“生物学”原因。您是否认为在这种情况下不应同样使用逐步操作?
bobmcpop

3
我为生物医学研究提供统计咨询。我不逐步使用。我没有很多人问(他们可能会假设我只会在对他们的项目有帮助的情况下才使用它),但是当有人问我时,我告诉他们这是无效的并谈论原因。
gung-恢复莫妮卡

Answers:


11

我不了解逐步回归将是首选方法的情况。可以将整个逐步过程引导到超大型数据集上(特别是从完整模型开始的逐步降低版本),这可能是好的。在这里,是连续结果中的观察次数(或生存分析中具有事件的记录数)是包括所有考虑的相互作用的候选预测变量的数目,即,即使很小的影响变得非常明显,也没关系如何建立模型(这意味着会比很多,比有时引用的20大很多)。Ñ p Ñ pn>>pnpnp

当然,大多数人都喜欢做逐步回归之类的原因是,

  1. 因为它不占用大量计算资源(如果您没有进行适当的引导,但是结果非常不可靠),
  2. 因为它提供了清晰的“在模型中”与“不在模型中”语句(这在标准逐步回归中非常不可靠;通常会很清楚地进行自举,因此这些语句通常不会那么清晰)
  3. 因为通常小于,接近于或稍大于。pnp

也就是说,像逐步回归这样的方法(如果它具有良好的运行特性)在那些情况下(如果它没有良好的运行特性)将特别有吸引力。


3
(+1)同样,对于很多情况下的系数可以忽略不计并且相对于误差方差而言只有很少的系数的情况,逐步和相关的方法也可能适用于大海捞针的预测模型。参见实施例3从Tibshirani(1996),通过套索回归收缩&选择JRSS乙58,1 -尽管即使在这里,非负garotte胜。
Scortchi-恢复莫妮卡

3
我不太明白最后一段。也许可以改写?另外,关于3 .:我没有看到直接的论据,也许在那里应该容易推断出什么?
理查德·哈迪

1
为了弄清最后一段和(3):人们由于(3)而逐步使用(即避免出现难以拟合完整模型或导致),但这恰恰是一种可怕的方法。他们使用它,因为它不占用大量计算资源,但是要想得到有用的东西,就必须进行大量的引导(因此也不是真正的优势)。他们之所以使用它,是因为它似乎可以给出清晰的解释,但是如果做得好,它还不是很清楚,您会看到模型不确定性有多少(清晰的解释=一种错觉)。pn
比约恩

11

我不反对看到逐步回归的两种情况是

  1. 探索性数据分析
  2. 预测模型

在这两个非常重要的用例中,您不必太担心传统的统计推断,因此,p值等不再有效的事实也就无关紧要了。

例如,如果某研究论文说:“在我们的初步研究中,我们使用逐步回归从1000个中找到3个有趣的变量。在对新数据进行的后续研究中,我们显示这3个有趣的变量与感兴趣的结果”,使用逐步回归就不会有问题。同样,“我们使用逐步回归来建立预测模型。在我们关于MSE的保留数据集中,这种过时的替代模型X”对我来说也很好。

明确地说,我并不是说逐步回归是解决这些问题的最佳方法。但这很容易,并且可以为您提供令人满意的解决方案。

编辑:

在评论中,存在一个问题,即逐步AIC是否真的可以用于预测。这是一个模拟结果,它显示了在所有协变量以及通过交叉验证选择惩罚的弹性网方面,其线性回归效果远胜于线性回归。

我不会将这种模拟作​​为讨论的结尾。提出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!!

边注:

由于许多原因,我实际上并不喜欢逐步回归,因此采取这种立场为自己辩护时,我感到有些尴尬。但是我只是认为准确地知道我不喜欢的东西很重要。


2
除了这两种适应症外(在生物医学文献中),它还普遍使用什么其他方案?我只碰到过它的使用对预测模型,但它不建议
bobmcpop

5
@bobmcpop:最大的问题是在逐步回归之后使用p值,置信区间,正如您引用的论文中提到的那样。仅用于预测的模型(不仅是带有预测器的模型)通常不在乎p值,而只是在乎将样本外误差减少了多少。
Cliff AB

1
@Björn:嗯,就像我在最后所说的那样,我认为这通常不是任何手段的最佳方法。但这不是无效的,您可能会得到合理的结果。因此,它的强度实际上就是它的易用性:如果您有一个采用协变量并返回似然率的模型,则可以进行逐步AIC。您可能可以使用LASSO之类的产品来做得更好...但是,如果它是某种新颖的模型或使用Excel,则可能无法做到。
Cliff AB

4
(+1)我曾经说过,glmnet旨在处理这种情况,尤其是在这种情况下(看来);而没有收缩的预测变量选择方法尤其适合它。当存在“渐缩效应”而不是一些大的或微小的效应时,比较方法可能会很有趣。
Scortchi-恢复莫妮卡

2
我对您的代码进行了编辑,以使其更易于阅读,并且易于复制粘贴到代码文件或控制台中。我希望你喜欢它。如果不这样做,请向我道歉并退回。
gung-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.