Почему регрессия показывает разные результаты, когда я превращаю фактор-переменную в фиктивную переменную?
Из кодов видно, что когда я использую факторную переменную непосредственно в регрессии, мои макеты становятся как cut.L, cut.Q, cut.C, cut ^ 4. Я не понимаю, почему это происходит.
Спасибо.
Вот мои коды:
> d5 <- as.data.frame(diamond5)
> d5$cut.alt <- NA
> d5$cut.alt[d5$cut == "Fair"] <- 5
> d5$cut.alt[d5$cut == "Good"] <- 4
> d5$cut.alt[d5$cut == "Very Good"] <- 3
> d5$cut.alt[d5$cut == "Premium"] <- 2
> d5$cut.alt[d5$cut == "Ideal"] <- 1
> d5$cut.fac <- factor(d5$cut.alt)
> model2.1 <- lm(price ~ carat + cut.fac, data = d5)
> summary(model2.1)
Call:
lm(formula = price ~ carat + cut.fac, data = d5)
Residuals:
Min 1Q Median 3Q Max
-17541 -792 -38 522 12721
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2074.5 14.2 -145.8 <2e-16 ***
carat 7871.1 14.0 563.0 <2e-16 ***
cut.fac2 -361.8 16.7 -21.7 <2e-16 ***
cut.fac3 -290.8 17.2 -16.9 <2e-16 ***
cut.fac4 -680.6 24.0 -28.4 <2e-16 ***
cut.fac5 -1800.9 39.3 -45.8 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1510 on 53934 degrees of freedom
Multiple R-squared: 0.856, Adjusted R-squared: 0.856
F-statistic: 6.44e+04 on 5 and 53934 DF, p-value: <2e-16
> model2.2 <- lm(price ~ carat + cut, data = d5)
> summary(model2.2)
Call:
lm(formula = price ~ carat + cut, data = d5)
Residuals:
Min 1Q Median 3Q Max
-17541 -792 -38 522 12721
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2701.4 15.4 -175.06 < 2e-16 ***
carat 7871.1 14.0 563.04 < 2e-16 ***
cut.L 1239.8 26.1 47.50 < 2e-16 ***
cut.Q -528.6 23.1 -22.85 < 2e-16 ***
cut.C 367.9 20.2 18.20 < 2e-16 ***
cut^4 74.6 16.2 4.59 4.4e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1510 on 53934 degrees of freedom
Multiple R-squared: 0.856, Adjusted R-squared: 0.856
F-statistic: 6.44e+04 on 5 and 53934 DF, p-value: <2e-16