🔴 Сложный ⏱️ 25 минут

Дисперсионный анализ (ANOVA) - как сравнить несколько групп

Дисперсионный анализ (ANOVA) - как сравнить несколько групп

🎯 Зачем это нужно?

Представь, что ты product manager в социальной сети 📱. У тебя есть 4 варианта нового дизайна кнопки “Лайк”, и ты хочешь понять, какой из них приводит к большему engagement. Или ты исследователь, изучающий эффективность 5 разных методик обучения математике.

t-test умеет сравнивать только ДВЕ группы. А что если групп много? Проводить все возможные парные t-тесты? Плохая идея - с каждым новым тестом растёт вероятность ложного срабатывания!

🎮 В геймдеве: “Какой из 6 типов наград в игре мотивирует игроков проводить больше времени?” 📊 В маркетинге: “Какая из 4 версий рекламы даёт лучшую конверсию?” 🧬 В медицине: “Какой из 3 препаратов эффективнее снижает давление?”

ANOVA решает эту проблему одним махом!

📚 История вопроса

ANOVA придумал Рональд Фишер в 1918 году, работая с сельскохозяйственными данными 🌾. Ему нужно было понять, какие удобрения лучше влияют на урожай.

Фишер был гением статистики - он же придумал p-value, максимальное правдоподобие и дизайн экспериментов. Забавный факт: он был заядлым курильщиком и долго отрицал связь курения с раком лёгких, хотя сам создал инструменты для её доказательства! 🚬

💡 Интуиция

Главная идея ANOVA: если группы действительно разные, то разброс МЕЖДУ группами должен быть больше разброса ВНУТРИ групп.

Представь класс, где измеряют рост учеников 📏:

🟢 Случай 1 (группы одинаковые): Все ученики примерно одного роста, неважно из какого класса

  • Разброс между классами ≈ разброс внутри классов
  • F-статистика ≈ 1

🔴 Случай 2 (группы разные): В одном классе все высокие, в другом - низкие

  • Разброс между классами » разброс внутри классов
  • F-статистика » 1

[МЕДИА: image_01] Описание: Диаграмма показывающая две ситуации - когда группы похожи и когда различаются Промпт: “educational illustration showing ANOVA concept, two scenarios with box plots, first showing similar groups with overlapping distributions, second showing distinct groups with clear separation, clean statistical visualization style”

📐 Формальное определение

Нулевая гипотеза H₀: μ₁ = μ₂ = … = μₖ (все групповые средние равны) Альтернативная H₁: хотя бы одно среднее отличается

F-статистика: F = MSₜᵣₑₐₜₘₑₙₜ / MSₑᵣᵣₒᵣ

где:

  • MSₜᵣₑₐₜₘₑₙₜ = межгрупповая дисперсия (Mean Square Treatment)
  • MSₑᵣᵣₒᵣ = внутригрупповая дисperсия (Mean Square Error)

Более подробно:

MSₜᵣₑₐₜₘₑₙₜ = SSₜᵣₑₐₜₘₑₙₜ / (k-1) MSₑᵣᵣₒᵣ = SSₑᵣᵣₒᵣ / (N-k)

SSₜᵣₑₐₜₘₑₙₜ = Σnᵢ(x̄ᵢ - x̄)² - сумма квадратов между группами SSₑᵣᵣₒᵣ = ΣΣ(xᵢⱼ - x̄ᵢ)² - сумма квадратов внутри групп

# В Python с scipy:
from scipy import stats

# Пример: время в игре для разных типов наград
group1 = [45, 50, 48, 52, 49]  # золото
group2 = [38, 42, 40, 41, 39]  # серебро  
group3 = [55, 58, 60, 57, 59]  # опыт

F_stat, p_value = stats.f_oneway(group1, group2, group3)

🔍 Примеры с разбором

Пример 1: A/B/C тест рекламы

Тестируем 3 варианта рекламы, измеряем CTR (%):

  • Вариант A: [2.1, 2.3, 1.9, 2.2, 2.0] → x̄₁ = 2.1
  • Вариант B: [1.8, 1.7, 1.9, 1.6, 1.5] → x̄₂ = 1.7
  • Вариант C: [2.8, 3.1, 2.9, 3.0, 2.7] → x̄₃ = 2.9

Общее среднее: x̄ = 2.23

Шаг 1: Считаем SSₜᵣₑₐₜₘₑₙₜ SSₜᵣₑₐₜₘₑₙₜ = 5×[(2.1-2.23)² + (1.7-2.23)² + (2.9-2.23)²] = 4.15

Шаг 2: Считаем SSₑᵣᵣₒᵣ SSₑᵣᵣₒᵣ = Σ отклонений внутри каждой группы = 0.70

Шаг 3: F-статистика MSₜᵣₑₐₜₘₑₙₜ = 4.15/2 = 2.075 MSₑᵣᵣₒᵣ = 0.70/12 = 0.058 F = 2.075/0.058 = 35.8

Шаг 4: Сравниваем с критическим значением При α = 0.05, df₁ = 2, df₂ = 12: F_критическое = 3.89 F = 35.8 > 3.89 → отклоняем H₀

Вывод: Варианты рекламы статистически значимо различаются! 🎉

[МЕДИА: image_02] Описание: Пошаговый расчёт ANOVA с визуализацией групп и F-распределения Промпт: “step-by-step ANOVA calculation visualization, showing three advertisement groups with means, F-distribution curve with critical value marked, clean educational statistical diagram”

🎮 Практика

Базовый уровень 🟢

Задание 1: Геймдизайнер тестирует 3 типа боссов в RPG. Время победы (минуты):

  • Дракон: [12, 15, 13, 14, 11]
  • Робот: [8, 9, 7, 10, 8]
  • Маг: [16, 18, 15, 17, 19]

Есть ли значимые различия? (α = 0.05)

Задание 2: Сравниваем эффективность 4 алгоритмов рекомендаций (точность %):

  • Collaborative: [85, 87, 83, 86, 84]
  • Content-based: [78, 80, 77, 79, 82]
  • Deep Learning: [91, 93, 89, 92, 90]
  • Hybrid: [88, 90, 87, 89, 91]

Вычисли F-статистику.

Задание 3: В каком случае F-статистика будет больше: a) Группы сильно перекрываются b) Группы чётко разделены c) Одинаково

Продвинутый уровень 🟡

Задание 4: Компания тестирует 3 ML-модели для предсказания оттока. Accuracy на тестовой выборке:

  • LogReg: [0.82, 0.84, 0.81, 0.83, 0.80]
  • XGBoost: [0.89, 0.91, 0.88, 0.90, 0.87]
  • Neural Net: [0.85, 0.87, 0.84, 0.86, 0.88]

Проведи полный анализ: H₀, H₁, расчёт F, вывод.

Задание 5: При каких условиях ANOVA даёт некорректные результаты? Выбери все верные: a) Негауссовое распределение в группах b) Неравные размеры групп
c) Разные дисперсии в группах d) Наличие выбросов

Задание 6: Стартап A/B/C тестирует 3 алгоритма персонализации контента. Время сессии (минуты):

  • Алгоритм 1: [25, 28, 23, 27, 26, 24]
  • Алгоритм 2: [18, 20, 17, 19, 21, 16]
  • Алгоритм 3: [31, 34, 29, 33, 32, 30]

Если F_критическое = 3.68, какой вывод сделаешь?

Челлендж 🔴

Задание 7: Netflix тестирует 4 варианта алгоритма ранжирования. Engagement score:

  • Base: [7.2, 6.8, 7.1, 6.9, 7.0, 6.7, 7.3]
  • ML v1: [7.8, 8.1, 7.9, 8.0, 7.7, 8.2, 7.6]
  • ML v2: [8.5, 8.3, 8.7, 8.4, 8.6, 8.2, 8.8]
  • ML v3: [8.1, 7.9, 8.3, 8.0, 8.2, 7.8, 8.4]

Проведи анализ и интерпретируй: стоит ли внедрять новые алгоритмы?

Задание 8: Ты аналитик в EdTech. Сравниваешь 5 методов обучения Python. Баллы финального теста (0-100): Создай план эксперимента: размер выборок, критерии успеха, возможные проблемы.

⚠️ Частые ошибки

Ошибка: “ANOVA показала различия, значит все группы разные” ✅ Правильно: ANOVA показывает, что ХОТЯ БЫ одна группа отличается
💡 Почему: Для попарных сравнений нужны post-hoc тесты (Tukey, Bonferroni)

Ошибка: Использовать ANOVA при сильно разных дисперсиях в группах ✅ Правильно: Проверить гомоскедастичность (тест Левена), при нарушении - Welch ANOVA 💡 Почему: Классическая ANOVA предполагает равные дисперсии

Ошибка: Интерпретировать F-статистику как “размер эффекта”
Правильно: Для размера эффекта использовать η² (эта-квадрат) 💡 Почему: F зависит от размера выборки, η² - нет

Ошибка: Применять к категориальным данным ✅ Правильно: Для категорий используй χ² тест независимости 💡 Почему: ANOVA для непрерывных зависимых переменных

Ошибка: Забыть проверить предпосылки (нормальность, гомоскедастичность) ✅ Правильно: Shapiro-Wilk тест + QQ-plot, тест Левена 💡 Почему: При нарушениях результат может быть неверным

🎓 Главное запомнить

ANOVA сравнивает средние НЕСКОЛЬКИХ групп одновременноF = межгрупповая дисперсия / внутригрупповая дисперсия
Используется в A/B/C тестах, медицине, геймдеве, MLЕсли F велико → группы различаются статистически значимо

🔗 Связь с другими темами

Откуда пришли: t-test (урок 249), проверка гипотез, дисперсия Куда ведёт: post-hoc анализ, многофакторный ANOVA, регрессионный анализ, design of experiments

В машинном обучении ANOVA используется для feature selection - отбираем признаки, которые лучше всего различают классы! 🤖

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!