Мы используем регрессионный анализ для создания моделей, которые описывают влияние изменения переменных предиктора на переменную ответа. Иногда, если у нас есть категориальная переменная со значениями, такими как Да / Нет или Мужской / Женский и т. Д., Простой регрессионный анализ дает несколько результатов для каждого значения категориальной переменной. В таком сценарии мы можем изучить влияние категориальной переменной, используя ее вместе с переменной-предиктором и сравнивая линии регрессии для каждого уровня категориальной переменной. Такой анализ называется анализ ковариантности, также называемый ANCOVA.
Пример
Рассмотрим R
встроенный набор данных mtcars
. В нем мы наблюдаем, что поле am
представляет тип передачи (автоматический или ручной). Это категориальная переменная со значениями 0 и 1. От mpg
нее может зависеть и число миль на галлон ( ) автомобиля, помимо значения лошадиных сил ( hp
). Мы изучаем влияние значения am
на регрессию между mpg
и hp
. Это делается с помощью aov()
функции, за которой следует anova()
функция, для сравнения нескольких регрессий.
Ввод данных
Создание фрейма данных , содержащий поля mpg
, hp
и am
из набора данных mtcars
. Здесь мы берем mpg
переменную ответа, переменную hp
предиктора и am
категориальную переменную.
input <- mtcars[,c("am","mpg","hp")]
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
.
Модель с взаимодействием между категориальной переменной и переменной предиктора
Создать регрессию модель1
result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)
Когда мы выполняем приведенный выше код, он дает следующий результат:
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.
Модель без взаимодействия между категориальной переменной и предикторной переменной
Создать регрессионную модель2
result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)
Когда мы выполняем приведенный выше код, он дает следующий результат:
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()
функцию.
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, мы заключаем, что взаимодействие между мощностью в лошадиных силах и типом передачи не является значительным. Таким образом, пробег на галлон будет аналогичным образом зависеть от мощности автомобиля как в автоматическом, так и в ручном режиме.