如何正确获取GLM模型中分类变量各水平的系数?
获取GLM分类变量各水平系数的正确方式
两种模型的区别
默认带截距模型(
Rep ~ ph_cat1/Rep ~ ph_cat1 +1)
R的GLM默认会设置截距项,这里的截距代表分类变量ph_cat1的**参考水平(ph_cat11)**的系数,其余输出的系数是对应水平与参考水平的差值。比如你输出里的(Intercept)=3.296就是ph_cat11的系数,ph_cat12=-3.381是ph_cat12和ph_cat11的系数差,ph_cat13=-4.277是ph_cat13和ph_cat11的系数差。无截距模型(
Rep ~ ph_cat1 +0)
加上+0(或等价的-1)会强制模型不设截距,直接输出分类变量每个水平的原始系数。你输出里的ph_cat11=3.29584、ph_cat12=-0.08474、ph_cat13=-0.98083就是三个水平各自的系数,数值可以和带截距模型验证:3.296 + (-3.381) = -0.085,和无截距模型的ph_cat12系数一致。
结论
如果你的需求是直接获取每个水平的单独系数,选择+0的无截距模型是最直接的方式,输出结果就是各水平对应的系数值;如果只需要对比不同水平和参考水平的差异,默认带截距的模型就足够。
内容的提问来源于stack exchange,提问作者ArTu
相关产品推荐
相关产品推荐

