Получение подгоночных значений с контрольными переменными, установленными по среднему значению в R - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть многовариантная модель lm в R, для которой я хочу получить предикатные значения / подогнанные значения для каждой категории факторной переменной, устанавливая управляющие переменные на их средние значения.

Так, например, используя набор данных mtcars:

data(mtcars)
fit <- lm(mpg ~ gear + am + drat)

Я бы хотел знать, каково прогнозируемое значение mpg для каждого значения, которое принимает gear, удерживая am и drat на их средства.

Я знаю, что для этого использовал бы предикат, но, похоже, в предикторе нет опции для хранения переменных в их средних значениях.

1 Ответ

0 голосов
/ 24 февраля 2020
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
...