Лучший способ в R выбрать, какой уровень является базовой категорией для фактора в регрессии lm

Предположим, я хочу запустить регрессию, используя lm и фактор в качестве переменной с правой стороны. Как лучше всего выбрать, какой уровень в факторе является базовой категорией (той, которая исключена, чтобы избежать мультиколлинеарности). Обратите внимание, что меня не интересует исключение точки пересечения, потому что я имеет много факторов.

Я также хотел бы решение на основе формул, а не такое, которое напрямую воздействует на data.frame, хотя, если вы думаете, что у вас есть действительно хорошее решение для этого, опубликуйте его также.

Мое решение:

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.

Оставленная категория lm является первым уровнем в факторе, поэтому это просто переупорядочивает уровни так, чтобы тот, который указан в base_cat () , был первым. один, а остальные помещает после.

Есть другие идеи?

9
задан divibisan 5 September 2018 в 08:08
поделиться