Làm thế nào để làm lựa chọn tập hợp hồi quy logistic?


47

Tôi đang điều chỉnh một nhóm nhị phân gia đình trong R, và tôi có cả một nhóm các biến giải thích, và tôi cần tìm ra phương án tốt nhất (bình phương R là một thước đo là tốt). Viết tắt một tập lệnh để lặp qua các kết hợp ngẫu nhiên khác nhau của các biến giải thích và sau đó ghi lại hoạt động tốt nhất, tôi thực sự không biết phải làm gì. Và leapshàm từ bước nhảy gói dường như không thực hiện hồi quy logistic.

Bất kỳ trợ giúp hoặc đề xuất sẽ được đánh giá cao.


Có các chức năng thực hiện tìm kiếm tự động. Bạn nên xem qua chức năng bước . Mục 5.4 minh họa điểm đó: data.princeton.edu/R/glms.html
ocram

Tôi xin lỗi nhưng bài viết của tôi đã được chỉnh sửa để nó không còn hỏi câu hỏi của tôi nữa. Tôi có 35 (26 ý nghĩa) biến giải thích trong mô hình hồi quy logistic của mình. Tôi cần sự kết hợp tốt nhất có thể có của 8, không phải là tập hợp con tốt nhất và tôi không quan tâm đến cách tiếp cận theo từng bước hoặc tất cả các kiểu con. Không có phòng ngọ nguậy trong điều này 8. Tôi chỉ nghĩ ai đó có thể biết làm thế nào tôi có thể phù hợp với tất cả các kết hợp của 8 biến giải thích và nó có thể cho tôi biết khả năng nào tối đa hóa (xin lỗi về rắm não R-squared nhưng AIC không liên quan Tôi có một số tham số cố định, 8).
Leendert

Bạn có thể trở lại phiên bản trước của bài đăng của mình hoặc kết hợp cả hai chỉnh sửa. Tôi chắc chắn @mpiktas có ý định tốt khi cố gắng cải thiện vẻ ngoài của nó và chỉ không nhận thấy các tham số số.
chl

@ Mọi người: Cảm ơn bạn rất nhiều. Cuối cùng, tôi đã sử dụng nhiều thứ khác nhau với hy vọng tất cả họ sẽ đưa ra câu trả lời tương tự. Và họ đã làm. Tôi đã sử dụng các gói BMA, bestglm và glmnet cũng như chức năng bước. Các mô hình được trang bị với tất cả chúng, và không có sự khác biệt trong BMA với maxcol = 9 và bước được coi là mô hình tốt nhất. Tất cả các chuyên gia trong lĩnh vực xung quanh tôi dường như rất hài lòng với các biến số, và cảm thấy rằng nó khá tiến bộ. Vì vậy, cảm ơn cho tất cả các đầu vào. Tôi thực sự đã sử dụng tất cả.
Leendert

glmulti cũng là một gói tốt để lựa chọn tập hợp con tốt nhất và nó cho phép bạn chỉ định nr tối đa của các biến trong mô hình của mình và cũng cho phép một người xem xét tất cả các hiệu ứng tương tác bậc 1 có thể
Tom Wenseleers

Câu trả lời:


28

Phương pháp từng bước và "tất cả các tập con" nói chung là xấu. Xem Dừng lại theo chiều: Tại sao các phương pháp từng bước là xấu và những gì bạn nên sử dụng bởi David Cassell và bản thân tôi (chúng tôi đã sử dụng SAS, nhưng bài học được áp dụng) hoặc Chiến lược mô hình hồi quy Frank Harrell. Nếu bạn cần một phương pháp tự động, tôi khuyên dùng LASSO hoặc LAR. Một gói LASSO cho hồi quy logistic có sẵn ở đây , một bài viết thú vị khác là về LASSO lặp cho logistic


6
(+1) Về các gói R, cũng có glmnet (triển khai với phối hợp gốc, Friedman và coll.) Và bị phạt (cho phép giữ một số var. Đáng chú ý, F. Harrell cung cấp ước tính ML bị phạt cho GLM (xem lrmhoặc sách giáo khoa RMS của anh ấy để biết thêm thông tin).
chl

(+1) Bài viết hay, có vẻ như tôi phải bắt đầu vượt xa các tác giả trong câu hỏi (không phải lần đầu tiên tôi không làm). @chl (+1) đề xuất thay thế hoàn hảo quá.
Dmitrij Celov

@chl: +1 cho glmnet, đó là một gói tuyệt vời.
Zach

1
@chl Cảm ơn! Một trong những vấn đề với R là theo dõi các gói (có rất nhiều!) Và đó là cách tốt nhất. Các quan điểm nhiệm vụ giúp đỡ
Peter Flom - Tái lập Monica

2
Nếu các biến của bạn được cộng tuyến, tốt nhất là sử dụng mạng đàn hồi bằng glmnet, giả sử với alpha = 0,5, vì LASSO có xu hướng loại bỏ ngẫu nhiên các biến cộng tuyến cao ra khỏi mô hình
Tom Wenseleers

15

Trước hết, không phải là một biện pháp phù hợp với hồi quy logistic, lấy tiêu chí thông tin hoặc , ví dụ, như một phương án thay thế tốt. A I C B I CR2AICBIC

Hồi quy logistic được ước tính bằng phương pháp khả năng tối đa, do đó leapskhông được sử dụng trực tiếp tại đây. Một phần mở rộng của leapsđể glm()chức năng là bestglm gói (như thường khuyến cáo sau, tham khảo ý kiến các họa tiết đó).

Bạn cũng có thể quan tâm đến bài viết của David W. Hosmer, Borko Jovanovic và Stanley Lemeshow Các tập hợp con tốt nhất Hồi quy logistic // Biometrics Vol. 45, số 4 (tháng 12 năm 1989), trang 1265-1270 (thường có thể truy cập thông qua mạng lưới trường đại học).


2
Mặc dù nhận xét của bạn về kém hơn nói chung rất hữu ích, nhưng thực tế nó không có gì khác biệt trừ khi bạn so sánh các mô hình có kích thước khác nhau. OP tuyên bố rõ ràng rằng họ chỉ quan tâm đến mô hình biến, vì vậy và sẽ quay trở lại để chọn mô hình với khả năng cao nhất. Điều này tương đương với phù hợp. B I C , A I C 8 B I C A I C R 2R2BIC,AIC8BICAICR2
xác suất

Cảm ơn đã nhận xét, nhưng ý kiến ​​của chl dưới đây giải thích tại sao số lượng biến giải thích cố định là nguy hiểm. Nhân tiện, câu trả lời xuất hiện sớm hơn bình luận liên quan đến biến số (tối đa?) Biến đổi;)8
Dmitrij Celov

bất kỳ tài liệu tham khảo học tập nào choR2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
SIslam

một lưu ý trên bestglm, nó sử dụng leapsở phần phụ trợ để tính toán! Vì vậy, nó sẽ thất bại nếu có NA trong tập dữ liệu và sẽ đưa ra thông báo như Error in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3) Nhưng thật thú vị, tập dữ liệu của tôi không có NA thay vì một số không, dù sao chức năng này cũng phàn nàn và đưa ra thông báo chính xác ở trên !!
SIslam

glmnet cũng là một ứng dụng tốt và cũng có thể thực hiện các mô hình xem xét tất cả các hiệu ứng tương tác bậc 1 có thể có
Tom Wenseleers

6

Một ý tưởng sẽ là sử dụng một khu rừng ngẫu nhiên và sau đó sử dụng các biện pháp quan trọng khác nhau mà nó đưa ra để chọn 8 biến tốt nhất của bạn. Một ý tưởng khác là sử dụng gói "boruta" để lặp lại quá trình này vài trăm lần để tìm ra 8 biến quan trọng nhất đối với mô hình.


@Zach Bạn có đề xuất dựa vào RF để thực hiện lựa chọn tính năng và sau đó áp dụng GLM - trong trường hợp này, có nguy cơ quá mức hoặc quá lạc quan - hoặc sử dụng RF (với các biện pháp quan trọng tiêu chuẩn, hoặc lựa chọn tất cả có liên quan) như một công cụ độc lập?
chl

@chl: Tôi đã đề xuất sử dụng RF để thực hiện lựa chọn tính năng, sau đó áp dụng GLM. Tôi đồng ý có nguy cơ phù hợp quá mức, nhưng OP cho biết anh ta cần chính xác 8 biến.
Zach

1
@Zach "chính xác là 8 biến" ... Sau đó, bạn có phần mềm mỏng hơn các biến quan tâm tiềm năng dựa trên thước đo tầm quan trọng của biến số (nhờ vào việc dựa trên hoán vị và lấy mẫu kép được coi là không thiên vị) và sau đó từ chối chúng vào GLM. IMHO, bạn phá vỡ sự kiểm soát đối với việc quá mức gây ra thông qua việc đóng bao. Điều này cũng được mô tả trong ESLII từ Hastie et al.: Lựa chọn tính năng, nếu có, phải được đưa vào quy trình xác thực chéo (trong đó xác thực chéo bao gồm đánh giá hiệu suất mô hình).
chl

@chl: Không phải gói r "boruta" xác thực chéo bằng cách chạy rừng ngẫu nhiên nhiều lần? Về cơ bản, bạn có nói rằng chúng ta cần "xác thực chéo", trong đó bạn thực hiện lựa chọn biến và phù hợp với mô hình của bạn trên các tập hợp con ngẫu nhiên của dữ liệu?
Zach

3
@Zach Quan điểm của tôi là việc đóng bao, hoặc đặc biệt là các RF, ngăn không cho quá mức (ở một mức độ nhất định) miễn là bạn vẫn ở trong cùng một chuỗi công cụ. Nếu bạn sử dụng kết quả từ các RF và sau đó hãy xem cách một mô hình khác sẽ thực hiện với cùng một dữ liệu, sau đó bạn phá vỡ vòng lặp CV. Nhưng tại sao không sử dụng RF trực tiếp để phân loại? Một giải pháp khác là sử dụng RF trên một mẫu đào tạo và sau đó áp dụng GLM trên một mẫu đã được tổ chức (có khả năng cũng có thể được xác nhận chéo).
chl

0

stats::stepchức năng hoặc MASS::stepAIChỗ trợ chức năng tổng quát hơn lm, glm(tức là hồi quy logistic) và aovmô hình gia đình.

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.