過去,逐步回歸在許多生物醫學論文中都被過度使用,但是隨著對其許多問題的更好的教育,這種情況似乎正在改善。但是,許多較老的審閱者仍然要求它。在什麼情況下逐步回歸起作用並且應使用 (如果有)?
過去,逐步回歸在許多生物醫學論文中都被過度使用,但是隨著對其許多問題的更好的教育,這種情況似乎正在改善。但是,許多較老的審閱者仍然要求它。在什麼情況下逐步回歸起作用並且應使用 (如果有)?
我不了解逐步回歸將是首選方法的情況。可以使用$ n>>p $在非常大的數據集上引導整個逐步過程,這可能是好的(尤其是從完整模型開始的逐步版本)。在這裡,$ n $是連續結果中的觀察次數(或生存分析中具有事件的記錄數)$ p $是候選預測變量的數量,包括所有考慮的相互作用-即當任何很小的影響變得非常明顯時,對您如何建立模型並不重要(這意味著$ n $比$ p $大得多,而實際上比有時引用的20倍大)。
當然,大多數人都傾向於做逐步回歸之類的原因是
即逐步回歸等方法(如果它具有良好的運行特性)在那些情況下(如果它沒有良好的運行特性)將特別有吸引力。
我不反對看到逐步回歸的兩種情況
在這兩個非常重要的用例中,您不必擔心傳統的統計推斷,因此,p值等不再有效的事實也就無關緊要了。
例如,如果某研究論文說:“在我們的初步研究中,我們使用逐步回歸從1000個中找到3個有趣的變量。在對新數據進行的後續研究中,我們表明這3個有趣的變量與感興趣的結果相關”,使用逐步回歸就不會有問題。同樣,“我們使用逐步回歸來建立預測模型。在我們關於MSE的保留數據集中,這種過時的替代模型X”對我來說也很好。
要明確一點,我並不是說逐步回歸是解決這些問題的最佳方法。但這很容易,並且可以為您提供令人滿意的解決方案。
在評論中,存在一個問題,即逐步AIC實際上是否可以用於預測。這是一個模擬結果,它顯示了在所有協變量以及通過交叉驗證選擇懲罰的彈性網方面,其線性回歸效果遠勝於線性回歸。
我不會將此模擬作為討論的結尾;提出AIC逐步惡化的方案並不難。但這確實不是一個不合理的情況,而且正是彈性網設計的情況類型(協變量的高相關性,幾乎沒有大的影響)!
庫(刪除)
圖書館(glmnet)
nRows <- 1000
nCols <- 500
#種子集可重複性。
#嘗試更改以調查結果的可靠性
set.seed(1)
#創建高度相關的協變量
x_firstHalf <-矩陣(rnorm(nRows * nCols / 2),nrow = nRows)
x_secondHalf <- x_firstHalf + 0.5 *
矩陣(rnorm(nRows * nCols / 2),nrow = nRows)
x_mat <- cbind(x_firstHalf,x_secondHalf)+ rnorm(nRows)
#創建Beta版。大多數將是非常小的規模
p_large = 0.01
Betas <- rnorm(nCols,sd = 0.01)+
rnorm(nCols,sd = 4)* rbinom(nCols,大小= 1,概率= p_large)
y <- x_mat%*%beta + rnorm(nRows,sd = 4)
all_data <- data.frame(y,x_mat)
colnames(all_data)<- c('y',paste('x',1:nCols,sep ='_'))
#保留25%的數據以進行驗證
holdout_index <- 1:(nRows * .25)
train_data <- all_data [-holdout_index,]
validate_data <- all_data [holdout_index,]
mean_fit <- lm(y〜0,數據= train_data)
full_fit <- lm(y〜。,data = train_data)
step_fit <- step(mean_fit,
範圍=列表(下=均值擬合,上=完全擬合),
方向=“前進”,步長= 20,軌跡= 0)
glmnet_cvRes <- cv.glmnet(x = as.matrix(train_data [,-1]),
y = as.numeric(train_data $ y))
full_pred <-預測(full_fit,validate_data)
step_pred <-預測(step_fit,validate_data)
glmnet_pred <-預測(glmnet_cvRes,as.matrix(validate_data [,-1]),s ='lambda.min')
sd(full_pred-validate_data $ y)#[1] 6.426117
sd(step_pred-validate_data $ span> y)#[1] 4.233672
sd(glmnet_pred-validate_data $ y)#[1] 4.127171
#注意逐步AIC比使用所有協變量要好得多
#在線性回歸中,並沒有比懲罰方法差很多
#具有交叉驗證!!
由於許多原因,我實際上並不喜歡逐步回歸,因此我為捍衛這一立場感到有些尷尬。但是我只是認為準確地知道我不喜歡的東西很重要。