30 июля

Тесты на статистическую значимость — это чудовищно ущербный инструмент

Исследования и прогнозы в ITСтатистика в ITИнтервью

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

Вот мне хочется, чтобы кнопка была зеленой, просто потому что мне так больше нравится. А дизайнер говорит — «неважно, АБ-тесты показали, что на кнопку поносного цвета кликают на 0,2% чаще». Господи, дружище, ты десять лет прокачивал свой вкус и опыт, чтобы что? Чтобы наш продукт напоминал птичью какашку? Но бизнес говорит — раз есть цифры, значит мы обмажем этим все.

Я понимаю, люди хотят заработать денег. Они не хотят доверять своей вкусовщине, когда речь идет про удовлетворение толпы. Но теперь я знаю, что проблема может быть не в цифрах, а в людях, которые не умеют пользоваться статистическими тестами.

На прошлой неделе у нас в подкасте был Андрей Акиньшин, кандидат физ-мат наук и специалист в области перформанс-анализа. Он рассказал нам, почему у него тоже бомбит от современной математической статистики.

Видео с таймкодом. Ниже — только монологи Андрея из видео.


Есть такая штука, которая очень часто и много используется. Называется «тесты на статистическую значимость». Например, есть два бенчмарка, ты померил и получил набор цифр, которые дали тебе некое распределение. Дальше ты хочешь понять – есть ли между бенчмарками разница в перформансе. То есть, верно ли, что один бенчмарк работает быстрее, чем другой.

«Тесты на статистическую значимость» — классический подход к решению этой задачи. Работают они просто. У тебя есть формула, в которую ты засовываешь данные, и она на выходе тебе даёт некое магическое P-value, которое ты сравниваешь с магической константой Альфа. Если P-value получилось меньше Альфа, то ты говоришь, что там есть разница. А если получилось больше, говоришь разницы нет (на практике правильнее говорить «нельзя отвергнуть нулевую гипотезу» и много других страшных слов).

Эти стат-тесты дико распространены, они есть во всех университетских курсах по математической статистике. Но этот инструмент — чудовищно ущербный. В стат-тестах плохо всё. Они максимально контринтуитивны. Многие интерпретируют P-value как вероятность, что у нас есть разница. На самом деле нет разницы, это совсем другое.

Очень много контринтуитивности в том, как применять стат-тесты, и в том, как интерпретировать их результаты. Кажется, что у них низкий порог входа – тебе нужно сделать мало телодвижений, чтоб начать их использовать: ну, засунул данные в формулу, получил одно число, сравнил с другим числом. Всё, поехали! Но на самом деле там всё очень сложно.

С тем же Альфа – в качестве Альфа принято использовать значение 0,05. Почему это принято? Потому что был такой мужик Фишер, который в 30-х годах прошлого века написал статью в сельскохозяйственный журнал, где рассуждал о том, как определить – есть ли у нас эффект от навоза на то, насколько хорошо растут сельскохозяйственные культуры — или нет. У него было 20 экспериментов, он говорил, что в одном эксперименте из двадцати мы можем просто по чистой случайности увидеть разницу между полем с навозом и полем без навоза, даже если от навоза толку никакого нет.

Но сквозь несколько публикаций оттуда просочилось число 0,05. Всё — это случайное рандомное число, которое стало индустриальным стандартом. Примерно как с клавиатурой Qwerty, которую дизайнили как средство, которое замедляет печать. Теперь везде будет Qwerty до конца наших дней.

А дальше начали происходить более плохие вещи. В 80-х Коэн, занялся анализом статистической мощности, и ввёл дефолтное значение для константы Бета. То есть Альфа – это вероятность ошибки первого рода. Ситуация, когда у нас на самом деле нет никакой разницы между нашими бенчмарками, но стат-тест подумал, что есть, там – «false positive». А Бета обозначает вероятность ошибки второго рода. Когда у тебя разница есть, но ты подумал, что нет – «false negative».

Эта Бета очень часто берется равным 0.2. Это тоже число взятое просто от балды. Коэн написал: «Ну, там ошибка второго рода, наверное, раза в четыре более критичная, чем ошибка первого рода. Ошибка первого рода – это 0.05. Давайте домножим на четверку». То есть чувак просто взял одно случайное магическое число, домножил на другое число, получил 0.2 – всё, новый индустриальный стандарт, все его используют.

При этом там чётко было написано: «Ребята, это конвенция только для тех, кто не знает, что он исследует, зачем исследует, и как будут применяться эти результаты. Только если у вас вообще нет никакого представления о том, что вы делаете, можете взять 0.2, но вообще думайте своей головой». Но этот факт никто не заметил, все используют дефолт. И то не очень часто, потому что статистическую мощность и эту Бета очень сложно оценивать. Это вроде как необходимый шаг в применении стат-тестов, но на него все забивают. Потому что ну сложно, зачем?

Эта система приводит к тому, что очень много крутых, умных учёных изо дня в день занимаются какой-то несусветной хренотнёй.

Там всё плохо. В научные журналы по физике, математике, психологии, биологии, генетике каждый день идёт масса статей, в которых люди занимаются просто ерундой. Это вредительство. И этим подходам обучаются новые студенты.

То, как их используют – это просто жесть. Например, мы хотим подать статью в научный журнал. С нас требуют указать P-value. В научный журнал можно подать только значимый результат – поэтому P-value должно быть меньше, чем условный 0.05. Если у тебя получилось там 0.049 или 0.051, ты такой: «Йей! У меня почти значимый результат!».

Если у тебя получилось 0.9, тогда ты делаешь просто ещё один эксперимент, а потом ещё один. И вот из наших «фишеровских» опытов с навозом мы помним, что если сделать 20 экспериментов, то хотя бы в одном P-value получится таким, какое нам нужно. И всё, и мы все равно сможем опубликовать статью.

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

Если мы возьмём науку — там повально все обмазаны этими стат-тестами. На продакшне тоже очень многие берут их — например, делают с их помощью любые АБ-эксперименты.

Типичный пример: в красный нам надо покрасить кнопку или в синий? Мы делаем АБ-эксперимент, засовываем всё в чудо-формулу, получаем P-value и нам говорят цвет. И мы такие: «Вот, мы там применили какую-то научную формулу, вот мы сделали решение, вот наш дизайн». А это ещё хрен проверишь, потому что валидацией результатов мало кто занимается в долговременной перспективе. И вроде то, что мы сильно продолбались – не видно.

И – да, все это массово используют.

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

Если не хочешь разбираться, можешь спросить у человека: «Какая статистическая мощность у вашего теста?» Если человек тебе не ответит (а большинство людей не отвечают на такой вопрос), то можно говорить: «До свидания!».

Статистическая мощность – это число от 0 до 1. Тебе его должны назвать. Или дать формулу, с помощью которой она оценивается. Во многих сложных случаях мощность не обозначается одним числом, а, например, зависит от данных, от форм распределения, от других дополнительных условий. Но это неважно. Важно – ответит он или нет. Если он скажет: «А я не знаю» или «Мы что-то не считали никогда» — то это проблема.

Еще можно спросить про размер эффекта. Если распределения отличаются — то насколько? По-хорошему, оценку размера эффекта нужно делать, но на это многие забивают. Если человек не готов тебе привести убедительные интервалы; если всё, что у него есть – это только P-value – это тоже плохой знак.

Все вокруг так делают, а миллион леммингов не может ошибаться.

Это очень спорный тезис, потому что типичный ответ тех, кто любит использовать стат-тесты — «Остальные просто не умеют их правильно использовать, поэтому у них проблемы. А я умею». Есть люди, которые действительно умеют. И у них всё хорошо. Но таких людей меньшинство. Работает замкнутая система — люди используют стат-тест, учат других людей, те передают это следующему поколению. Критика существует уже очень давно, многие говорят, что мы должны забанить P-value, и не использовать это никогда — ни в работах, ни в журналах! Но как-то оно не уходит.

Проблема в том, что альтернативные методы чаще всего сложнее. Там реально нужно думать, там нет универсальной формулы, которая легко ложится на все задачи.

А задача исследователя в том, чтобы проанализировать предметную область и подобрать те подходы и параметры, которые лучше всего на эту предметную область лягут. Это сложно, это надо думать. Думать не хочется. «Зачем мне что-то изучать, зачем мне думать, когда у меня есть готовая формула, которая в один клик посчитает мне всё, что нужно».


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

Публикации

И еще одно выступление Андрея, где он рассказывает о проблеме более обстоятельно:

Теги:Андрей Акиньшинмы обречены
Хабы: Исследования и прогнозы в IT Статистика в IT Интервью
+17
4,8k 25
Комментарии 5
Лучшие публикации за сутки