R语言 用lm()建立线性回归模型时自变量中存在类变量
时间: 2024-04-30 09:19:41 浏览: 105
R语言编程 - 第八讲(回归分析).pdf
在R语言中,如果自变量中存在类别变量,需要将其转换为虚拟变量(dummy variables)来进行线性回归分析。虚拟变量是一种二元变量,将类别变量转换为虚拟变量后,每个类别就对应一个虚拟变量,取值为0或1。
下面是一个示例代码,假设数据集中有一个自变量x1是类别变量,它有3个不同的取值,我们可以使用model.matrix()函数将其转换为虚拟变量。
```
# 创建一个包含类别变量的数据集
data <- data.frame(x1 = factor(c("A", "B", "C", "A", "B", "C")), y = c(10, 20, 30, 15, 25, 35))
# 将x1转换为虚拟变量
dummy <- model.matrix(~ x1 - 1, data)
# 将虚拟变量和因变量组成一个新的数据集
newdata <- cbind(dummy, data$y)
# 建立线性回归模型
model <- lm(y ~ ., data = newdata)
# 查看模型结果
summary(model)
```
在上面的代码中,model.matrix()函数的参数是一个公式,~ x1 - 1表示将x1转换为虚拟变量,并且不包括截距项。最后,我们使用cbind()函数将虚拟变量和因变量组成一个新的数据集,然后使用lm()函数建立线性回归模型。
阅读全文