Làm thế nào để đối phó với đa cộng đồng khi thực hiện lựa chọn biến?


28

Tôi có một bộ dữ liệu với 9 biến độc lập liên tục. Tôi đang cố gắng chọn trong số các biến này để khớp một mô hình với một biến phần trăm (phụ thuộc) , Score. Thật không may, tôi biết sẽ có sự cộng tác nghiêm trọng giữa một số biến.

Tôi đã thử sử dụng stepAIC()hàm trong R để chọn biến, nhưng phương thức đó, thật kỳ lạ, có vẻ nhạy cảm với thứ tự các biến được liệt kê trong phương trình ...

Đây là mã R của tôi (vì đó là dữ liệu tỷ lệ phần trăm, tôi sử dụng chuyển đổi logit cho Điểm):

library(MASS)
library(car)

data.tst = read.table("data.txt",header=T)
data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 +
             Var8 + Var9, data = data.tst)

step = stepAIC(data.lm, direction="both")
summary(step)

Vì một số lý do, tôi thấy rằng các biến được liệt kê ở đầu phương trình cuối cùng được chọn bởi stepAIC()hàm và kết quả có thể được xử lý bằng cách liệt kê, ví dụ, Var9trước tiên (sau dấu ngã).

Một cách hiệu quả hơn (và ít gây tranh cãi) để phù hợp với một mô hình ở đây là gì? Tôi thực sự không quyết định sử dụng hồi quy tuyến tính: điều duy nhất tôi muốn là có thể hiểu được trong số 9 biến nào thực sự thúc đẩy sự biến đổi của Scorebiến. Tốt hơn là, đây sẽ là một phương pháp nào đó có tiềm năng mạnh mẽ cho sự cộng tác trong 9 biến này.


6
Tuy nhiên, tính cộng tác sẽ có nghĩa là phân tích, về cơ bản là không thể xác định liệu một biến có 'lái' biến thể nhiều hay ít hơn một biến có cộng tuyến cao hay không. Nắm bắt được giới hạn này, bạn có thể thử Lasso như một phương tiện để chọn một số lượng nhỏ các biến dự đoán một cách tối ưu, sau đó báo cáo tập hợp các biến mà nó chọn các biến được đặt chung. Lasso nhóm là một lựa chọn khác.
khách

4
@guest: Lasso không hoạt động đặc biệt tốt khi có sự cộng tác mạnh mẽ, đặc biệt là liên quan đến vấn đề lựa chọn mô hình.
hồng y

2
@cardinal, Lasso không sao nhưng nếu một số biến tương quan, nó sẽ có xu hướng chỉ chọn một trong số chúng, đó là lý do tại sao tôi đề nghị xem xét tập hợp các biến có cộng tuyến cao. Quyết định sử dụng một cái gì đó phức tạp hơn 'mặc định' này sẽ yêu cầu đánh giá tiện ích và một khái niệm mạnh mẽ hơn về mô hình này được dùng cho mục đích gì.
khách

2
Bạn có thể muốn xem xét hàm bicreg {gói BMA}. Lưu ý rằng bạn cần một bộ dữ liệu trường hợp đầy đủ để nó hoạt động đúng. Tôi thấy nó cực kỳ hữu ích cho việc lựa chọn mô hình.
Đaminh Comtois

1
@guest: Chà, điều đó phụ thuộc rất nhiều vào cách thức mà tham số chính quy được chọn. Trên thực tế, trong một số chế độ nhất định, Lasso có xu hướng (có thể chứng minh) hơn các tham số được chọn. OP đã hỏi "điều duy nhất tôi muốn là có thể hiểu được trong số 9 biến nào thực sự thúc đẩy sự biến đổi của Scorebiến", đó là câu mà tôi có thể đã quá tập trung vào. Với sự hiện diện của sự cộng tác mạnh mẽ, Lasso sẽ không giúp đỡ điều đó, ít nhất là trong những diễn giải chặt chẽ hơn về nhận xét của OP.
Đức hồng y

Câu trả lời:


14

Trước hết, một nguồn tài nguyên rất tốt cho vấn đề này là T. Keith, Nhiều hồi quy và xa hơn. Có rất nhiều tài liệu trong cuốn sách về mô hình hóa đường dẫn và lựa chọn biến và tôi nghĩ bạn sẽ tìm thấy câu trả lời thấu đáo cho câu hỏi của mình ở đó.

Một cách để giải quyết tính đa hướng là tập trung vào các yếu tố dự đoán, đó là trừ giá trị trung bình của một chuỗi từ mỗi giá trị. Hồi quy độ dốc cũng có thể được sử dụng khi dữ liệu được cộng tuyến cao. Cuối cùng, hồi quy tuần tự có thể giúp hiểu được mối quan hệ nguyên nhân giữa các yếu tố dự đoán, kết hợp với phân tích chuỗi thời gian của các sự kiện dự đoán.

Có phải tất cả 9 biến thể hiện cộng tuyến? Để chẩn đoán, bạn có thể sử dụng yếu tố lạm phát phương sai Cohen 2003. Giá trị VIF> = 10 biểu thị cộng tuyến cao và sai số chuẩn tăng cao. Tôi hiểu rằng bạn quan tâm nhiều hơn đến mối quan hệ nguyên nhân giữa các yếu tố dự đoán và kết quả. Nếu không, tính đa hướng không được coi là một vấn đề nghiêm trọng đối với dự đoán, vì bạn có thể xác nhận bằng cách kiểm tra MAE trong số dữ liệu mẫu so với các mô hình được xây dựng thêm dự đoán của bạn tại thời điểm đó. Nếu những người dự đoán của bạn có sức mạnh dự đoán cận biên, bạn sẽ thấy rằng MAE giảm ngay cả khi có sự đa hình của mô hình.


16

Bởi vì rất khó để xác định biến nào sẽ giảm, nên tốt hơn là không bỏ biến. Hai cách để tiến hành theo dòng này là (1) sử dụng phương pháp giảm dữ liệu (ví dụ: phân cụm biến hoặc thành phần chính) và đặt điểm tóm tắt vào mô hình thay vì các biến riêng lẻ và (2) đặt tất cả các biến trong mô hình nhưng không kiểm tra cho tác động của một biến được điều chỉnh cho tác động của các biến cạnh tranh. Đối với (2), các bài kiểm tra khối của các biến cạnh tranh rất mạnh vì các biến cộng tuyến tham gia lực lượng trong bài kiểm tra liên kết tự do tổng thể, thay vì cạnh tranh với nhau như khi bạn kiểm tra các biến riêng lẻ.


bạn có thể giải thích đơn giảnand put summary scores into the model
SIslam

1
Ghi chú khóa học của tôi tại biostat.mc.vanderbilt.edu/rms đi vào chi tiết
Frank Harrell

1

Nếu bạn muốn thực hiện lựa chọn thay đổi với sự có tính cộng tác cao, tôi có thể đề xuất gói l0ara , phù hợp với GLM bị phạt L0 bằng cách sử dụng quy trình sườn thích ứng lặp . Vì phương pháp này cuối cùng dựa trên hồi quy chính quy sườn, nó có thể xử lý rất tốt với cộng tuyến, và trong các mô phỏng của tôi, nó tạo ra ít dương tính giả hơn trong khi vẫn cho hiệu suất dự đoán tuyệt vời so với LASSO, lưới đàn hồi hoặc LASSO thích nghi. Ngoài ra, bạn cũng có thể thử gói L0Learnvới sự kết hợp của hình phạt L0 và L2. Hình phạt L0 sau đó ủng hộ sự thưa thớt (tức là các mô hình nhỏ) trong khi hình phạt L2 thường xuyên hóa sự cộng tác. Mạng đàn hồi (sử dụng kết hợp hình phạt L1 và L2) cũng thường được đề xuất, nhưng trong các thử nghiệm của tôi, cách này tạo ra nhiều kết quả dương tính giả hơn, cộng với các hệ số sẽ bị sai lệch nhiều. Sự thiên vị này bạn có thể thoát khỏi nếu bạn sử dụng các phương pháp bị phạt L0 thay vào đó (hay còn gọi là tập hợp con tốt nhất) - đó là một công cụ ước tính được gọi là tiên tri, đồng thời thu được các hệ số tham số nhất quán và không thiên vị. Các tham số chính quy trong tất cả các phương pháp này cần được tối ưu hóa thông qua xác nhận chéo để đưa ra hiệu suất dự đoán mẫu tối ưu. Nếu bạn cũng muốn đạt được mức ý nghĩa và khoảng tin cậy đối với các tham số của mình thì bạn cũng có thể thực hiện việc này thông qua bootstrapping không định lượng.

Thuật toán sườn thích ứng lặp l0ara(đôi khi được gọi là sườn thích ứng bị hỏng), như lưới đàn hồi, có hiệu ứng nhóm, điều này sẽ khiến nó chọn các biến tương quan cao trong các nhóm ngay khi chúng vào mô hình của bạn. Điều này có ý nghĩa - ví dụ: nếu bạn có hai biến gần nhau trong mô hình của mình, nó sẽ chia hiệu ứng bằng nhau cho cả hai.

Nếu bạn đang phân tích dữ liệu tỷ lệ, bạn nên sử dụng mô hình hồi quy logistic btw - l0aragói cho phép bạn thực hiện việc đó kết hợp với hình phạt L0; đối với L0Learngói này sẽ được hỗ trợ trong thời gian ngắ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.