Làm cách nào để ước tính tham số co ngót trong Lasso hoặc hồi quy sườn với các biến> 50K?


36

Tôi muốn sử dụng Lasso hoặc hồi quy sườn cho một mô hình với hơn 50.000 biến. Tôi muốn làm như vậy bằng cách sử dụng gói phần mềm trong R. Làm cách nào để ước tính tham số co ngót ( )?λ

Chỉnh sửa:

Đây là điểm tôi đã nhận được:

set.seed (123)
Y <- runif (1000)
Xv <- sample(c(1,0), size= 1000*1000,  replace = T)
X <- matrix(Xv, nrow = 1000, ncol = 1000)

mydf <- data.frame(Y, X)

require(MASS)
lm.ridge(Y ~ ., mydf)

plot(lm.ridge(Y ~ ., mydf,
              lambda = seq(0,0.1,0.001)))

nhập mô tả hình ảnh ở đây

Câu hỏi của tôi là: Làm thế nào để tôi biết là tốt nhất cho mô hình của tôi?λ


3
Thông số làm mịn không được ước tính theo thống kê nhưng được sử dụng để chọn tối đa hóa sự phù hợp ngoài mẫu bằng cách sử dụng, ví dụ, xác thực chéo. Tôi nghĩ rằng các gói tiêu chuẩn cho LASSO và Ridge Regression trong R đã được tích hợp chức năng để làm điều này cho bạn - bạn đã xem xét điều đó chưa?
Macro

4
Tôi không đồng ý - bạn có thể ước tính tham số làm mịn, sử dụng phương pháp mô hình hỗn hợp. Các phương thức Reml tồn tại như các phương thức vịnh bá đạo. Bạn không cần xác nhận chéo đắt tiền.
xác suất

1
@probabilityislogic cảm ơn bạn đã thông tin. Sẽ thật tuyệt nếu có một vài chi tiết về kịch bản làm thế nào chúng ta có thể làm điều này bằng cách sử dụng reml
John

2
Đối với hồi quy sườn, xác thực chéo một lần về cơ bản là miễn phí (thống kê PRESS của Allen) và tôi đã thấy đó là một phương pháp khá hợp lý. Tuy nhiên, do đó có thể có khá nhiều phương pháp mà bạn sử dụng sẽ không ổn định và cách tiếp cận Bayes hoàn toàn bên lề cả hai tham số và các tham số chính quy có thể là một giải pháp đáng tin cậy hơn (như tôi nghĩ là gợi ý xác suất). Nếu bạn không thích các phương pháp Bayes, thì hãy sử dụng đóng gói và ước tính lại lambda mỗi lần.
Dikran Marsupial

2
λβklog(λ)log|XTX+λI|kβN(0,σ2λ1)σ2β=β^

Câu trả lời:


25

cv.glmnetλ112α

λλcv.glmnetλlambda.minlambda.1seλtype.measure

Ngoài ra, mgcv gói R chứa các khả năng rộng rãi để ước tính với hình phạt bậc hai bao gồm lựa chọn tự động các tham số hình phạt. Các phương pháp được triển khai bao gồm xác thực chéo và REML, như đã đề cập trong một bình luận. Thông tin chi tiết có thể được tìm thấy trong cuốn sách của tác giả gói: Wood, SN (2006) Các mô hình phụ gia tổng quát: giới thiệu với R, CRC.


1
cv.glmnetλlambda.minlambda.1se

@chl, cảm ơn vì lời đề nghị. Tôi nên đã thêm rằng.
NRH

15

Câu trả lời này là cụ thể của MATLAB, tuy nhiên, các khái niệm cơ bản sẽ khá giống với những gì bạn đã sử dụng với R ...

Trong trường hợp MATLAB, bạn có tùy chọn chạy lasso với kích hoạt xác thực chéo.

Nếu bạn làm như vậy, hàm lasso sẽ báo cáo hai giá trị tham số quan trọng

  1. Giá trị lambda giảm thiểu lỗi bình phương trung bình được xác thực chéo
  2. Giá trị lambda với mức co rút lớn nhất có CVMSE nằm trong một lỗi tiêu chuẩn tối thiểu.

Bạn cũng có được một biểu đồ nhỏ mà bạn có thể sử dụng để kiểm tra mối quan hệ giữa lambda và CVMSE

nhập mô tả hình ảnh ở đây

Nói chung, bạn sẽ chọn một giá trị lambda nằm giữa đường màu xanh lam và đường màu xanh lá cây.

Bài đăng blog sau đây bao gồm một số mã demo dựa trên một số ví dụ trong

Tibshirani, R. (1996). Thu hẹp hồi quy và chọn lọc qua phương pháp hồi quy tuyến tính nhiều biến có hiệu chỉnh mô hình. J. Hoàng gia. Thống kê. Sóc B., Tập. 58, số 1, trang 267-288).

http://bloss.mathworks.com/loren/2011/11/29/subset-selection-and-THERization-part-2/


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.