首页 > 解决方案 > 获取每个分类变量的 lm 估计值

问题描述

所以我正在做一个多元线性回归,看看裂缝密度和岩石类型是否会影响岩石中的后退率。

retreat <- lm(retreat_rate ~ fracture_dens + rock_unit, data = coast)
> summary(retreat)

我希望它将“rock_unit”视为一个类别。我在向量中有两种岩石类型。这是我目前的结果。

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)          -0.22631    0.53806  -0.421 0.676353    
fracture_dens         0.11467    0.02704   4.241 0.000132 ***
rock_unitSC_mudstone  1.73490    0.36097   4.806  2.3e-05 ***

我希望有“SC_mudstone”和“Purisima”(另一种岩石类型),而不是现在给我的“rock_unitSC_mudstone”。

标签: rregressionlm

解决方案


这是线性模型的典型结果:变量rock_unitSC_mudstone是一个虚拟变量,定义为:

如果岩石单元 = SC_mudstone,rock_unitSC_mudstone = 1,否则为 0。

添加另一个变量rock_unitPurisima会导致模型矩阵 $X$ 没有满秩。

无论如何,您不需要该rock_unitPurisima变量。您可以将结果解释如下:

SC_mudstone 的平均撤退率 = -0.22631 + 1.73490 Purisima 的平均撤退率 = -0.22631

如果您坚持使用变量rock_unitPurisima,则可以将截距设置为零:

retreat2 <- lm(retreat_rate ~ 0 + fracture_dens + rock_unit, data = coast)

但正如我所说,截距和两个虚拟变量只会包含太多信息。

希望这会有所帮助。


推荐阅读