LASSO có bị các vấn đề tương tự hồi quy từng bước không?


18

Các phương pháp chọn biến thuật toán theo chiều dọc có xu hướng chọn các mô hình thiên vị ít nhiều mọi ước tính trong các mô hình hồi quy ( s và SE của chúng, giá trị p , thống kê F , v.v.) và có khả năng loại trừ các dự đoán thực như bao gồm các dự đoán sai theo một tài liệu mô phỏng hợp lý trưởng thành.β

LASSO có chịu đựng theo những cách cụ thể tương tự khi được sử dụng để chọn biến không?


3
Tôi nghĩ rằng nó làm. Frank Harrell có một số bài viết về điều đó, tôi nghĩ, và có thể có tài liệu liên quan trong cuốn sách "Chiến lược mô hình hồi quy" của ông.
Richard Hardy

2
@RichardHardy +1 Tôi sẽ rất vui nếu FrankHarrell sẽ lướt qua và bình luận hoặc trả lời. :)
Alexis

5
Tôi có một cuộc nói chuyện mới giải quyết điều này. Điểm mấu chốt: lasso có xác suất thấp để chọn các biến "chính xác". Các slide có tại fharrell.com/talk/stratos19
Frank Harrell

4
Liên quan đến "Điểm mấu chốt: Lasso có xác suất thấp trong việc chọn các biến" chính xác ": có một phần về cùng một chủ đề trong Học tập thống kê với Sparsity ( web.stanford.edu/~hastie/StatLearnSparsity_files/ tựa ),11.4.1 Variable-Selection Consistency for the Lasso
Adrian

2
Cũng liên quan đến "Bottom line: Lasso có xác suất thấp lựa chọn các biến 'đúng'": xem statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf nghiên cứu trường hợp 1 và 2
Adrian

Câu trả lời:


3

Việc giải thích xác suất của các biểu thức thường xuyên về khả năng, giá trị p, vvetera, cho mô hình LASSO và hồi quy từng bước, là không chính xác.

Những biểu hiện đánh giá quá cao xác suất. Ví dụ: khoảng tin cậy 95% cho một số tham số được cho là nói rằng bạn có xác suất 95% rằng phương thức sẽ dẫn đến một khoảng với biến mô hình thực bên trong khoảng đó.

Tuy nhiên, các mô hình được trang bị không xuất phát từ một giả thuyết điển hình, và thay vào đó chúng tôi chọn anh đào (chọn ra nhiều mô hình thay thế có thể) khi chúng tôi thực hiện hồi quy từng bước hoặc hồi quy LASSO.


  1. Rất ít ý nghĩa để đánh giá tính chính xác của các tham số mô hình (đặc biệt là khi có khả năng mô hình không chính xác).

    Trong ví dụ dưới đây, được giải thích sau, mô hình này được trang bị cho nhiều biến hồi quy và nó 'bị' bởi tính đa hình. Điều này làm cho có khả năng một biến hồi quy lân cận (có tương quan mạnh) được chọn trong mô hình thay vì mô hình thực sự trong mô hình. Mối tương quan mạnh mẽ làm cho các hệ số có sai số / phương sai lớn (liên quan đến ma trận ).(XTX)1

    Tuy nhiên, phương sai cao này do tính đa hướng không được nhìn thấy trong các chẩn đoán như giá trị p hoặc sai số chuẩn của các hệ số, bởi vì chúng dựa trên ma trận thiết kế nhỏ hơn với ít biến hồi quy. (và không có phương pháp đơn giản nào để tính các loại số liệu thống kê cho LASSO)X

    Ví dụ: biểu đồ bên dưới hiển thị kết quả của mô hình đồ chơi cho một số tín hiệu là tổng tuyến tính của 10 đường cong Gaussian (ví dụ này có thể giống với phân tích trong hóa học trong đó tín hiệu cho phổ được coi là tổng tuyến tính của một số thành phần). Tín hiệu của 10 đường cong được gắn với một mô hình gồm 100 thành phần (đường cong Gaussian với trung bình khác nhau) sử dụng LASSO. Tín hiệu được ước tính tốt (so sánh đường cong màu đỏ và màu đen gần hợp lý). Nhưng, các hệ số cơ bản thực tế không được ước tính tốt và có thể sai hoàn toàn (so sánh các thanh màu đỏ và đen với các chấm không giống nhau). Xem thêm 10 hệ số cuối cùng:

                  91     91     92     93     94     95     96     97     98     99     100
     true model   0      0      0      0      0      0      0      142.8  0      0      0
     fitted       0      0      0      0      0      0      129.7  6.9    0      0      0
    

    Mô hình LASSO chọn các hệ số rất gần đúng, nhưng theo quan điểm của chính các hệ số, điều đó có nghĩa là một lỗi lớn khi ước tính một hệ số khác không bằng 0 và một hệ số lân cận bằng 0 được ước tính là 0 khác không. Bất kỳ khoảng tin cậy cho các hệ số sẽ có rất ít ý nghĩa.

    Lắp LASSO

    ví dụ Lasso / glmnet

    Phù hợp từng bước

    Để so sánh, đường cong tương tự có thể được gắn với thuật toán từng bước dẫn đến hình ảnh bên dưới. (với các vấn đề tương tự mà các hệ số gần nhau nhưng không khớp)

    ví dụ

  2. Ngay cả khi bạn xem xét độ chính xác của đường cong (chứ không phải là các tham số, mà ở điểm trước được làm rõ rằng nó không có ý nghĩa) thì bạn phải xử lý quá mức. Khi bạn làm một thủ tục phù hợp với Lasso sau đó bạn sử dụng đào tạo dữ liệu (để phù hợp với mô hình với các thông số khác nhau) và dữ liệu thử nghiệm / xác nhận (để điều chỉnh / tìm mà là tham số tốt nhất), nhưng bạn cũng nên sử dụng một riêng biệt ba bộ dữ liệu kiểm tra / xác nhận để tìm ra hiệu suất của dữ liệu.

    Giá trị p hoặc một cái gì đó tương tự sẽ không hoạt động vì bạn đang làm việc trên một mô hình được điều chỉnh là hái anh đào và khác nhau (mức độ tự do lớn hơn nhiều) từ phương pháp khớp tuyến tính thông thường.


Có phải chịu cùng một vấn đề hồi quy từng bước không?

Bạn dường như đề cập đến các vấn đề như sai lệch trong các giá trị như , giá trị p, điểm F hoặc lỗi tiêu chuẩn. Tôi tin rằng LASSO không được sử dụng để giải quyết những vấn đề đó.R2

Tôi nghĩ rằng lý do chính để sử dụng LASSO thay cho hồi quy từng bước là LASSO cho phép lựa chọn tham số ít tham lam hơn, ít bị ảnh hưởng bởi tính đa hướng. (khác biệt hơn giữa LASSO và từng bước: Sự vượt trội của LASSO so với lựa chọn chuyển tiếp / loại bỏ lùi về mặt lỗi dự đoán xác thực chéo của mô hình )


Mã cho hình ảnh ví dụ

# settings
library(glmnet)
n <- 10^2        # number of regressors/vectors
m <- 2         # multiplier for number of datapoints
nel <- 10        # number of elements in the model
set.seed(1)   
sig <- 4
t <- seq(0,n,length.out=m*n)

# vectors
X <- sapply(1:n, FUN <- function(x) dnorm(t,x,sig))

# some random function with nel elements, with Poisson noise added
par <- sample(1:n,nel)
coef <- rep(0,n)
coef[par] <- rnorm(nel,10,5)^2
Y <- rpois(n*m,X %*% coef)

# LASSO cross validation
fit <- cv.glmnet(X,Y, lower.limits=0, intercept=FALSE, 
                 alpha=1, nfolds=5, lambda=exp(seq(-4,4,0.1)))
plot(fit$lambda, fit$cvm,log="xy")
plot(fit)
Yfit <- (X %*% coef(fit)[-1])

# non negative least squares 
# (uses a stepwise algorithm or should be equivalent to stepwise)
fit2<-nnls(X,Y)


# plotting
par(mgp=c(0.3,0.0,0), mar=c(2,4.1,0.2,2.1))
layout(matrix(1:2,2),heights=c(1,0.55))


plot(t,Y,pch=21,col=rgb(0,0,0,0.3),bg=rgb(0,0,0,0.3),cex=0.7,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",bty="n")      
#lines(t,Yfit,col=2,lwd=2)                        # fitted mean
lines(t,X %*% coef,lwd=2)                        # true mean
lines(t,X %*% coef(fit2), col=3,lwd=2)           # 2nd fit

  # add coefficients in the plot
for (i in 1:n) {
  if (coef[i] > 0) {
    lines(c(i,i),c(0,coef[i])*dnorm(0,0,sig))
    points(i,coef[i]*dnorm(0,0,sig), pch=21, col=1,bg="white",cex=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(c(i,i),c(0,coef(fit)[i+1])*dnorm(0,0,sig),col=2)
#    points(i,coef(fit)[i+1]*dnorm(0,0,sig), pch=21, col=2,bg="white",cex=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(c(i,i),c(0,coef(fit2)[i+1])*dnorm(0,0,sig),col=3)
    points(i,coef(fit2)[i+1]*dnorm(0,0,sig), pch=21, col=3,bg="white",cex=1)
  }

}

#Arrows(85,23,85-6,23+10,-0.2,col=1,cex=0.5,arr.length=0.1)
#Arrows(86.5,33,86.5-6,33+10,-0.2,col=2,cex=0.5,arr.length=0.1)
#text(85-6,23+10,"true coefficient", pos=2, cex=0.7,col=1)
#text(86.5-6,33+10, "fitted coefficient", pos=2, cex=0.7,col=2)

text(0,50, "signal versus position\n true mean (black), fitted with nnls (green)", cex=1,col=1,pos=4, font=2)



plot(-100,-100,pch=21,col=1,bg="white",cex=0.7,type="l",lwd=2,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",
     ylim=c(0,max(coef(fit)))*dnorm(0,0,sig),xlim=c(0,n),bty="n") 
#lines(t,X %*% coef,lwd=2,col=2)      

for (i in 1:n) {
  if (coef[i] > 0) {
    lines(t,X[,i]*coef[i],lty=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(t,X[,i]*coef(fit)[i+1],col=2,lty=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(t,X[,i]*coef(fit2)[i+1],col=3,lty=1)
  }

}

text(0,33, "illustration of seperate components/curves", cex=1,col=1,pos=4, font=2)

+1 Cảm ơn bạn Martjin Wterings. Bạn có thể khuếch đại đồ thị một chút không? Những gì được hiển thị trên các trục, màu sắc đại diện, vv?
Alexis

Trên thực tế, đồ thị không phải là trường hợp của LASSO. Tuy nhiên, đây là một ví dụ về cách một mô hình có thể là tổng của một số thành phần, giả sử đường cong Gaussian (trong đó các đường cong có ý nghĩa hơi khác nhau rất tương quan) và sự thay đổi trung bình của các thành phần đó có nghĩa là một sự thay đổi lớn đối với hệ số nhưng không quá nhiều cho đường cong.
Sextus Empiricus

1
Các thanh là các giá trị của các hệ số cho mô hình thực và mô hình được trang bị. Đây là hình ảnh mà tôi nhớ nguyên tắc này xảy ra. Tôi sẽ tự làm một ví dụ, điều đó có thể cho thấy rõ hơn (tôi nghi ngờ rằng LASSO, ít tham lam hơn, có thể thực hiện phần nào tốt hơn trong việc thể hiện các hệ số thực).
Sextus Empiricus

0

Tôi có một cuộc nói chuyện mới giải quyết điều này. Điểm mấu chốt: lasso có xác suất thấp để chọn các biến "chính xác". Các slide có tại http://fharrell.com/talk/stratos19

- Frank Mitchell

Liên quan đến "Điểm mấu chốt: lasso có xác suất thấp để chọn các biến" chính xác ": có một phần về cùng một chủ đề trong Học tập thống kê với độ thưa thớt ( https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1. 4.16.pdf ), 11.4.1 Variable-Selection Consistency for the Lasso

- Adrian

Cũng liên quan đến "Điểm mấu chốt: Lasso có xác suất thấp khi chọn các biến 'chính xác': xem https://statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf nghiên cứu trường hợp 1 và 2

- Adrian


1
Tôi đã sao chép những bình luận này như một câu trả lời wiki cộng đồng bởi vì chúng ít nhiều là câu trả lời cho câu hỏi này. Chúng tôi có một khoảng cách đáng kể giữa câu trả lời và câu hỏi. Ít nhất một phần của vấn đề là một số câu hỏi được trả lời trong các bình luận: nếu các bình luận trả lời câu hỏi là câu trả lời thay vào đó, chúng ta sẽ có ít câu hỏi chưa được trả lời hơn.
mkt - Tái lập lại

1
Đây là những nhận xét và không, thậm chí tổng hợp, cung cấp câu trả lời theo tiêu chuẩn của CV (ví dụ: liên kết không phải là câu trả lời). Ngoài ra: Tôi không đồng ý với việc đưa ra một câu hỏi hoàn toàn hợp lệ vào wiki cộng đồng vì sự không hài lòng của bạn với tốc độ trả lời các câu hỏi.
Alexis

1
Ngoài ra: Tôi đã được giáo dục về wiki cộng đồng và các câu trả lời wiki cộng đồng và tôi rút lại sự bất đồng của mình ở đó (mặc dù tôi vẫn không nghĩ đây là câu trả lời :).
Alexis

1
@Alexis Đủ công bằng - Bản thân tôi nghĩ đó là một khu vực màu xám nhưng có thể đã đánh giá sai điều này.
mkt - Phục hồi lại

1
Chúng ta đều đang học. :)
Alexis
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.