Трансформация и нормализация данных

Часто особенно полезные и интересные критерии требуют соблюдения определенных условий. Например, семейства параметрических критериев обязательно требуют соблюдения условия нормальности распределения величины. В этой статье мы рассмотрим способы трансформации, и чем они могут быть полезны.
Давайте представим, что мы хотим проанализировать наши данные использую многофакторную ANOVA.
Дисперсионный анализ — метод в математической статистике, направленный на поиск зависимостей в экспериментальных данных путём исследования значимости различий в средних значениях. В отличие от t-критерия он позволяет сравнивать средние значения трёх и более групп. Его разработал Р. Фишер для анализа результатов экспериментальных исследований. В литературе также встречается обозначение ANOVA. Wikipedia
Основная статистика, это F критерий Фишера, на основе критических значений которой мы и будем отклонять Ho. Формула имеет следующий вид:
где MSbg -межгрупповая дисперсия, а MSwg — внутригрупповая дисперсия.
Метрика, которую мы пытаемся описать разным количеством факторов имеет следующее распределение:
На таких графиках изображаются квантили двух распределений — эмпирического (построенного по анализируемым данным) и теоретически ожидаемого стандартного нормального распределения. При нормальном распределении проверяемой переменной, точки на графике квантилей должны выстраиваться в прямую линию, исходящую под углом 45 градусов из левого нижнего угла графика.
Видно, что распределение очень далеко от нормального.
И на этом можно было бы остановиться и перестать что-либо делать. Но все-таки нам критично использовать именно этот критерий. Ниже мы разберем два подхода.а самом деле их больше, но пока рассмотрим наиболее популярные.
Вариант 1: влияние выбросов на распределение
Бывает так, что распределение делает ненормальным несколько наблюдений, которые являются выбросами и портят всю картину.От таких наблюдений можно избавиться преобразовав распределение величины.
Выбросов у нас достаточно много, попробуем от них избавиться и еще раз описать распределение.
Стоит понимать, что показанный тут пример очень грубый. Чаще всего нет необходимости чистить данные так, достаточно просто выборочно почистить выбросы.
Правило трёх сигм — практически все значения нормально распределенной случайной величины лежат в интервале
Мы можем убрать все значения, которые выходят за три стандартных отклонения и посмотреть, как изменятся наши данные.В результате получим следующее:
Проверим наблюдения по критерию согласия и получим следующий результат — наше распределение стало нормальным при W = 0.9943.
Но есть неприятный момент. После такой чистки мы потеряли 30% данных, что для нас является достаточно ощутимой потерей, и мы не можем себе этого позволить. Такой метод явно не подходит.
Вариант 2: использование метода трансформации по Боксу-Коксу.
Метод Бокса-Кокса позволят выбрать оптимальный способ нормализации данных исходя из значения нашей лямбды. Например, логарифм — это его частный случай нормализации при значении лямбда равной 0.

Исходя из значения Estimated Lambda 0.5 трансформация будет проходить при помощи извлечения квадратного корня. Про метод Бокса-Кокса отлично написано тут.
После применения трансформации мы получим следующее:
Наше распределение можно отнести к нормальному, что несомненно радует.
Допустим, теперь мы можем использовать ANOVA и проинтерпретировать результат.
Но стоит помнить, что мы будем оперировать не метрикой, а log-метрикой. С точки зрения бизнеса это будет совершенно непонятно и звучать более чем странно. Но это определенно позволит увеличить чувствительность критерия к этой метрике. Конечно, мы можем перевести значения в исходный вид, но эти результаты нельзя будет применять к тому, что мы получили.
В качестве вывода:
Нормализация — очень дискуссионный вопрос. И мы в работе ее используем только тогда (и чаще всего это просто чистка данных), когда на распределение нашей величины влияет незначительное количество выбросов. В остальных случаях мы стараемся использовать непараметрические критерии или методы ресэмплинга.

