При построении матрицы модели я заметил, что при работе с переменными, имеющими более двух значений, матрица модели, кажется, случайным образом выбирает, какие переменные использовать в качестве столбцов:
В примере 1:
diet <- factor(c('high','high','control','control','low','low'))
sex <- factor(c("f","f","m","f","m","m"))
model.matrix(~ diet + sex)
(Intercept) diethigh dietlow sexm
1 1 1 0 0
2 1 1 0 0
3 1 0 0 1
4 1 0 0 0
5 1 0 1 1
6 1 0 1 1
диета = контроль, и пол = f. В случае с диетой контроль исключен, так что матрицей я доволен.
В примере 2:
diet <- factor(c('high','high','med','med','low','low'))
sex <- factor(c("f","f","m","f","m","m"))
model.matrix(~ diet + sex)
(Intercept) dietlow dietmed sexm
1 1 0 0 0
2 1 0 0 0
3 1 0 1 1
4 1 0 1 0
5 1 1 0 1
6 1 1 0 1
диета = высокая — недостающая переменная. Теперь я знаю, что это может быть педантизмом, потому что я знаю, что R это не волнует. но есть ли способ указать, какая из переменных должна быть исключена (в этом случае я хочу, чтобы диета = med была контролем и, следовательно, не учитывалась)
contrasts
,C
и т. д. Обратите внимание на аргументbase
. См. также необязательный аргументcontrasts.arg
дляmodel.matrix
. - person A. Webb   schedule 19.03.2016