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

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

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

мое решение:

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() является первым, а остальные ставит после.

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

1 ответов


функции relevel делает именно это. Вы передаете ему неупорядоченный фактор и имя опорного уровня,и он возвращает фактор с этим уровнем в качестве первого.