Набор данных randomdat
содержит 299 obs, две категориальные переменные, var 9
содержит значения типа With XYZ
и Without XYZ
, var8
содержит значения типа Group A
/ Group B
/ Group C
, var1
- это числовая переменная.
Тогда есть модель:
m7 <- lm(var3~var1+I(var1^2)+I(var1^3)+var9, data=randomdat)
Проверьте summary(m7)
, она показывает, что Without XYZ
всегда на 34451,4 меньше With XYZ
.
> summary(m7)
Call:
lm(formula = var3 ~ var1 + I(var1^2) + I(var1^3) + var9, data = randomdat)
Residuals:
Min 1Q Median 3Q Max
-391506 -75127 4799 77175 323856
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -162934.42035 18571.30251 -8.773 <0.0000000000000002 ***
var1 10927.87454 741.36511 14.740 <0.0000000000000002 ***
I(var1^2) -180.82979 10.44006 -17.321 <0.0000000000000002 ***
I(var1^3) 0.99499 0.04223 23.562 <0.0000000000000002 ***
var9Without XYZ -34451.43378 14570.55030 -2.364 0.0187 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 117500 on 294 degrees of freedom
Multiple R-squared: 0.8642, Adjusted R-squared: 0.8624
F-statistic: 467.9 on 4 and 294 DF, p-value: < 0.00000000000000022
Тогда есть две прогнозируемые модели:
m7_predictwith <- predict(m7,list(var1=randomdat$var1, var9 = rep("With XYZ",299)))
m7_predictwout <- predict(m7,list(var1=randomdat$var1, var9 = rep("Without XYZ",299)))
Если вы построите их, вы увидите, что две линии не перекрываются.
ggplot(randomdat, aes(x = var1, y = var3)) +
geom_point(aes(colour = var8, shape = var8)) +
geom_line(aes(x=randomdat$var1,y=m7_predictwith), color = 'red', lty = 2) +
geom_line(aes(x=randomdat$var1,y=m7_predictwout), color = 'black', lty = 3)
Теперь возникает вопрос, как понимать var9 = rep("With XYZ",299)
или var9 = rep("Without XYZ",299)
в этом случае? Разве они не означают заменить все значения в var9
на With XYZ
или Without XYZ
? var1
одинаково в m7_predictwith
и m7_predictwout
, линии сюжета у них должны быть просто одной линией? В этом случае очень запутано использование синтаксиса rep()
.