【问题标题】:Get lm estimate for each categorical variable获取每个分类变量的 lm 估计值
【发布时间】:2019-02-21 07:22:40
【问题描述】:

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

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

【问题讨论】:

  • 您可以通过this tutorial 了解lm 的工作原理(它是关于交互和对比,但帮助我理解估计值)

标签: r regression lm


【解决方案1】:

这是线性模型的典型结果:变量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)

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

希望这对您有所帮助。

【讨论】:

  • 不错的答案,但您认为“只会包含太多信息”是什么意思?因为如果最终摘要您只是将Intercept 替换为rock_X
  • 因此,截距为您提供所有类别的平均(撤退率),而虚拟变量为您提供额外的平均率,必须添加到截距中。在您的情况下,您想知道两个类(SC 和 Pur)的平均值。有两种方法可以为您提供该信息。直接(即没有截取)或间接(截取和平均一类)。但是给出一个截距和两个平均值将是太多的信息(即比你需要的更多)。
  • 谢谢!这很有意义。这些数字与数据相关,只是不想错误地解释它。
猜你喜欢
  • 2022-07-27
  • 2017-12-14
  • 2018-03-27
  • 1970-01-01
  • 2020-08-07
  • 2015-01-18
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
相关资源
最近更新 更多