Làm cách nào để xử lý các giá trị bị thiếu để chuẩn bị dữ liệu cho lựa chọn tính năng với LASSO?


10

Hoàn cảnh của tôi:

  • cỡ mẫu nhỏ: 116
  • biến kết quả nhị phân
  • danh sách dài các biến giải thích: 44
  • các biến giải thích không đến từ đỉnh đầu của tôi; sự lựa chọn của họ dựa trên tài liệu.
  • hầu hết các trường hợp trong mẫu và hầu hết các biến đều thiếu giá trị.

Phương pháp lựa chọn tính năng được chọn: LASSO

Gói glmnet của R sẽ không cho phép tôi chạy thói quen glmnet, rõ ràng là do sự tồn tại của các giá trị bị thiếu trong tập dữ liệu của tôi. Dường như có nhiều phương pháp khác nhau để xử lý dữ liệu bị thiếu, vì vậy tôi muốn biết:

  • LASSO có áp đặt bất kỳ hạn chế nào về phương pháp buộc tội mà tôi có thể sử dụng không?
  • Điều gì sẽ là đặt cược tốt nhất cho phương pháp buộc tội? Lý tưởng nhất, tôi cần một phương pháp mà tôi có thể chạy trên SPSS (tốt nhất là) hoặc R.

CẬP NHẬT1: Rõ ràng từ một số câu trả lời dưới đây rằng tôi đã giải quyết các vấn đề cơ bản hơn trước khi xem xét các phương pháp buộc tội. Tôi muốn thêm vào đây những câu hỏi mới liên quan đến điều đó. Trên câu trả lời cho thấy mã hóa là giá trị không đổi và tạo ra một biến mới để xử lý các giá trị 'không áp dụng' và việc sử dụng lasso nhóm:

  • Bạn có nói rằng nếu tôi sử dụng nhóm LASSO, tôi sẽ có thể sử dụng phương pháp tiếp cận được đề xuất cho các dự đoán liên tục cũng cho các dự đoán phân loại? Nếu vậy, tôi cho rằng nó sẽ tương đương với việc tạo ra một thể loại mới - tôi cảnh giác rằng điều này có thể giới thiệu sự thiên vị.
  • Có ai biết gói glmnet của R có hỗ trợ nhóm LASSO không? Nếu không, có ai đề nghị một cái khác kết hợp với hồi quy logistic không? Một số tùy chọn đề cập đến nhóm LASSO có thể được tìm thấy trong kho CRAN, có đề xuất nào phù hợp nhất cho trường hợp của tôi không? Có lẽ SGL?

Đây là phần tiếp theo của một câu hỏi trước đây của tôi ( Làm thế nào để chọn một tập hợp con các biến từ danh sách dài ban đầu của tôi để thực hiện phân tích hồi quy logistic? ).

OBS: Tôi không phải là một nhà thống kê.


(1) Cách tiếp cận tốt nhất để loại bỏ tùy thuộc vào tỷ lệ và mẫu của các giá trị bị thiếu, mối quan hệ giữa các biến và những giả định mà bạn đã chuẩn bị để đưa ra lý do cho các giá trị bị thiếu. (2) Bất kỳ phương pháp cắt cụt đơn lẻ nào cũng có thể được sử dụng để cung cấp đầu vào cho LASSO; khó khăn trong việc đánh giá mức độ ảnh hưởng đến kết quả. Tôi không biết làm thế nào để kết hợp nhiều lần cắt cụt với LASSO (không nghi ngờ gì với ai đó), nhưng một so sánh không chính thức về kết quả từ các lần chạy khác nhau (có phải là cùng một dự đoán thường được chọn không?) Vẫn có thể là thông tin.
Scortchi - Phục hồi Monica

@Scortchi: Hầu hết các giá trị còn thiếu của tôi nằm trong danh mục 'không áp dụng'. Ví dụ: Trong biến số 'tuổi của phụ nữ trưởng thành trong gia đình', các trường hợp trong đó nam giới trưởng thành là một góa phụ. Trên thực tế, tôi đoán tôi cần lùi một bước ở đây: tôi có nên coi các giá trị 0 trong các biến liên tục là các giá trị bị thiếu không? Vd: 0 năm học, 0 thành viên trong gia đình từ 14 đến 60 tuổi.
Bối rối

Thật khó để tưởng tượng một tình huống mà bạn muốn coi đó là một sự thật chưa biết về một phụ nữ vắng mặt hơn là một sự thật được biết về gia đình. Câu hỏi về số 0 rất khó hiểu: bạn có hỏi liệu ví dụ: không có năm giáo dục nào là giá trị hợp lý hay 0 có thể được sử dụng để mã hóa một giá trị còn thiếu? (Và sau đó làm sao tôi biết?) Chắc chắn không có lý do chung nào để coi 0 là biểu thị sự mất tích.
Scortchi - Phục hồi Monica

@Scortchi: Về biến số tuổi nữ, tôi hiểu ý của bạn. Nhưng vấn đề trở thành: làm thế nào để tôi viết mã trường hợp nữ vắng mặt nếu không phải là NA? Về số không: có, đó chính xác là câu hỏi của tôi, xin lỗi nếu nó không rõ ràng. Tôi nghĩ rằng chương trình có thể có một số vấn đề trong việc xử lý các giá trị 0 và nó có thể không 'hiểu' ý tôi là gì với nó.
Bối rối

Bạn có thể mã nó thành bất kỳ giá trị không đổi nào và giới thiệu một biến chỉ báo cho sự hiện diện / vắng mặt (& sử dụng nhóm LASSO). Không có lý do tại sao LASSO hoặc bất kỳ chương trình hồi quy nào khác nên xử lý sai các giá trị 0 cho các yếu tố dự đoán. [Xin đừng hiểu sai, nhưng đây là những câu hỏi rất cơ bản, cho thấy rằng nếu điều này là để giải trí, bạn có thể muốn bắt đầu với những vấn đề đơn giản hơn, hoặc nếu thực sự bạn có thể muốn tham khảo ý kiến ​​của một nhà thống kê.]
Scortchi - Phục hồi Monica

Câu trả lời:


10

Khi một công cụ dự đoán liên tục chứa các giá trị 'không áp dụng', việc mã hóa nó bằng hai biến:x

x1={cwhen x is not applicablexotherwise

Trong đó là hằng số, &c

x2={1when x is not applicable0otherwise

Giả sử dự đoán tuyến tính cho phản hồi được đưa ra bởi

η=β0+β1x1+β2x2+

mà giải quyết

η=β0+β1x1+

khi được đo, hoặcx

η=β0+β1c+β2+

khi x là 'không áp dụng'. Việc lựa chọn là tùy ý, & không ảnh hưởng đến ước tính của phần chặn hoặc độ dốc ; mô tả hiệu ứng của 'không thể áp dụng' so với khi .cβ0β1β2xx=c

Đây không phải là một cách tiếp cận phù hợp khi đáp ứng thay đổi theo một giá trị không xác định của : độ biến thiên của nhóm 'mất tích' sẽ bị thổi phồng, và ước tính các hệ số của các yếu tố dự đoán khác bị sai lệch do gây nhiễu. Tốt hơn để áp đặt các giá trị thiếu.x

Sử dụng LASSO giới thiệu hai vấn đề:

  1. Việc lựa chọn ảnh hưởng đến kết quả vì lượng co ngót được áp dụng phụ thuộc vào độ lớn của ước tính hệ số.c
  2. Bạn cần đảm bảo rằng & đều ở cả hoặc trong cả hai mô hình được chọn.x1x2

Bạn có thể giải quyết cả hai điều này bằng cách sử dụng nhóm LASSO thay vì nhóm bao gồm & : hình phạt được áp dụng cho -norm của ma trận được chuẩn hóa . (Những người dự đoán phân loại là con đẻ của nhóm LASSO, bạn chỉ viết mã 'không áp dụng' như một mức riêng biệt, như thường được thực hiện trong hồi quy không được cấp phép.) Xem Meier et al (2008), JRSS B, 70 , 1, " nhóm Lasso cho hồi quy logistic " & grplasso .x1x2L1L2[x1 x2]


Có ai biết gói glmnet của R có hỗ trợ nhóm LASSO không? Nếu không, có ai đề nghị một cái khác kết hợp với hồi quy logistic không? Một số tùy chọn đề cập đến nhóm LASSO có thể được tìm thấy trong kho CRAN, có đề xuất nào phù hợp nhất cho trường hợp của tôi không? Có lẽ SGL?
Bối rối

Vì vậy, bạn có nói rằng nếu tôi sử dụng nhóm LASSO, tôi sẽ có thể sử dụng phương pháp bạn đề xuất cho những người dự đoán liên tục cũng để dự đoán phân loại?
Bối rối

5

Nhiều Imputation không bao giờ là một cách tiếp cận xấu. Bạn cũng có thể thực hiện đầy đủ thông tin tối đa khả năng. Đánh giá tốt và so sánh ở đâyở đây .

Nhưng nếu bạn đang đi theo con đường đó, hãy cân nhắc sử dụng Stan để phù hợp với thuật ngữ ML đồng thời với hồi quy của bạn dưới dạng một mô hình Bayes duy nhất, vì LASSO dù sao cũng là một trường hợp đặc biệt của hồi quy Bayes .


Tôi đã hiểu nhầm phương pháp nhiều lần cắt bỏ, bây giờ tôi thấy rằng nó sẽ được áp dụng cho trường hợp của tôi. Tôi đã chỉnh sửa câu hỏi của mình để phản ánh điều này. Bạn có biết nếu SPSS hoặc R chạy hai tùy chọn mà bạn đã đề cập không?
Bối rối

1
Có một gói R micó thể giúp bạn.
Shadowtalker

2
Bạn có thể chạy Stan qua R (xem RStan ).
Scortchi - Phục hồi Monica

Nhiều gói chi tiết bổ sung cho R bao gồm Ameliamice.
Sycorax nói Phục hồi lại

0

Lệnh CATREG trong Statistics xử lý dữ liệu bị thiếu với LASSO. Bạn có thể loại trừ các trường hợp theo cách liệt kê hoặc có quy trình xử lý mặc dù tên của nó gợi ý rằng nó dành cho các biến phân loại, bạn có thể đặt tỷ lệ thành Numeric để xử lý trường hợp liên tục.


Đây là SAS PROC CATREG, tôi đoán vậy?
Ben Bolker

@JKP: Thật ra tôi đã bắt gặp lệnh này. Tuy nhiên, xem xét rằng biến ngoại lệ của tôi là nhị phân, tôi cho rằng hồi quy logisic sẽ phù hợp hơn hồi quy phân loại (CATREG) - tôi có đúng không? Ngoài ra, các tùy chọn trong CATREG có vẻ khá hạn chế - bạn chỉ có thể chọn giữa việc loại trừ các trường hợp, thay thế các giá trị bị thiếu bằng các giá trị trung bình hoặc tạo một danh mục phụ.
Bối rối

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.