Những gì để kết luận từ cốt truyện Lasso này (glmnet)


19

Sau đây là sơ đồ của glmnet với alpha mặc định (1, do đó là lasso) sử dụng mtcarsdữ liệu được đặt trong R với mpgDV và các biến khác làm biến dự đoán.

glmnet(as.matrix(mtcars[-1]), mtcars[,1])

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

Những gì chúng ta có thể kết luận từ cốt truyện này liên quan đến các biến khác nhau, đặc biệt am, cylwt(đỏ, đen và ánh sáng đường màu xanh)? Làm thế nào chúng ta sẽ cụm từ đầu ra trong một báo cáo sẽ được công bố?

Tôi nghĩ sau đây:

  1. wtlà dự đoán quan trọng nhất của mpg. Đó là ảnh hưởng tiêu cực mpg.

  2. cyllà một yếu tố dự báo tiêu cực yếu của mpg.

  3. amcó thể là một dự đoán tích cực của mpg.

  4. Các biến khác không phải là dự đoán mạnh mẽ của mpg.

Cảm ơn cho những suy nghĩ của bạn về điều này.

(Lưu ý: cyllà đường màu đen không đạt đến 0 cho đến khi rất gần với nó.)

Chỉnh sửa: Sau đây là âm mưu (mod, xvar = 'lambda') hiển thị trục x theo thứ tự đảo ngược của âm mưu trên:

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

(PS: Nếu bạn thấy câu hỏi này thú vị / quan trọng, vui lòng nâng cấp nó;)


Có vẻ như bạn đã quên một dấu phẩy trước khi -1vào glmnet(as.matrix(mtcars[-1]), mtcars[,1]).
Richard Hardy

Nếu dấu phẩy không được đưa ra, R giả sử số đó là số cột, vì vậy nó hoạt động.
rnso

Thật tuyệt, tôi đã không làm điều đó trước đây.
Richard Hardy

2
@RichardHardy hãy cẩn thận; hành vi này là khác nhau cho khung dữ liệu và ma trận. Khung dữ liệu là một danh sách và mỗi cột là một thành phần của danh sách đó, do đó my_data_frame[1]trả về một khung dữ liệu với một cột, trong khi đó my_data_frame[[1]]my_data_frame[, 1]cả hai đều trả về một vectơ không được "chứa" bởi khung dữ liệu. Ma trận, tuy nhiên, trên thực tế vectơ chỉ phẳng với một thuộc tính đặc biệt cho phép R để truy cập chúng như một mạng lưới, do đó my_matrix[1], my_matrix[1, 1]my_matrix[[1]]tất cả sẽ trở lại là người đầu tiên yếu tố của my_matrix. my_matrix[, 1] trả về cột đầu tiên.
Shadowtalker

2
Tôi chỉ đề cập rằng plot_glmnet chức năng trong plotmo gói cho lô hệ số tốt hơn một chút vì nó sẽ chăm sóc của overplotting nhãn và một số chi tiết khác. Ví dụ có thể được tìm thấy trong Chương 6 trong họa tiết cốt truyện .
Stephen Milborrow

Câu trả lời:


39

λđăng nhập(λ)Σtôi|βtôi|

Cuối cùng, tôi đã tạo ra một số dữ liệu tương quan và không tương quan để chứng minh:

x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]

sigma <- matrix(c(  1, -.5,   0,
                  -.5,   1, -.5,
                    0, -.5,   1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]

Dữ liệu x_uncorrcó các cột không tương thích

> round(cor(x_uncorr), 2)
     [,1]  [,2]  [,3]
[1,] 1.00  0.01  0.00
[2,] 0.01  1.00 -0.01
[3,] 0.00 -0.01  1.00

trong khi x_corrcó mối tương quan đặt trước giữa các cột

> round(cor(x_corr), 2)
      [,1]  [,2]  [,3]
[1,]  1.00 -0.49  0.00
[2,] -0.49  1.00 -0.51
[3,]  0.00 -0.51  1.00

Bây giờ hãy xem xét các ô Lasso cho cả hai trường hợp này. Đầu tiên là dữ liệu không tương thích

gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)

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

Một vài tính năng nổi bật

  • Các dự đoán đi vào mô hình theo thứ tự độ lớn của hệ số hồi quy tuyến tính thực sự.
  • Σtôi|βtôi|Σtôi|βtôi|
  • Khi một yếu tố dự đoán mới đi vào mô hình, nó sẽ ảnh hưởng đến độ dốc của đường hệ số của tất cả các yếu tố dự đoán đã có trong mô hình theo cách xác định. Ví dụ, khi bộ dự đoán thứ hai đi vào mô hình, độ dốc của đường hệ số thứ nhất bị cắt làm đôi. Khi dự đoán thứ ba đi vào mô hình, độ dốc của đường hệ số là một phần ba giá trị ban đầu của nó.

Đây là tất cả các sự kiện chung áp dụng cho hồi quy lasso với dữ liệu không tương quan, và tất cả chúng có thể được chứng minh bằng tay (bài tập tốt!) Hoặc được tìm thấy trong tài liệu.

Bây giờ hãy làm dữ liệu tương quan

gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)

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

Bạn có thể đọc một số điều ngoài cốt truyện này bằng cách so sánh nó với trường hợp không tương thích

  • Các đường dẫn dự đoán thứ nhất và thứ hai có cấu trúc giống như trường hợp không tương thích cho đến khi dự đoán thứ ba đi vào mô hình, mặc dù chúng có tương quan với nhau. Đây là một tính năng đặc biệt của hai trường hợp dự đoán, mà tôi có thể giải thích trong một câu trả lời khác nếu có sự quan tâm, nó sẽ đưa tôi đi xa hơn một chút về cuộc thảo luận hiện tại.
  • Σ|βtôi|

Vì vậy, bây giờ hãy xem xét âm mưu của bạn từ bộ dữ liệu xe hơi và đọc một số điều thú vị (Tôi đã tái tạo âm mưu của bạn ở đây để cuộc thảo luận này dễ đọc hơn):

Một lời cảnh báo : Tôi đã viết phân tích sau đây dựa trên giả định rằng các đường cong cho thấy các hệ số được tiêu chuẩn hóa , trong ví dụ này chúng không như vậy. Các hệ số không được chuẩn hóa không phải là không thứ nguyên, và không thể so sánh được, vì vậy không có kết luận nào có thể được rút ra từ chúng về tầm quan trọng dự đoán. Để phân tích sau đây hợp lệ, vui lòng giả vờ rằng âm mưu là của các hệ số được tiêu chuẩn hóa, và vui lòng thực hiện phân tích của riêng bạn trên các đường dẫn hệ số chuẩn.

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

  • Như bạn nói, người wtdự đoán có vẻ rất quan trọng. Nó đi vào mô hình đầu tiên, và có tốc độ chậm và ổn định đến giá trị cuối cùng của nó. Nó có một vài tương quan làm cho nó một chuyến đi hơi gập ghềnh, amđặc biệt dường như có một tác động mạnh mẽ khi nó đi vào.
  • amcũng quan trọng Nó đến sau, và có tương quan với wt, vì nó ảnh hưởng đến độ dốc của wtmột cách bạo lực. Nó cũng tương quan với carbqsec, bởi vì chúng ta không thấy độ mềm có thể dự đoán được khi độ dốc đi vào. Sau khi bốn biến này đã được nhập, chúng ta sẽ thấy mô hình không tương quan tốt đẹp, vì vậy nó dường như không tương thích với tất cả các dự đoán ở cuối.
  • Một cái gì đó đi vào khoảng 2,25 trên trục x, nhưng bản thân đường dẫn của nó là không thể chấp nhận được, bạn chỉ có thể phát hiện ra nó bởi ảnh hưởng của nó đến các tham số cylwt.
  • cyllà khá mặt. Nó bước vào thứ hai, vì vậy rất quan trọng đối với các mô hình nhỏ. Sau các biến khác, và đặc biệt là amnhập, nó không còn quá quan trọng nữa và xu hướng của nó đảo ngược, cuối cùng bị loại bỏ. Có vẻ như hiệu ứng của cylcó thể được ghi lại hoàn toàn bởi các biến nhập vào cuối quá trình. Cho dù nó phù hợp hơn để sử dụng cyl, hoặc nhóm các biến bổ sung, thực sự phụ thuộc vào sự đánh đổi sai lệch. Có nhóm trong mô hình cuối cùng của bạn sẽ làm tăng đáng kể phương sai của nó, nhưng có thể là trường hợp sai lệch thấp hơn bù cho nó!

Đó là một giới thiệu nhỏ về cách tôi đã học cách đọc thông tin về các lô này. Tôi nghĩ rằng họ là rất nhiều niềm vui!

Cảm ơn cho một phân tích tuyệt vời. Để báo cáo một cách đơn giản, bạn có nói rằng wt, am và xi lanh là 3 yếu tố dự đoán quan trọng nhất của mpg. Ngoài ra, nếu bạn muốn tạo một mô hình để dự đoán, bạn sẽ bao gồm mô hình nào dựa trên hình này: wt, am và xi lanh? Hoặc một số kết hợp khác. Ngoài ra, bạn dường như không cần lambda tốt nhất để phân tích. Nó không quan trọng như trong hồi quy sườn núi?

Tôi muốn nói trường hợp wtamđược cắt rõ ràng, chúng rất quan trọng. cyltinh tế hơn nhiều, nó quan trọng trong một mô hình nhỏ, nhưng hoàn toàn không liên quan trong một mô hình lớn.

Tôi sẽ không thể đưa ra quyết định về những gì chỉ bao gồm dựa trên hình, điều đó thực sự phải được trả lời theo bối cảnh của những gì bạn đang làm. Bạn có thể nói rằng nếu bạn muốn có một mô hình dự đoán ba, thì wt, amcyllà những lựa chọn tốt, vì chúng có liên quan trong sơ đồ lớn của mọi thứ, và cuối cùng nên có kích thước hiệu ứng hợp lý trong một mô hình nhỏ. Điều này được khẳng định dựa trên giả định rằng bạn có một số lý do bên ngoài để mong muốn một mô hình ba dự đoán nhỏ mặc dù.

Đó là sự thật, kiểu phân tích này xem xét toàn bộ phổ lambdas và cho phép bạn loại bỏ các mối quan hệ qua một loạt các mô hình phức tạp. Điều đó nói rằng, đối với một mô hình cuối cùng, tôi nghĩ rằng việc điều chỉnh một lambda tối ưu là rất quan trọng. Trong trường hợp không có các ràng buộc khác, tôi chắc chắn sẽ sử dụng xác nhận chéo để tìm nơi lambda dự đoán nhất, và sau đó sử dụng lambda cho mô hình cuối cùng và phân tích cuối cùng.

λ

Theo hướng khác, đôi khi có những hạn chế bên ngoài về mức độ phức tạp của một mô hình (chi phí thực hiện, hệ thống kế thừa, tối giản giải thích, khả năng giải thích kinh doanh, thẩm mỹ thẩm mỹ) và loại kiểm tra này thực sự có thể giúp bạn hiểu được hình dạng của dữ liệu của bạn và sự đánh đổi bạn đang thực hiện bằng cách chọn một mô hình nhỏ hơn tối ưu.


Cảm ơn cho một phân tích tuyệt vời. Để báo cáo một cách đơn giản, bạn có nói rằng wt, am và xi lanh là 3 yếu tố dự đoán quan trọng nhất của mpg. Ngoài ra, nếu bạn muốn tạo một mô hình để dự đoán, bạn sẽ bao gồm mô hình nào dựa trên hình này: wt, am và xi lanh? Hoặc một số kết hợp khác. Ngoài ra, bạn dường như không cần lambda tốt nhất để phân tích. Nó không quan trọng như trong hồi quy sườn núi?
rnso

@rnso Tôi đã thêm một câu trả lời cho câu trả lời của tôi.
Matthew Drury

Có lẽ 'hành hạ' được cho là 'tội ác'?
Hatshepsut

@Mate . ## khi nào tôi có thể nói dự đoán này là quan trọng hay không. ### cuối cùng, làm thế nào tôi có thể chọn mô hình tốt nhất phù hợp này. Hơn nữa, là huyền thoại / nhãn bao gồm tự động. (Tôi đã thực hiện ví dụ này trong R)
jeza

5
+6, tôi rõ ràng đã bỏ lỡ điều này khi nó xuất hiện. Công việc thực sự tốt đẹp.
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.