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

Предположим, я хочу запустить регрессию, используя 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(), является первым, а остальные ставятся после.

Любые другие идеи?

1 Ответ

6 голосов
/ 20 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...