Когда я участвовал в продуктовой разработке, меня страшно бесили прагматичные дизайнеры — те, что все пытались делать только на основе статистических исследований.
Вот мне хочется, чтобы кнопка была зеленой, просто потому что мне так больше нравится. А дизайнер говорит — «неважно, АБ-тесты показали, что на кнопку поносного цвета кликают на 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, и не использовать это никогда — ни в работах, ни в журналах! Но как-то оно не уходит.
Проблема в том, что альтернативные методы чаще всего сложнее. Там реально нужно думать, там нет универсальной формулы, которая легко ложится на все задачи.
А задача исследователя в том, чтобы проанализировать предметную область и подобрать те подходы и параметры, которые лучше всего на эту предметную область лягут. Это сложно, это надо думать. Думать не хочется. «Зачем мне что-то изучать, зачем мне думать, когда у меня есть готовая формула, которая в один клик посчитает мне всё, что нужно».
Монолог выше — это не строгая критика стат-тестов, а лишь некоторые аргументы на пальцах, взятые из разговора за жизнь. Если разбираться в теме, то лучше делать это основательно и глубоко. Ниже несколько публикаций, чтобы взглянуть на проблему шире и понять — подходят ли стат-тесты для ваших исследований и задач.
Публикации
Harlow, Lisa L., Stanley A. Mulaik, and James H. Steiger, eds. What if there were no significance tests? Routledge, 2016.
Cohen, Jacob. "The earth is round (p<. 05)." In What if there were no significance tests?, pp. 69-82. Routledge, 2016.
Amrhein, Valentin, Franzi Korner-Nievergelt, and Tobias Roth. "The earth is flat (p> 0.05): significance thresholds and the crisis of unreplicable research." PeerJ 5 (2017): e3544.
Wasserstein, Ronald L., Allen L. Schirm, and Nicole A. Lazar. "Moving to a world beyond “p< 0.05”." (2019): 1-19.
Winder, W. C. "What you always wanted to know about testing but were afraid to ask." American dairy review (1973).
Grieve, Andrew P. "How to test hypotheses if you must." Pharmaceutical statistics 14, no. 2 (2015): 139-150.
Krawczyk, Michal. "The search for significance: a few peculiarities in the distribution of P values in experimental psychology literature." PloS one 10, no. 6 (2015).
И еще одно выступление Андрея, где он рассказывает о проблеме более обстоятельно:
vaborg
какой то унылый сумбур о том, что все дураки, один я в белом Дартаньян.
Проще уж перевести несколько статей о том, что такое п-значения и как ими пользоваться, которые появились во множестве в нормальных журналах.
www.nature.com/articles/d41586-019-00857-9
www.nature.com/news/one-size-fits-all-threshold-for-p-values-under-fire-1.22625
www.tandfonline.com/doi/full/10.1080/00031305.2019.1583913
www.nature.com/articles/nmeth.4120
продолжать можно долго, но тогда получится скучно и не получится немножно получить свой гешефт?
saboteur_kiev
Есть вещи, которые нужно долго и тщательно изучать, чтобы правильно ими пользоваться. Перевести еще несколько обзорных статей не поможет тем, кто использует тесты неправильно. Именно в этом посыл статьи.
И это уже далеко не первый случай, когда огромное количество людей заблуждается на какой-то счет, но не хочет этого понять, потому что для того, чтобы понять аргументы, которые поясняют твое заблуждение, надо подумать.