获取每个分类变量的 lm 估计

Get lm estimate for each categorical variable

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

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'。

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

rock_unitSC_mudstone = 1 如果岩石单位 = SC_mudstone 否则为 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)

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

希望这对您有所帮助。