Параметрические тесты

Основы статистического вывода на Python

Paul Savala

Assistant Professor or Mathematics

ANOVA

  • ANOVA — сравнивает среднее значение отклика по каждому фактору
  • Отклик — числовое измеренное значение
  • Фактор — категориальная переменная, определяющая группы

Таблица с данными о венчурном финансировании нескольких компаний на различных рынках.

Основы статистического вывода на Python

ANOVA

investments_df.groupby('market')['funding_total_usd'].mean()
Market        Average funding
===========   ===============
Advertising      13806610
Analytics        14762930
Biotechnology    20838670
...              ...
  • Отклик: объём финансирования
  • Фактор: рынок
  • ANOVA: сравнение среднего финансирования по рынкам
Основы статистического вывода на Python

Допущения ANOVA

  • Отклики для каждого фактора распределены нормально
    • Объёмы финансирования по рынкам распределены нормально
  • Дисперсия откликов по факторам одинакова в генеральной совокупности
    • Вариация финансирования по рынкам распределена нормально
Основы статистического вывода на Python

Нормальное распределение отклика

health_df = investments_df[investments_df['market'] == 'Health and Wellness']
health_df['funding_total_usd'].plot(kind='hist')

Гистограмма: по оси X — общий объём финансирования по компании, по оси Y — частота; один очень высокий столбец вблизи нуля и несколько значительно меньших столбцов далее.

Основы статистического вывода на Python

Логарифмические преобразования и нормальность

health_log = np.log(health_df['funding_total_usd'])

health_log.plot(kind='hist')

Гистограмма: по оси X — общий объём финансирования по компании, по оси Y — частота; один очень высокий столбец вблизи нуля и несколько значительно меньших столбцов далее.

Основы статистического вывода на Python

Равенство дисперсий

investments_df['log_funding'] = np.log(investments_df['funding_total_usd'])

investments_df.groupby('market')['log_funding'].std()
Advertising            2.254390
Analytics              2.152852
Biotechnology          1.946059
...                    ...

Критерий Левена для проверки равенства дисперсий

$H_0:$ Дисперсии генеральных совокупностей равны

$H_a:$ Дисперсии генеральных совокупностей различаются

Основы статистического вывода на Python

Равенство дисперсий

from scipy import stats

health_df = investments_df[investments_df['market'] == 'Health and Wellness']
analytics_df = investments_df[investments_df['market'] == 'Analytics']

s, p_value = stats.levene(health_df['log_funding'], analytics_df['log_funding'])
print(p_value < 0.05)
False

Вывод: Нулевая гипотеза не отвергается. Дисперсия финансирования по рынкам одинакова.

Основы статистического вывода на Python

ANOVA в SciPy

s, p_value = stats.f_oneway(health_df['log_funding'], 
                            analytics_df['log_funding'])

print(p_value < 0.05)
True

Вывод: Объёмы финансирования на рынках статистически значимо различаются.

Основы статистического вывода на Python

Выводы на основе ANOVA

  • $H_0:$ Все средние равны
  • $H_a:$ Хотя бы одно среднее отличается
  • Без дополнительного анализа нельзя определить, какое именно среднее отличается.
Основы статистического вывода на Python

Давайте потренируемся!

Основы статистического вывода на Python

Preparing Video For Download...