Полное руководство: как интерпретировать результаты ANOVA в R


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

В этом руководстве представлено полное руководство по интерпретации результатов однофакторного дисперсионного анализа в R.

Шаг 1: Создайте данные

Предположим, мы хотим определить, приводят ли три разные программы тренировок к различной средней потере веса у людей.

Чтобы проверить это, мы набираем 90 человек для участия в эксперименте, в котором мы случайным образом назначаем 30 человек следовать либо программе А, либо программе Б, либо программе С в течение одного месяца.

Следующий код создает фрейм данных, с которым мы будем работать:

#make this example reproducible
set. seed (0)

#create data frame
data <- data.frame(program = rep(c('A', 'B', 'C'), each = 30),
 weight_loss = c(runif(30, 0, 3),
 runif(30, 0, 5),
 runif(30, 1, 7)))

#view first six rows of data frame
head(data)

 program weight_loss
1 A 2.6900916
2 A 0.7965260
3 A 1.1163717
4 A 1.7185601
5 A 2.7246234
6 A 0.6050458

Шаг 2: Выполните дисперсионный анализ

Далее мы будем использовать команду aov() для выполнения однофакторного дисперсионного анализа:

#fit one-way ANOVA model
model <- aov(weight_loss ~ program, data = data)

Шаг 3: Интерпретация результатов ANOVA

Далее мы будем использовать команду summary() для просмотра результатов однофакторного дисперсионного анализа:

#view summary of one-way ANOVA model
summary(model)

 Df Sum Sq Mean Sq F value Pr(>F) 
program 2 98.93 49.46 30.83 7.55e-11 \*\*\*
Residuals 87 139.57 1.60 
---
Signif. codes: 0 ‘\*\*\*’ 0.001 ‘\*\*’ 0.01 ‘\*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Вот как интерпретировать каждое значение в выводе:

Программа Df: Степени свободы для переменной программы.Это рассчитывается как #groups -1. В данном случае было 3 разных программы тренировок, поэтому это значение равно: 3-1 = 2 .

Df Остатки: Степени свободы для остатков. Это рассчитывается как #общее количество наблюдений – # групп. В данном случае было 90 наблюдений и 3 группы, поэтому это значение равно: 90 -3 = 87 .

Программа Sum Sq: сумма квадратов, связанных с переменной program.Это значение равно 98,93 .

Sum Sq Residuals: сумма квадратов, связанных с остатками или «ошибками». Это значение равно 139,57 .

Средняя кв. Программа: средняя сумма квадратов, связанных с программой. Это рассчитывается как сумма кв. программа / Df программа. В этом случае это рассчитывается как: 98,93/2 = 49,46 .

Средняя кв. Остатки: средняя сумма квадратов, связанных с остатками. Это рассчитывается как сумма кв. остатки / Df остатки. В этом случае это рассчитывается как: 139,57/87 = 1,60 .

Значение F: общая F-статистика модели ANOVA. Это рассчитывается как среднеквадратичное значение. программа / Средн. кв. невязки. В этом случае он рассчитывается как: 49,46 / 1,60 = 30,83 .

Pr(>F): p-значение, связанное с F-статистикой с числителем df = 2 и знаменателем df = 87. В этом случае p-значение равно 7,552e-11 , что является очень маленьким числом.

Наиболее важным значением во всем выводе является p-значение, потому что оно говорит нам, есть ли значительная разница в средних значениях между тремя группами.

Напомним, что однофакторный дисперсионный анализ использует следующие нулевую и альтернативную гипотезы:

  • H 0 (нулевая гипотеза): все средние группы равны.
  • H A (альтернативная гипотеза): по крайней мере одно среднее значение группы отличается от остальных.

Поскольку значение p в нашей таблице ANOVA (0,7552e-11) меньше 0,05, у нас есть достаточно доказательств, чтобы отклонить нулевую гипотезу.

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

Шаг 4. Выполните апостериорные тесты (при необходимости)

Если значение p в выходных данных ANOVA меньше 0,05, мы отклоняем нулевую гипотезу. Это говорит нам о том, что среднее значение между каждой группой не равно. Однако это не говорит нам, какие группы отличаются друг от друга.

Чтобы выяснить это, мы должны провести апостериорный тест.В R мы можем использовать для этого функцию TukeyHSD() :

#perform Tukey post-hoc test
TukeyHSD(model)

$program
 diff lwr upr p adj
B-A 0.9777414 0.1979466 1.757536 0.0100545
C-A 2.5454024 1.7656076 3.325197 0.0000000
C-B 1.5676610 0.7878662 2.347456 0.0000199

Вот как интерпретировать результаты:

  • Скорректированное значение p для средней разницы между группами A и B составляет 0,0100545 .
  • Скорректированное значение p для средней разницы между группами A и C составляет 0,0000000 .
  • Скорректированное значение p для средней разницы между группами B и C составляет 0,0000199 .

Поскольку каждое из скорректированных p-значений меньше 0,05, мы можем заключить, что существует значительная разница в средней потере веса между каждой группой.

Дополнительные ресурсы

Введение в однофакторный дисперсионный анализ
Как проверить предположения ANOVA
Как выполнить однофакторный дисперсионный анализ вручную
Калькулятор однофакторного дисперсионного анализа