Có bất kỳ trường hợp nào nên sử dụng hồi quy từng bước?


13

Hồi quy từng bước đã được sử dụng quá mức trong nhiều bài báo y sinh trong quá khứ nhưng điều này dường như được cải thiện với sự giáo dục tốt hơn về nhiều vấn đề của nó. Nhiều người đánh giá cũ hơn tuy nhiên vẫn yêu cầu nó. Các trường hợp trong đó hồi quy từng bước có vai trò và nên được sử dụng, nếu có?


6
Tôi thường sử dụng nó khi dạy các lớp để minh họa ý tưởng rằng nó không nên được sử dụng.
gung - Phục hồi Monica

1
(+1) Cảm ơn @gung Tôi không phải là một nhà thống kê và đã gặp khó khăn trong việc bảo vệ điều này mặc dù tôi biết điều đó là chính xác. Tôi cảm thấy đặc biệt khó khăn vì 1) bài đăng này rất hay và thường được trích dẫn không đi sâu vào nhiều chi tiết đáng tin cậy và .... (ctd)
bobmcpop

2
(ctd) và 2) các nhà phê bình từng bước dường như thường làm như vậy để chọn từ một số lượng lớn các biến hoặc khai thác dữ liệu. Trong thế giới y sinh, các tính toán kích thước mẫu thường tính đến số lượng đồng biến dự kiến, do đó các mô hình đầy đủ không bao giờ lớn đến mức bắt đầu và mỗi var đã có một số lý do "sinh học" trước đó. Bạn có cảm thấy rằng từng bước không nên được sử dụng như nhau trong những trường hợp này?
bobmcpop

3
Tôi làm tư vấn thống kê cho nghiên cứu y sinh. Tôi không sử dụng từng bước. Tôi chưa có nhiều người hỏi (họ có thể cho rằng tôi sẽ sử dụng nó nếu nó giúp ích cho dự án của họ), nhưng khi mọi người hỏi tôi nói với họ rằng nó không hợp lệ và nói về lý do tại sao.
gung - Phục hồi Monica

Câu trả lời:


11

Tôi không nhận thức được các tình huống, trong đó hồi quy từng bước sẽ là phương pháp ưa thích. Nó có thể là ổn (đặc biệt là ở phiên bản bước xuống của nó bắt đầu từ mô hình đầy đủ) với bootstrapping của quá trình từng bước toàn bộ dữ liệu trên cực kỳ lớn với . Ở đây n là số lượng quan sát trong một kết quả liên tục (hoặc số lượng hồ sơ có sự kiện trong phân tích sinh tồn) p là số lượng dự đoán ứng viên bao gồm tất cả các tương tác được xem xét - tức là khi bất kỳ hiệu ứng nhỏ nào cũng trở nên rất rõ ràng và nó không quan trọng xây dựng mô hình của bạn nhiều như thế nào (điều đó có nghĩa là n sẽ lớn hơn pn>>pnpnp hơn đáng kể so với hệ số đôi khi được trích dẫn là 20).

Tất nhiên lý do hầu hết mọi người bị cám dỗ để làm một cái gì đó như hồi quy từng bước là,

  1. bởi vì nó không chuyên sâu về mặt tính toán (nếu bạn không thực hiện bootstrapping thích hợp, nhưng sau đó kết quả của bạn khá không đáng tin cậy),
  2. bởi vì nó cung cấp các câu lệnh "trong mô hình" rõ ràng "so với" không nằm trong mô hình "(rất không đáng tin cậy trong hồi quy từng bước tiêu chuẩn; một cái gì đó mà bootstrapping thích hợp thường sẽ làm rõ để những câu lệnh này thường không rõ ràng) và
  3. np

Tức là một phương pháp như hồi quy từng bước sẽ (nếu nó có các đặc tính vận hành tốt) sẽ đặc biệt hấp dẫn trong các tình huống đó, khi nó không có các đặc tính vận hành tốt.


3
(+1) Ngoài ra, các phương pháp liên quan và từng bước có thể phù hợp với các mô hình dự đoán trong các tình huống kim tiêm, khi rất nhiều hệ số không đáng kể và chỉ một số lớn so với phương sai lỗi. Xem ví dụ 3 từ Tibshirani (1996), Thu hẹp và lựa chọn hồi quy thông qua Lasso , JRSS B , 58 , 1 - mặc dù ngay cả ở đây, garotte không âm sẽ thắng.
Scortchi - Phục hồi Monica

3
Tôi hoàn toàn không thể hiểu đoạn cuối. Có lẽ nó có thể được rephras? Ngoài ra, những gì về 3.: Tôi không thấy một cuộc tranh luận trực tiếp, có lẽ một cái gì đó được cho là dễ dàng để suy luận ở đó?
Richard Hardy

1
pn

11

Hai trường hợp tôi không phản đối việc xem hồi quy từng bước là

  1. Phân tích dữ liệu thăm dò
  2. Mô hình dự đoán

Trong cả hai trường hợp sử dụng rất quan trọng này, bạn không quá quan tâm đến suy luận thống kê truyền thống, do đó, thực tế là giá trị p, v.v., không còn hợp lệ là điều ít quan tâm.

Ví dụ: nếu một bài nghiên cứu cho biết "Trong nghiên cứu thử nghiệm của chúng tôi, chúng tôi đã sử dụng hồi quy từng bước để tìm ra 3 biến thú vị trong số 1000. Trong một nghiên cứu tiếp theo với dữ liệu mới, chúng tôi đã chỉ ra 3 biến thú vị này có mối tương quan chặt chẽ với kết quả của sự quan tâm ", tôi sẽ không gặp vấn đề gì với việc sử dụng hồi quy từng bước. Tương tự như vậy, "Chúng tôi đã sử dụng hồi quy từng bước để xây dựng một mô hình dự đoán. Mô hình thay thế X được định dạng trước này trong bộ dữ liệu giữ của chúng tôi liên quan đến MSE" cũng hoàn toàn tốt với tôi.

Để rõ ràng, tôi không nói rằng hồi quy từng bước là cách tốt nhất để tiếp cận những vấn đề này. Nhưng nó rất dễ dàng và có thể cung cấp cho bạn giải pháp thỏa đáng.

BIÊN TẬP:

Trong các bình luận, có một câu hỏi là liệu AIC từng bước có thực sự hữu ích cho dự đoán hay không. Đây là một mô phỏng cho thấy nó hoạt động tốt hơn nhiều so với hồi quy tuyến tính với tất cả các hiệp phương sai, và gần như các lưới đàn hồi với hình phạt được chọn bằng xác nhận chéo.

Tôi sẽ không lấy mô phỏng này làm kết thúc cuộc thảo luận; không quá khó để đưa ra một kịch bản trong đó AIC khôn ngoan sẽ trở nên tồi tệ hơn. Nhưng đó thực sự không phải là một kịch bản không hợp lý, và chính xác là loại tình huống mà lưới đàn hồi được thiết kế cho (tương quan cao của các hiệp phương sai với rất ít hiệu ứng lớn)!

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

Lưu ý bên:

Tôi thực sự không phải là một fan hâm mộ của hồi quy từng bước vì nhiều lý do, vì vậy tôi cảm thấy hơi khó xử khi có lập trường này để bảo vệ nó. Nhưng tôi chỉ nghĩ rằng điều quan trọng là phải chính xác về chính xác những gì tôi không thích về nó.


2
Những kịch bản nào khác thường được sử dụng trong (trong tài liệu y sinh) ngoại trừ hai chỉ dẫn đó? Tôi chỉ bắt gặp việc sử dụng nó cho các mô hình dự đoán, nhưng nó không được khuyên dùng, ví dụ .
bobmcpop

5
@bobmcpop: vấn đề lớn là sử dụng giá trị p, khoảng tin cậy, sau hồi quy từng bước, như được đề cập trong bài báo mà bạn đã trích dẫn. Các mô hình chỉ được sử dụng để dự đoán (không chỉ các mô hình với các yếu tố dự đoán) thường không quan tâm đến giá trị p, mà chỉ giảm được bao nhiêu lỗi ngoài mẫu.
Vách đá AB

1
@ Bjorn: tốt, như tôi đã nói ở cuối, tôi không nghĩ rằng đó thường là phương pháp tốt nhất để làm như vậy bởi bất kỳ ai. Nhưng nó không hợp lệ và bạn có thể có kết quả hợp lý. Như vậy, sức mạnh của nó thực sự dễ sử dụng đến mức nào: nếu bạn có một mô hình lấy đồng biến và trả về khả năng, bạn có thể thực hiện AIC thông minh. Bạn có thể có thể làm tốt hơn với một cái gì đó như LASSO ... nhưng bạn có thể không nếu đó là một mô hình mới lạ mắt hoặc bạn đang sử dụng Excel.
Vách đá AB

4
(+1) Tôi đã nói rằng glmnet được thiết kế để xử lý tình huống này, trong số những tình huống khác, trong bước tiến của nó (có vẻ như vậy); trong khi các phương pháp lựa chọn dự đoán mà không co rút được đặc biệt chú ý đến nó. Có thể thú vị để so sánh các cách tiếp cận khi có "hiệu ứng giảm dần" thay vì một vài hiệu ứng lớn và nhỏ.
Scortchi - Phục hồi Monica

2
Tôi đã chỉnh sửa mã của bạn để dễ đọc hơn và dễ sao chép và dán vào tệp mã hoặc bảng điều khiển. Tôi hy vọng bạn thích nó. Nếu bạn không, hãy quay lại với lời xin lỗi của tôi.
gung - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.