Лучший способ в 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
делает именно это. Вы передаете ему неупорядоченный фактор и имя опорного уровня,и он возвращает фактор с этим уровнем в качестве первого.