Lỗi tiêu chuẩn cho dự đoán Lasso khi sử dụng R


60

Tôi đang cố gắng sử dụng mô hình LASSO để dự đoán và tôi cần ước tính các lỗi tiêu chuẩn. Chắc chắn ai đó đã viết một gói để làm điều này. Nhưng theo như tôi có thể thấy, không có gói nào trên CRAN thực hiện dự đoán sử dụng LASSO sẽ trả về các lỗi tiêu chuẩn cho các dự đoán đó.

Vì vậy, câu hỏi của tôi là: Có một gói hoặc một số mã R có sẵn để tính toán các lỗi tiêu chuẩn cho các dự đoán LASSO không?


3
Để làm rõ bản chất cơ bản của câu hỏi này (vì nó đã được gửi qua lại b / t CV & SO), tôi tự hỏi liệu chúng ta có thể chỉnh sửa tiêu đề không, Rob. Thế còn 'Tại sao dường như không có gói nào cho các lỗi tiêu chuẩn LASSO, chúng có khó tính toán không?', Hoặc một cái gì đó tương tự, có lẽ được ghép với một số chỉnh sửa nhỏ cho cơ thể để làm cho nó phù hợp. Tôi nghĩ rằng điều đó sẽ làm cho nó rõ ràng hơn về chủ đề trên CV để sự mơ hồ này không phát sinh và chúng ta không phải quay lại.
gung - Phục hồi Monica

3
Tôi có thể đặt câu hỏi nhiều hơn về phương pháp thống kê, nhưng đó không thực sự là điều tôi muốn biết. Cần có một nơi cho các câu hỏi trên CV về phần mềm nào thực hiện một phương pháp nhất định. Thảo luận thêm tại meta.stats.stackexchange.com/q/2007/159
Rob Hyndman

1
Bạn có thể thực hiện việc này một cách dễ dàng trong khung Bayes bằng cách sử dụng gói monomvn, xem câu trả lời của tôi dưới đây.
fabian

Câu trả lời:


46

Kyung et al. (2010), "Hồi quy hình phạt, sai số chuẩn và lassos Bayes", Phân tích Bayes, 5 , 2 , cho rằng có thể không có sự đồng thuận về phương pháp tính toán sai số chuẩn cho các dự đoán của Lasso. Tibshirani dường như đồng ý (slide 43) rằng các lỗi tiêu chuẩn vẫn là một vấn đề chưa được giải quyết.


7
Điều đó sẽ giải thích tại sao các gói không thực hiện các lỗi tiêu chuẩn.
Rob Hyndman

20

Trên một lưu ý liên quan, có thể hữu ích, Tibshirani và các đồng nghiệp đã đề xuất một thử nghiệm quan trọng cho Lasso. Bài viết có sẵn, và có tiêu đề "Một bài kiểm tra quan trọng cho Lasso". Một phiên bản miễn phí của bài báo có thể được tìm thấy ở đây


Liên kết không có paywall với bài báo mà bạn đề cập: statweb.stanford.edu/~tibs/ftp/covtest.pdf
mvherweg

13

Câu trả lời của Sandipan Karmakar cho bạn biết phải làm gì, điều này sẽ giúp bạn về "cách":

> library(monomvn)
>
> ## following the lars diabetes example
> data(diabetes)
> str(diabetes)
'data.frame':   442 obs. of  3 variables:
 $ x : AsIs [1:442, 1:10] 0.038075.... -0.00188.... 0.085298.... -0.08906.... 0.005383.... ...
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
  .. ..$ : chr  "age" "sex" "bmi" "map" ...

 $ y : num  151 75 141 206 135 97 138 63 110 310 ...

[...]

> ## Bayesian Lasso regression
> reg_blas <- with(diabetes, blasso(x, y))
t=100, m=8
t=200, m=5
t=300, m=8
t=400, m=8
t=500, m=7
t=600, m=8
t=700, m=8
t=800, m=8
t=900, m=5
> 
> ## posterior mean beta (setting those with >50% mass at zero to exactly zero)
> (beta <- colMeans(reg_blas$beta) * (colMeans(reg_blas$beta != 0)  > 0.5))
      b.1       b.2       b.3       b.4       b.5       b.6       b.7       b.8 
   0.0000 -195.9795  532.7136  309.1673 -101.1288    0.0000 -196.4315    0.0000 
      b.9      b.10 
 505.4726    0.0000 
> 
> ## n x nsims matrix of realizations from the posterior predictive:
> post_pred_y <- with(reg_blas, X %*% t(beta))
> 
> ## predictions:
> y_pred <- rowMeans(post_pred_y)
> head(y_pred)
[1]  52.772443 -78.690610  24.234753   9.717777 -23.360369 -45.477199
> 
> ## sd of y:
> sd_y <- apply(post_pred_y, 1, sd)
> head(sd_y)
[1] 6.331673 6.756569 6.031290 5.236101 5.657265 6.150473
> 
> ## 90% credible intervals
> ci_y <- t(apply(post_pred_y, 1, quantile, probs=c(0.05, 0.95)))
> head(ci_y)
             5%       95%
[1,]  42.842535  62.56743
[2,] -88.877760 -68.47159
[3,]  14.933617  33.85679
[4,]   1.297094  18.01523
[5,] -32.709132 -14.13260
[6,] -55.533807 -35.77809

13

Bayesian LASSO là giải pháp thay thế duy nhất cho vấn đề tính toán sai số chuẩn. Các lỗi tiêu chuẩn được tự động tính toán trong Bayesian LASSO ... Bạn có thể thực hiện Bayesian LASSO rất dễ dàng bằng cách sử dụng sơ đồ lấy mẫu Gibbs ...

Bayesian LASSO cần phân phối trước để được gán cho các tham số của mô hình. Trong mô hình LASSO, chúng ta có hàm mục tiêu với như tham số chính quy. Ở đây, như chúng ta có -norm cho , do đó, một loại phân phối trước đặc biệt là cần thiết cho điều này, phân phối LAPLACE một hỗn hợp tỷ lệ phân phối bình thường với phân bố hàm mũ theo mật độ trộn. Dựa trên các thông số có điều kiện đầy đủ của từng tham số sẽ được suy ra.||yXβ||22+λ||β||1λ1β

Sau đó, người ta có thể sử dụng Gibbs Sampling để mô phỏng chuỗi. Xem Park & ​​Cassella (2008), "The Bayesian Lasso", JASA , 103 , 482 .

Có ba nhược điểm cố hữu của LASSO thường xuyên:

  1. Người ta phải chọn bằng cách xác nhận chéo hoặc các phương tiện khác.λ

  2. Các lỗi tiêu chuẩn rất khó tính vì LARS và các thuật toán khác tạo ra ước tính điểm cho .β

  3. Cấu trúc phân cấp của vấn đề trong tầm tay không thể được mã hóa bằng mô hình thường xuyên, điều này khá dễ dàng trong khung Bayes.


11

Để thêm vào các câu trả lời ở trên, vấn đề dường như là ngay cả một bootstrap cũng không đủ vì ước tính từ mô hình bị phạt là sai lệch và bootstrapping sẽ chỉ nói về phương sai - bỏ qua sai lệch của ước tính. Điều này được tóm tắt độc đáo trong họa tiết cho gói bị phạt trên Trang 18 .

Tuy nhiên, nếu được sử dụng để dự đoán, tại sao cần phải có lỗi tiêu chuẩn từ mô hình? Bạn không thể xác thực chéo hoặc bootstrap một cách thích hợp và tạo ra một lỗi tiêu chuẩn xung quanh một số liệu liên quan đến dự đoán như MSE?


3
Bootstrapping có thể ước tính và sửa lỗi cho sai lệch, mặc dù các mẫu cần khá lớn.
Glen_b

3

Có gói selectiveInference trong R, https://cran.r-project.org/web/packages/selectiveInference/index.html , cung cấp khoảng tin cậy và giá trị p cho các hệ số của bạn được LASSO trang bị, dựa trên bài báo sau :

Stephen Reid, Jerome Friedman và Rob Tibshirani (2014). Một nghiên cứu về ước lượng phương sai lỗi trong hồi quy lasso. arXiv: 1311.5274

PS: chỉ nhận ra rằng điều này tạo ra các ước tính lỗi cho các tham số của bạn, không chắc chắn về lỗi trong dự đoán cuối cùng của bạn, nếu đó là những gì bạn đang theo sau ... Tôi cho rằng bạn có thể sử dụng "khoảng dự đoán dân số" cho điều đó nếu bạn thích (bởi lấy mẫu lại các tham số theo sự phù hợp theo phân phối chuẩn nhiều biến số).

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.