Как проводить анализ значимости выборки, если данные не прошли тест на нормальность

«Как проводить анализ значимости выборки, если данные не прошли тест на нормальность» — вопрос из категории Статистика, который задают на 25% собеседований Продукт Менеджер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

  1. Малые выборки (n < 30):

    • Wilcoxon signed-rank (для парных данных)
    • Mann-Whitney U (для независимых выборок)
  2. Большие выборки (n ≥ 30):

    • Bootstrap-методы
    • Перцентильные доверительные интервалы

Пример сравнения двух групп в Python:

from scipy.stats import mannwhitneyu

# Непараметрический тест для независимых выборок
stat, p = mannwhitneyu(group_a, group_b)
print(f'p-value: {p:.4f}')

Для парных данных лучше использовать:

from scipy.stats import wilcoxon

stat, p = wilcoxon(before, after)
print(f'p-value: {p:.4f}')

Дополнительно можно рассчитать размер эффекта (например, Cohen's d для нормальных данных или Cliff's delta для ненормальных). Всегда проверяйте размер выборки и учитывайте возможные выбросы.