1

我正在构建一个线性模型来评估距栖息地边界的距离对昆虫数量的影响。使用的设备存在一些差异,因此我将设备作为分类变量包括在内,以确保它对丰富度没有显着影响。

分类因子是 3 级,所以我要求 r 通过使用代码在 lm 中生成虚拟变量:

lm(Richness ~ Distances + factor(Equipment), data = Data) 

当我询问模型的摘要时,我可以看到两个级别及其系数。我假设这意味着 r 使用其中一个级别作为“标准”来比较其他级别的系数。

如何找到第三级的系数以查看它对模型的影响?

谢谢

4

2 回答 2

2

您可以lm(y~x-1)删除截距,这在您的情况下是参考水平的因素之一。话虽如此,使用其中一个级别作为参考是有统计原因的。

于 2015-08-01T02:34:14.573 回答
1

要确定如何提取系数,下面是一个简单的示例:

# load data 
data(mtcars)
head(mtcars)

# what are the means of wt given the factor carb?
(means <- with(mtcars, tapply(wt, factor(carb), mean)))

# run the lm
mod <- with(mtcars, lm(wt~factor(carb)))

# extract the coefficients
coef(mod)

# the intercept is the reference level (i.e., carb 1)
coef(mod)[1]
coef(mod)[2:6]
coef(mod)[1] + coef(mod)[2:6]
means

所以你可以看到,在这个简单的情况下,系数只是简单地添加到了参考水平(即截距)。但是,如果你有一个协变量,它会变得更加复杂

mod2 <- lm(wt ~ factor(carb) + disp, data=mtcars)
summary(mod2)

当 disp = 0 时,截距现在是 carb 1。

于 2015-08-01T04:18:48.770 回答