Làm thế nào để trình bày kết quả của một Lasso bằng glmnet?


40

Tôi muốn tìm các yếu tố dự đoán cho một biến phụ thuộc liên tục trong số 30 biến độc lập. Tôi đang sử dụng hồi quy Lasso như được triển khai trong gói glmnet trong R. Đây là một số mã giả:

# generate a dummy dataset with 30 predictors (10 useful & 20 useless) 
y=rnorm(100)
x1=matrix(rnorm(100*20),100,20)
x2=matrix(y+rnorm(100*10),100,10)
x=cbind(x1,x2)

# use crossvalidation to find the best lambda
library(glmnet)
cv <- cv.glmnet(x,y,alpha=1,nfolds=10)
l <- cv$lambda.min
alpha=1

# fit the model
fits <- glmnet( x, y, family="gaussian", alpha=alpha, nlambda=100)
res <- predict(fits, s=l, type="coefficients")
res 

Câu hỏi của tôi là làm thế nào để giải thích đầu ra:

  • Có đúng không khi nói rằng trong đầu ra cuối cùng, tất cả các yếu tố dự đoán cho thấy một hệ số khác 0 đều có liên quan đến biến phụ thuộc?

  • Đó sẽ là một báo cáo đầy đủ trong bối cảnh của một ấn phẩm tạp chí? Hoặc dự kiến ​​sẽ cung cấp số liệu thống kê kiểm tra cho tầm quan trọng của các hệ số? (Bối cảnh là di truyền của con người)

  • Có hợp lý để tính giá trị p hoặc thống kê kiểm tra khác để xác nhận tầm quan trọng không? Làm thế nào điều đó có thể? Là một thủ tục được thực hiện trong R?

  • Liệu một biểu đồ hồi quy đơn giản (các điểm dữ liệu được vẽ với sự phù hợp tuyến tính) cho mọi dự đoán có phải là một cách phù hợp để trực quan hóa dữ liệu này không?

  • Có lẽ ai đó có thể cung cấp một số ví dụ dễ dàng về các bài báo được xuất bản cho thấy việc sử dụng Lasso trong bối cảnh của một số dữ liệu thực & cách báo cáo điều này trong một tạp chí?


Tại sao bạn chạy glmnet trong phần "phù hợp với mô hình"? Bạn không thể sử dụng cvcho bước dự đoán là tốt?
bourbaki4481472

Câu trả lời:


22

Tôi hiểu rằng bạn không nhất thiết phải nói nhiều về biến nào là "quan trọng" hoặc có hiệu ứng "thực" dựa trên việc hệ số của chúng có khác không. Để đưa ra một ví dụ cực đoan, nếu bạn có hai yếu tố dự đoán hoàn toàn trùng khớp, Lasso sẽ chọn một trong số chúng một cách ngẫu nhiên để có được trọng lượng đầy đủ và cái còn lại sẽ có trọng lượng bằng không.

Bài viết này , bao gồm một trong những tác giả của glmnet, trình bày một số phân tích dựa trên glmnet (đặc biệt là: Giới thiệu, Phần 2.3 và 4.3, và Bảng 4 và 5). Liếc qua, có vẻ như họ đã không tính giá trị P trực tiếp từ mô hình glmnet. Họ đã tính toán hai loại giá trị P khác nhau bằng các phương pháp khác, nhưng có vẻ như họ không hoàn toàn tin tưởng vào một trong hai.

Tôi không chắc chắn 100% những gì bạn đề xuất về phương pháp vẽ đồ thị, nhưng tôi nghĩ nó có vẻ hợp lý.

Mong rằng sẽ giúp.


1
Chào David! Cảm ơn câu trả lời. Bất cứ điều gì sẽ chống lại việc sử dụng LASSO để lựa chọn các yếu tố dự đoán có hệ số khác không và sau đó chỉ sử dụng các yếu tố dự đoán đó trong mô hình hồi quy tuyến tính để thu được giá trị p liên quan đến ý nghĩa của preditors. Ví dụ như bài viết này: ncbi.nlm.nih.gov/pmc/articles/PMC3412288
jokel

4
@jokel Tôi nghĩ rằng những gì bạn đang đề xuất là một trường hợp đặc biệt của "Lasso thư giãn", và nó có thể hoạt động rất tốt cho một số mục đích. Tuy nhiên, tôi không chắc bạn có thể tin tưởng các giá trị p bạn nhận được từ quy trình bạn đã mô tả hay không, vì thống kê F hoặc thống kê t của bạn sẽ không "biết" về bước lựa chọn biến bạn đã làm và Tỷ lệ lỗi loại I sẽ bị thổi phồng. Một cách để nghĩ về điều này: số bậc tự do chính xác sẽ là bao nhiêu cho một thống kê F? Tổng số biến trong hồi quy LASSO? Số lượng biến trong hồi quy thứ cấp? Một cái gì đó ở giữa?
David J. Harris

Đúng - vì vậy đây dường như cũng không phải là một cách tiếp cận hợp lệ. Bạn có ý tưởng nào khác về cách tìm các yếu tố dự đoán quan trọng trong số 300 biến độc lập (n >> p như trong ví dụ trên) không? Vì vậy, cuối cùng tôi sẽ có thể tuyên bố: "dự đoán X có liên quan đáng kể đến biến phụ thuộc Y"?
jokel

Câu trả lời của tôi cho tất cả mọi thứ mà tôi không biết cách thực hiện các phép tính là thực hiện ngẫu nhiên. Một khả năng sẽ là lấy mẫu lại các hàng trong bộ dữ liệu của bạn (ví dụ như với bootstrapping) và chạy các phân tích LASSO nhiều lần. Biến càng thường xuyên được đưa vào mô hình, nó càng có khả năng quan trọng. Một tùy chọn thậm chí tốt hơn có thể liên quan đến việc lấy mẫu các hàng cột, điều này có thể giúp tránh các hiệu ứng "che giấu". Breiman gợi ý một cái gì đó trong một tĩnh mạch tương tự trong [pdf này] (gần Hình 2) ( facemony.smu.edu/tfomby/eco5385/lecture/ móc ).
David J. Harris

9

Tôi chỉ muốn chỉ ra rằng có một công việc gần đây đang cố gắng phát triển một thống kê thử nghiệm dành riêng cho LASSO, có tính đến việc lựa chọn tính năng đang được thực hiện:

Một bài kiểm tra quan trọng cho Lasso. Richard Lockhart, Jonathan Taylor, Ryan J. Tibshirani, Robert Tibshirani. http://arxiv.org/abs/1301.7161

Tuy nhiên, tôi chưa thấy điều này được sử dụng trong công việc ứng dụng, trong khi bootstrapping chắc chắn được sử dụng.


0

Về suy luận cho LASSO hoặc các mô hình mạng đàn hồi có một cái nhìn về các gói CRAN chọn lọc Suy luậnhdi , chúng thực hiện chính xác điều đó trong khi tính đến bước chọn biến!

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.