在构建模型矩阵时,我注意到在处理具有超过 2 个值的变量时,模型矩阵似乎随机选择要用作列的变量:
在示例 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 作为对照,因此被忽略)