R中的虚拟变量

时间:2015-08-01 02:26:24

标签: r lm dummy-variable

我构建了一个线性模型来评估栖息地边界距离对昆虫顺序丰富度的影响。使用的设备存在一些差异,因此我将设备作为一个分类变量,以确保它不会对丰富度产生重大影响。

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

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

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

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

谢谢

2 个答案:

答案 0 :(得分:1)

您可以执行class SecondViewController: UIViewController { @IBAction switchFlipped(sender: UISwitch) { let firstVC = self.presentingViewController as! FirstViewController if sender.on { firstVC.switchTextLabel.text = "The Switch is On" } else { firstVC.switchTextLabel.text = "The Switch is Off" } } } 删除拦截,在您的情况下,拦截是其中一个因素的参考水平。话虽如此,使用其中一个级别作为参考有统计学原因。

答案 1 :(得分: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时,截距现在是碳水化合物1。