R中glm回归为何丢弃变量列?如何选择分类变量的基准参照水平?
R glm模型分类变量系数输出与基准组规则解答
为什么place变量的North水平未出现在系数结果中
R拟合glm等回归模型时,对分类(因子)变量默认使用treatment对照编码规则:会自动选定1个水平作为基准参照组,其余输出的系数均代表对应水平和基准组的效应差异,因此基准组本身不会单独输出系数。
你首次拟合时place变量仅有North、South两个水平,此时North被选为基准组,输出中仅展示placeSouth系数,代表South相对North的效应差值。
另外你的temperature系数输出为NA,是因为当前样本存在完全共线性问题:South组样本温度均为30,North组样本温度均为20,温度和place变量完全相关,无法单独估计温度的独立效应。
R选择分类变量基准参照水平的规则
默认状态下,R会取因子水平的字母排序第一位作为基准参照组:
- 首次仅有North、South两个水平时,字母序
N在S之前,因此North为基准组不输出系数; - 新增East水平后,三个水平的字母序为
East < North < South,此时基准组变为East,North、South均为对比组,因此North会出现在系数结果中。
如果需要手动指定基准组,可以调用relevel()函数修改因子的参照水平,示例代码如下:
# 手动指定South为place变量的基准参照组 df$place <- relevel(df$place, ref = "South")
内容的提问来源于stack exchange,提问作者Kirsten
相关产品推荐
相关产品推荐

