2011-10-19 23 views
7

Giả sử tôi muốn chạy hồi quy bằng cách sử dụng lm và một biến số bên phải là factor. Cách tốt nhất để chọn mức nào trong hệ số là loại cơ sở (loại được loại trừ để tránh đa cộng tuyến). Lưu ý rằng tôi không quan tâm đến việc loại trừ đánh chặn vì tôi có nhiều yếu tố.Cách tốt nhất trong R để chọn mức nào là loại cơ sở cho một hệ số trong hồi quy lm

Tôi cũng muốn một giải pháp dựa trên công thức, không phải là giải pháp trực tiếp trên data.frame, mặc dù nếu bạn nghĩ rằng bạn có giải pháp thực sự tốt cho điều đó, vui lòng đăng nó.

giải pháp của tôi là:

base_cat <- function(x) c(x,1:(x-1),(x+1):100) 
a_reg <- lm(y ~ x1 + x2 + factor(x3, levels=base_cat(30)) #suppose that x3 has draws from the integers 1 to 100. 

Các trái ra loại bởi lm là cấp độ đầu tiên trong các yếu tố vì vậy đây chỉ là sắp xếp lại các cấp để chỉ định trong base_cat() là người đầu tiên, và đặt phần còn lại sau.

Bất kỳ ý tưởng nào khác?

Trả lời

5

Chức năng relevel thực hiện chính xác điều này. Bạn vượt qua nó một yếu tố không có thứ tự và tên của mức tham chiếu và nó trả về một yếu tố với mức đó như là mức đầu tiên.

+0

Cảm ơn bạn @joran! –