nhanes2数据线性回归结果中未显示age(20-39)因子的原因咨询
你的猜测并不正确,原因是这样的
在R中使用线性回归(lm()函数)处理因子型自变量时,默认会把因子的第一个水平当作「参考组(基准组)」,不会在回归结果的系数列表里单独显示它的数值——因为其他组的系数都是和这个参考组对比得出的差异值,它的影响已经隐含在模型的截距项里了。
针对你的案例:
- 数据集
nhanes2中的age变量是一个包含三个水平的因子:20-39、40-59、60-99 - 当你用
factor(age)将其纳入模型时,R默认把排序最靠前的20-39作为参考组 - 结果里显示的
factor(age)40-59系数,代表的是「40-59岁组相对于20-39岁组,对chl的平均影响差异」;factor(age)60-99则是「60-99岁组相对于20-39岁组的差异」
如果你想验证这一点,或者想更换参考组,可以用relevel()函数调整:
# 将60-99设为参考组 nhanes2.lm <- lm(chl~relevel(factor(age), ref = "60-99")+bmi, data=nhanes2) summary(nhanes2.lm)
这时候你会发现结果里不再显示factor(age)60-99,取而代之的是20-39和40-59的系数,它们都是和60-99岁组对比的差异。
总结一下:20-39组完全纳入了模型,只是作为基准组隐藏在了截距和其他组的系数对比中,并没有被排除在外~
内容的提问来源于stack exchange,提问作者Aram K
相关产品推荐
相关产品推荐

