在带有分类变量的r输出中使用lm()的多元线性回归不完整?

在带有分类变量的r输出中使用lm()的多元线性回归不完整?,r,regression,lm,R,Regression,Lm,我正在处理这个数据集。有一个名为'num.of.doors'的分类变量,它可以是(2,4),这给我带来了麻烦 当我运行lm(公式=价格~马力+num.of.doors,数据=train.sample)预测价格时,输出为: 调用:lm(公式=价格~马力+门数,数据= 列车(样本) 系数: (截距)门的马力数两个 -4006.5 174.1-1856.2 但我想看看四扇门的门数系数。如何做到这一点?如果门数只有两个值(“两个”和“四”),则此模型中的“四”系数为0 你的公式是price=-4006.

我正在处理这个数据集。有一个名为'num.of.doors'的分类变量,它可以是(2,4),这给我带来了麻烦

当我运行
lm(公式=价格~马力+num.of.doors,数据=train.sample)
预测价格时,输出为:

调用:lm(公式=价格~马力+门数,数据= 列车(样本)

系数: (截距)门的马力数两个
-4006.5 174.1-1856.2


但我想看看四扇门的门数系数。如何做到这一点?

如果门数只有两个值(“两个”和“四”),则此模型中的“四”系数为0

你的公式是price=-4006.6+174.1(马力)-1856.2(门数=2)

因此,如果汽车有四个车门,您的价格仅为: 价格=-4006.6+174.1*马力


这是因为变量是分类的。它可以被解释为“如果汽车有两个门而不是四个门,我的模型估计价格将比一辆四门汽车低1856.20。”

我认为你的问题是因为当你用一个分类变量调整线性回归时,其中一个类别将被用作“参考”,其值将被表示(作为一部分)在“拦截”中

因此,要查看“四扇门”的系数,您应该更改变量的基准引用。您可以通过以下方式执行此操作:

train_sample$num.of.doors = relevel(train_sample$num.of.doors, ref=2)

请记住,通过此更改,“两扇门”现在将成为基本参考。

有两个选项:

1-将num.of.doors转换为一个因子,并重新编码以使两扇门成为基准标高。运行lm命令后,它将在线性回归中显示四个门的系数。这可以通过以下方式实现:

library(tidyverse)
new_train_sample <- train.sample %>%
                  mutate(num.of.doors = factor(num.of.doors, levels = c("two", "four")))

lm_1 <- lm(formula = price ~ horsepower + num.of.doors, data = new_train_sample)
summary(lm_1)
库(tidyverse)
新列车样本%
变异(门的数量=因子(门的数量,级别=c(“二”,“四”))

lm_1 lm给出了边际系数;i、 e.在相同马力下,两门车的成本比四门车低1856.2美元。对于分类变量,通常会降低一个级别(因为系数是线性相关的)
lm_origin <- lm(formula = price ~ 0 + horsepower + num.of.doors, data = train.sample)
summary(lm_origin)