data(mtcars)
fit <- lm(mpg ~ gear + am + drat, data=mtcars)
Мы просто создаем новый набор данных с нужными атрибутами (здесь я использую функции dplyr
, но любое решение будет работать, пока оно создает data.frame с правильно названным именем переменные правильного типа):
library(dplyr)
fixed_am_and_drat <- data.frame(mtcars) %>%
mutate(am = mean(am),
drat = mean(drat)) %>%
select(gear, am, drat)
И передать этот новый набор данных для прогнозирования, используя аргумент newdata
:
fixed_am_and_drat$predicted <- predict(fit, newdata = fixed_am_and_drat)
fixed_am_and_drat
Возвращает:
gear am drat predicted
1 4 0.40625 3.596563 19.59310
2 4 0.40625 3.596563 19.59310
3 4 0.40625 3.596563 19.59310
4 3 0.40625 3.596563 21.18519
5 3 0.40625 3.596563 21.18519
6 3 0.40625 3.596563 21.18519
7 3 0.40625 3.596563 21.18519
8 4 0.40625 3.596563 19.59310
9 4 0.40625 3.596563 19.59310
10 4 0.40625 3.596563 19.59310
11 4 0.40625 3.596563 19.59310
12 3 0.40625 3.596563 21.18519
13 3 0.40625 3.596563 21.18519
14 3 0.40625 3.596563 21.18519
15 3 0.40625 3.596563 21.18519
16 3 0.40625 3.596563 21.18519
17 3 0.40625 3.596563 21.18519
18 4 0.40625 3.596563 19.59310
19 4 0.40625 3.596563 19.59310
20 4 0.40625 3.596563 19.59310
21 3 0.40625 3.596563 21.18519
22 3 0.40625 3.596563 21.18519
23 3 0.40625 3.596563 21.18519
24 3 0.40625 3.596563 21.18519
25 3 0.40625 3.596563 21.18519
26 4 0.40625 3.596563 19.59310
27 5 0.40625 3.596563 18.00101
28 5 0.40625 3.596563 18.00101
29 5 0.40625 3.596563 18.00101
30 5 0.40625 3.596563 18.00101
31 5 0.40625 3.596563 18.00101
32 4 0.40625 3.596563 19.59310