TGViewer
Я твой продукт анализировал Я твой продукт анализировал @datadeepdive · 1.68K subscribers
Post #56 586
📌 6. T-тест. Выравниваем распределение

Иногда выборочные средние могут распределиться не нормально, а нам прям очень надо. Эту проблему можно пофиксить

Чтобы попытаться выровнять распределение, мы можем использовать много методов — от простого логарифмирования и стандартизации, до рангового преобразования и трансформации Йео-Джонсона.


Сразу оговорюсь, что на практике в АБ с выравниванием заморачиваются не часто (можешь щегольнуть скиллом на работе), поэтому я не буду слишком углубляться в описание всех методов, а разберу мой любимый — степенную трансформацию Бокса-Кокса.

☝️ Главный нюанс, который стоит знать про BCT (Box-Cox transformation) — он не работает с отрицательными значениями. В коде последней строкой фикс для таких случаев.

🧐 Суть метода, под капотом, заключается в поиске идеального значения суперпараметра лямбда, который определяет как именно трансформировать данные. Лямбда подставляется в формулу к каждому значению в данных. Если лямбда нулевая, то формула логарифмирует значения, если не нулевая — возводит данные в степень лямбды.

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

Вот так это выглядит в R (версия для Python в комменте):

library(MASS)
library(car)

# Вычисляем лучшее значение лямбды
par(mfrow = c(1, 1))
boxcox_result <- boxcox(df$metric ~ 1, lambda = seq(-3,3,0.1))

# Сохраняем его
best_lambda <- boxcox_result$x[which.max(boxcox_result$y)]

# Применяем преобразование
df$metric_transformed <- car::bcPower(df$metric, best_lambda)

# При наличии отрицательных значений, смещаем нашу метрику на минимальную величину +1
df$metric <- df$metric+ abs(min(df$metric)) + 1


📎 У меня на гитхабе есть демка такого преобразования (R).

#ABtest
  • 👍 7
  • 🔥 1
More from @datadeepdive
  1. Jul 28, 2026📌 4/4, Бизнес уровень. Пожалуй самый сложный, и самый простой уровень одновременно. Понят…
  2. Jul 28, 2026Сори, отвлёкся 😀 📌 3/4, Продуктовый уровень. Этот раздел ставит перед собой почти филосо…
  3. May 31, 2026📌 2/4, Операционный уровень. Эта часть про то, насколько оптимально расходуются ресурсы.…
  4. May 31, 2026📌 Про оценку направления экспериментов, 1/4 Я как-то недавно выступал на одной конфе, рас…
  5. May 26, 2026А вот маленький демо датасет, если захочется глянуть как оно всё работает
  6. May 26, 2026Прикрутили типизацию аккаунтов, теперь в соло можно пользоваться без всяких ключей, с огра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →