Учебники

R — Анализ Ковариации

Мы используем регрессионный анализ для создания моделей, которые описывают влияние изменения переменных предиктора на переменную ответа. Иногда, если у нас есть категориальная переменная со значениями, такими как Да / Нет или Мужской / Женский и т. Д. Простой регрессионный анализ дает несколько результатов для каждого значения категориальной переменной. В таком сценарии мы можем изучить влияние категориальной переменной, используя ее вместе с переменной-предиктором и сравнивая линии регрессии для каждого уровня категориальной переменной. Такой анализ называется анализ ковариантности, также называемый ANCOVA .

пример

Рассмотрим встроенный в R набор данных mtcars. В нем мы наблюдаем, что поле «am» представляет тип трансмиссии (автоматический или ручной). Это категориальная переменная со значениями 0 и 1. От нее может зависеть и количество миль на галлон (миль на галлон) автомобиля, помимо значения лошадиных сил («л.с.»).

Мы изучаем влияние значения «am» на регрессию между «mpg» и «hp». Это делается с помощью функции aov (), за которой следует функция anova () для сравнения множественных регрессий.

Входные данные

Создайте фрейм данных, содержащий поля «mpg», «hp» и «am» из набора данных mtcars. Здесь мы берем «mpg» как переменную ответа, «hp» как переменную предиктора и «am» как категориальную переменную.

Live Demo

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».

Модель с взаимодействием между категориальной переменной и переменной предиктора

Live Demo

# 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.

Модель без взаимодействия между категориальной переменной и предикторной переменной

Live Demo

# 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 () .

Live Demo

# 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, мы заключаем, что взаимодействие между мощностью в лошадиных силах и типом передачи не является значительным. Таким образом, пробег на галлон будет аналогичным образом зависеть от мощности автомобиля как в автоматическом, так и в ручном режиме.