Предположим, я хочу запустить регрессию, используя lm
и factor
как правую переменную.Как лучше всего выбрать, какой уровень в факторе является базовой категорией (тот, который исключен, чтобы избежать мультиколлинеарности).Обратите внимание, что я не заинтересован в исключении перехвата, потому что у меня много факторов.
Мне бы также хотелось решение на основе формул, а не решение, которое напрямую воздействует на 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()
, является первым, а остальные ставятся после.
Любые другие идеи?