Мы используем регрессионный анализ для создания моделей, которые описывают влияние изменения переменных предиктора на переменную ответа. Иногда, если у нас есть категориальная переменная со значениями, такими как Да / Нет или Мужской / Женский и т. Д. Простой регрессионный анализ дает несколько результатов для каждого значения категориальной переменной. В таком сценарии мы можем изучить влияние категориальной переменной, используя ее вместе с переменной-предиктором и сравнивая линии регрессии для каждого уровня категориальной переменной. Такой анализ называется анализ ковариантности, также называемый ANCOVA .
пример
Рассмотрим встроенный в R набор данных mtcars. В нем мы наблюдаем, что поле «am» представляет тип трансмиссии (автоматический или ручной). Это категориальная переменная со значениями 0 и 1. От нее может зависеть и количество миль на галлон (миль на галлон) автомобиля, помимо значения лошадиных сил («л.с.»).
Мы изучаем влияние значения «am» на регрессию между «mpg» и «hp». Это делается с помощью функции aov (), за которой следует функция anova () для сравнения множественных регрессий.
Входные данные
Создайте фрейм данных, содержащий поля «mpg», «hp» и «am» из набора данных mtcars. Здесь мы берем «mpg» как переменную ответа, «hp» как переменную предиктора и «am» как категориальную переменную.
input <- mtcars[,c("am","mpg","hp")] print(head(input))
Когда мы выполняем приведенный выше код, он дает следующий результат —
am mpg hp Mazda RX4 1 21.0 110 Mazda RX4 Wag 1 21.0 110 Datsun 710 1 22.8 93 Hornet 4 Drive 0 21.4 110 Hornet Sportabout 0 18.7 175 Valiant 0 18.1 105
ANCOVA Анализ
Мы создаем регрессионную модель, в которой в качестве переменной-предиктора используется «hp», а в качестве ответной переменной — «mpg» с учетом взаимодействия между «am» и «hp».
Модель с взаимодействием между категориальной переменной и переменной предиктора
# Get the dataset. input <- mtcars # Create the regression model. result <- aov(mpg~hp*am,data = input) print(summary(result))
Когда мы выполняем приведенный выше код, он дает следующий результат —
Df Sum Sq Mean Sq F value Pr(>F) hp 1 678.4 678.4 77.391 1.50e-09 *** am 1 202.2 202.2 23.072 4.75e-05 *** hp:am 1 0.0 0.0 0.001 0.981 Residuals 28 245.4 8.8 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Этот результат показывает, что мощность в лошадиных силах и тип трансмиссии оказывают существенное влияние на мили на галлон, поскольку значение p в обоих случаях составляет менее 0,05. Но взаимодействие между этими двумя переменными не является значительным, так как значение р составляет более 0,05.
Модель без взаимодействия между категориальной переменной и предикторной переменной
# Get the dataset. input <- mtcars # Create the regression model. result <- aov(mpg~hp+am,data = input) print(summary(result))
Когда мы выполняем приведенный выше код, он дает следующий результат —
Df Sum Sq Mean Sq F value Pr(>F) hp 1 678.4 678.4 80.15 7.63e-10 *** am 1 202.2 202.2 23.89 3.46e-05 *** Residuals 29 245.4 8.5 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Этот результат показывает, что мощность в лошадиных силах и тип трансмиссии оказывают существенное влияние на мили на галлон, поскольку значение p в обоих случаях составляет менее 0,05.
Сравнивая две модели
Теперь мы можем сравнить две модели, чтобы сделать вывод, является ли взаимодействие переменных действительно незначительным. Для этого мы используем функцию anova () .
# Get the dataset. input <- mtcars # Create the regression models. result1 <- aov(mpg~hp*am,data = input) result2 <- aov(mpg~hp+am,data = input) # Compare the two models. print(anova(result1,result2))
Когда мы выполняем приведенный выше код, он дает следующий результат —
Model 1: mpg ~ hp * am Model 2: mpg ~ hp + am Res.Df RSS Df Sum of Sq F Pr(>F) 1 28 245.43 2 29 245.44 -1 -0.0052515 6e-04 0.9806
Поскольку значение р больше 0,05, мы заключаем, что взаимодействие между мощностью в лошадиных силах и типом передачи не является значительным. Таким образом, пробег на галлон будет аналогичным образом зависеть от мощности автомобиля как в автоматическом, так и в ручном режиме.