为何R中lm回归summary缺失分类变量水平且样例报因子错误
问题解答
回归结果未展示Middle分类参数的原因
R中使用lm()拟合包含分类自变量的线性模型时,默认采用**虚拟变量编码(哑变量编码)**规则处理分类因子:
- 会自动选择因子的第一个水平作为参照组,你输出结果里的
(Intercept)截距项,本质就是Middle组的平均叫声数量 - 其他分类水平的估计值,代表的是该组与参照组(Middle)的均值差值,对应的p值是检验该差值是否显著异于0
- 因为Middle是参照基准,本身不需要和自己做差异检验,所以不会单独输出系数和p值
如果需要更换参照组,可以使用relevel()函数调整因子水平顺序,例如将Pre设为参照组的代码为:
park2$Pup <- relevel(park2$Pup, ref = "Pre")
重新拟合模型后就会输出Middle和Post两组的参数结果。
样例代码报错的原因
你样例数据中的Calls变量赋值为带引号的字符串类型:Calls<- c("55","60","180","160","110","50"),线性回归要求因变量为数值类型,将字符型变量传入lm()作为因变量就会触发类型错误。
只要把Calls的赋值引号去掉,改成数值型即可正常运行:
Calls<- c(55,60,180,160,110,50)
内容的提问来源于stack exchange,提问作者elyse.mallinger
相关产品推荐
相关产品推荐

