Дисперсионный анализ (дисперсионный анализ) — это статистический метод, который можно использовать для проверки средних значений двух или более групп, которые значительно отличаются друг от друга.

Когда мы говорим о тестах гипотез или статистических тестах, в нашей голове могут возникнуть некоторые слова, такие как t-тест, критерий хи-квадрат и дисперсионный анализ. Поэтому, прежде чем подробно обсуждать ANOVA, необходимо выяснить разницу между ними.

Если вы хотите изучить, как одна категориальная переменная влияет на другую категориальную переменную, короче говоря, взаимосвязь между двумя категориальными переменными, вам следует использовать критерий хи-квадрат. Например, менеджер одного кинотеатра хочет изучить, покупают ли зрители попкорн или нет, чтобы решить, какой жанр фильма они выберут. Здесь покупка попкорна или нет, а также жанр фильма являются категориальными переменными.

Если мы хотим провести тест между категориальными переменными и числовыми переменными, мы должны использовать t-критерий или ANOVA. Если есть только две группы, предпочтение отдается t-критерию; если есть две или более групп, мы можем использовать ANOVA. Вот пример: директор хочет знать, одинаковы ли средние оценки классов A и B, можно использовать t-тест, потому что есть только два класса. Если директор хочет сравнить классы A, B и C, ANOVA будет выбором.

Теперь давайте погрузимся в мир ANOVA, и я представлю ANOVA от теории к действию на примере.

Вот сценарий: директор хочет знать, одинаковы ли средние оценки классов A, B, C и D, другими словами, оказывает ли класс значительное влияние на оценку. Директор школы случайным образом выбирает 23 ученика из четырех классов: 7 из класса А, 6 из класса В, 5 из класса С и 5 из класса D. Ниже приведены некоторые оценки этих классов

Некоторые термины:

  • Здесь у нас есть только один фактор или один способ, который является классом, и фактор имеет четыре значения или четыре обработки, включая классы A, B, C и D, поэтому этот тест может можно назвать односторонним тестом на четыре процедуры.
  • Эти четыре класса также можно назвать четырьмя совокупностями, а выборки – это учащиеся, отобранные из этих совокупностей.
  • Оценка для каждого образца, например, 57 — это наблюдение.

Идея дисперсионного анализа заключается в сравнении среднего значения различных групп по дисперсии, поэтому нам необходимо вычислить дисперсию. Для одностороннего теста у нас есть два вида дисперсии для расчета: одна — дисперсия внутри групп (SSE), а другая — дисперсия между группами (SSA).

Дисперсия внутри группы означает вычисление дисперсии для каждой группы, а затем сложение всех дисперсий вместе, после чего мы получаем SSE (сумма квадратов ошибки). SSE измеряет случайную ошибку, вызванную выборкой. Например, из класса А могут быть взяты разные образцы, и наблюдения могут быть разными, что приводит к различиям.

Дисперсия между группами называется SSA и представляет собой сумму квадратов отклонений среднего значения каждой группы от общего среднего (среднего значения всех наблюдений). SSA содержит как системную ошибку, так и случайную ошибку. Системная ошибка вызвана разными группами.

Эти два термина могут сбить вас с толку, но не волнуйтесь. Я покажу вам, как их рассчитать на нашем примере.

Как только мы получим SSE и SSA, мы можем сравнить их, рассчитав статистическое значение и сравнив его с уровнем значимости, а затем сделать вывод. Если SSA значительно выше, чем SSE, это означает, что существует системная ошибка, и группы могут повлиять на среднее значение. Если нет существенной разницы между SSE и SSA, это означает, что существует просто случайная ошибка, и группы не влияют на среднее значение.

Сделаем некоторые расчеты

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

Следующим шагом является расчет SSE:

  • для класса A его SSE равен

  • для класса B SSE

мы делаем то же самое для классов C и D и получаем 434 и 650. Таким образом, окончательный SSE равен 700+924+434+650=2708.

Как видно из формулы, SSE измеряет разброс выборок и обозначает случайную ошибку.

Затем нам нужно рассчитать SSA.

  • Для класса A 7 — это количество образцов в классе A.

  • Для класса В, (48–47,87)²*6
  • Для класса С, (35–47,87)²*5
  • Для класса D, (59–47,87)²*5

мы складываем их вместе и получаем SSA, который равен 1456,60.

Далее нам нужно рассчитать F-статистику по формуле

У нас есть SSA и SSE, так как получить MSA и MSE. Ответ делится на степени свободы. Например, для выборки с 10 значениями, если известно выборочное среднее и 9 значений в выборке, то определяется 10-е значение, т. е. только 9 значений свободно варьируются, поэтому степень свободы равна 9.

Для SSA степень свободы составляет 4–1=3, 4 — это количество групп, поэтому

Для SSE степень свободы равна n-4, n - количество выборок, равное 23, поэтому

F-статистика рассчитывается как

Последним шагом является сравнение F-статистики с критическим значением. Предположим, что значимый уровень равен 0,05, а степени свободы равны 3 и 19. На основе этой информации мы можем прочитать таблицу F-распределения и получить критическое значение, равное 3,1274. Поскольку F-статистика равна 3,40 и больше 3,1274, следовательно, попадает в область области и отвергает нулевую гипотезу, другими словами, класс имеет значительную разницу в оценке.

В следующей таблице показаны результаты однофакторного дисперсионного анализа.

мы можем использовать несколько формул, чтобы обобщить описанный выше процесс.

n_i: количество наблюдений в i-й группе, k - количество процедур, x_ij - j-е наблюдение в i-й группе.

n_i: количество наблюдений в i-й группе, k - количество процедур, x_ij - j-е наблюдение в i-й группе.

Слишком сложно вычислять эти числа, Scipy может избавить нас от вычислений. scipy.stats.f_oneway может выполнять однофакторный дисперсионный анализ.

from scipy.stats import f_oneway
classA = [57,66,49,40,34,53,44]
classB = [68,39,29,45,56,51]
classC = [31,49,21,34,40]
classD = [44,51,65,77,58]
f,p = f_oneway(classA,classB,classC,classD)
# f is 3.406 which is the same as we calculated by hand 
# p is 0.038 which is smaller than 0.05, therefore reject null hypothesis

Резюме: в этой статье я представляю теорию, лежащую в основе ANOVA, и выполняю некоторые расчеты для ее реализации. В следующем блоге я расскажу, как определить, какая группа вызывает разницу, и представлю двусторонний дисперсионный анализ.