Не AБы какие тесты
1.8K subscribers
82 photos
71 links
Канал - оголтелая реклама курсов по A/B, ну еще размышления по A/B, статистике и не только.

https://t.me/smatrosov - до связи
Download Telegram
Привет, товарищи-статистики!

Интересный вопрос по базе: почему при средних объемах выборки мы используем t-распределение, если средние уже вроде бы распределены нормально?

Действительно, при некотором объеме выборки (условно 30-50 измерений) у нас соблюдается не только нормальность средних, но и выборочная дисперсия начинает вести себя предсказуемо (моделируется через Хи-квадрат, одно не 1-в-1 с ним совпадает!). Это обеспечивает в принципе t-распределение для большинства случайный величин, то есть что-то универсальное.

Но многих в контексте "среднего объема" выборок ставит в тупик наблюдение о выборочных средних согласно нормальном распределении, значит и перевод в z-score должно давать z-нормальное, однако применение критерия без знания дисперсии генеральной дает именно t-распределение. Почему?

Действительно, наблюдаешь нормальность средних, применяешь z-score = z-нормальное. Но это если есть знания отклонения средних, что на практике невозможно, увы. Однако мы можем использовать оценку отклонения средних, стандартную ошибку: именно это и лежит в критерии в знаменателе.

Сразу скажу, числитель критерия тут почти вообще ни при чём: небольшая выборка может быть весьма непоказательной по среднему, давая большую удаленность, но все-таки львиная доля ответственности в знаменателе, где у нас стандартная ошибка.

И проблема как раз в незнании дисперсии генеральной. Знай мы её, использовали сразу в стандартной ошибке, тогда от выборке к выборке у нас было бы константное значение, константа же тем и хороша, что означает отсутствие вариации. Критерий давал бы z-распределение, так как постоянно бы делили на одно и тоже значение при фиксированном размере для всех наших выборок.

Вместо этого мы вынуждены использовать _оценку_ стандартной ошибки (еще раз: оценку оценки) в знаменателе, где мы используем выборочную дисперсию. При небольших объемах эта выборочная дисперсия очень шумная, она сильно варьируется, при чем достаточно специфическим образом, на уровне приближения мы моделируем ее поведение через Хи-Квадрат, см. картинку (повторюсь сама она не совсем так распределена, но это уже духота), а у этого распределения при малых степенях свободы значения в массе своей лежат у нуля.

То есть: вы подставляете в знаменатель значения, близкие к нулю, а при делении на очень малое значение вы как результат получаете очень большое значения (в пределе бесконечность), вот вам и объяснения длинного хвоста. Но так как у вас бОльшая доля значений дисперсии около нуля, то подставляете в знаменатель близкие к нулю чаще прочих, оттого хвосты не только длинные, но и еще и толстые. Значения числителя, будь они даже около маленькие, "вымываются" из центра кратно меньшей дисперсией (чаще всего), делая центр более приземистым: он будет ниже и менее плотным в сравнении с нормальным, так как все уйдет в хвосты.

В этом смысле t-распределение хорошо абсорбирует шум от выборочной дисперсии небольших выборок, оно естественным образом дает нам необходимый запас осторожности (консерватизма), пока выборка мала. При n -> бесконечность, выборочная дисперсия будет приближаться к истинной, то есть практически не колебаться, а значит от выборки к выборке мы будем делить по сути на саму дисперсию, что и хочет от нас как раз z-критерий, поэтому t станет z! - то, с чего начинался пост.

Можно сказать пафоснее: t статистика это есть нормированная z статистика и при стремлении n в бесконечность у нас нормировка, - отношение дисперсии истинной на дисперсию оцененную, - превращается в 1. Такие дела)

P.S. Что такое средняя выборка вопрос риторический и зависит от природы данных, готовых ответов у меня тут для вас нет: собирайте данные вашего домена, исследуйте.
❤15🔥2
Привет, товарищи-статистики! С праздником, днём Красной Армии, днём образования первой регулярной и массовой армии в мире, которая отстаивала интересы трудящихся.

Раз сегодня праздник, то и пост будет несложный, чтоб не прерывал отдых

Когда на курсе я с ребятами дохожу до p-value, мы рассматриваем распределение p-value при верности H0. Оно, распределение, равномерное, и частенько возникает вопрос: но почему оно равномерное? Ведь чаще же значения статистики будут у центра в рамках z-распределения, то есть как будто должно быть больше p-value's около 1 (с перекосом в пользу единицы).

А давайте посмотрим, почему равномерное.
❤12🔥8👍5👎3👏1💯1
Привет, товарищи-статистики!

Во-первых, с Международным Днем солидарности женщин в борьбе за женские права и эмансипацию, 8 марта: твердо убежlён, что в России курс на домострой аки "традиционные ценности", который от которого так и несёт средневековыми нравами, переломится, и люди будут видеть в друг в друге не "баб" и "мужиков", а субъектов.

Во-вторых, вот вам тонус на предстоящую неделю: мой разбор критерия последовательного тестирования SRM (Sample Ratio Mismatch, - есть ли перекос от ожидаемого сплита групп), который предложил Виктор Харламов (Math for Impact), см. его презентацию в комментариях, где уж больно интересные темы поднимаются а-ля процессы Бесселя, гёльдеровость и пр.

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

Приобщиться к случайно высокому
❤20👍4🔥3👎1
Привет, товарищи-статистики,

Эй-Ай в AB или наконец-то мысленные эксперименты!

Один из моих учеников, (Михаил, привет!) спросил, а можно ли сделать в продуктовой аналитике что-то вроде этого, где есть “миллионы ИИ-ботов со своим характером, паттернами поведения и памятью, которым кидаешь любую инфу или новость, типа нового запрета или повышения цен, и смотришь, как агенты это примут и что будут делать” для предсказания результата.

Ответ “да” мне пришел сразу, так как давно думаю о “бесплатной” проверке гипотез, - с помощью такого hive-mind, аки синтетической фокус-группы, можно делать предварительную валидацию гипотез. Это, конечно, не тест, но некоторое доп. взвешивание, а стоит ли проводить тест в принципе.

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

2) таблица, где по каждому пользователю будет написан статус участия его в прошедших экспериментах и индивидуальный эффект, который можно оценить через Uplift-моделирование (для быстрого понимания самый простой метод, S-Learner: проводим AB, накидываем модель на данные по тесту, где есть переменная участия и ряд независимых от теста ковариат, обучаем, меняем в переменной участия статус, получаем оценку контрфакта по каждому юзеру, дельта и есть этот эффект)

3) Описание каждого юзера на базе исследований хотя бы кластеризации, дополнительно его оценки/жалобы/отзывы/результаты опросов

Итого у вас есть по каждому юзеру его профиль и какие-то личные данные, индивидуальная реакция на прошедшие тесты с описанием, о чем были эти тесты. Берете гипотезу, “опрашиваете”, получаете фидбек и оценку от каждого юзера, вуаля, Эй-Ай в AB в действии! Далее можете фильтровать там по скору и пр.

MVP навайбкодил за минут 20, писал в VS, переложил в Colab, используйте свои ключи к OpenAI, должно завестись по идее. Она сгененирует таблицу по юзерам и экспериментах, а потом даст ответы на предложенную гипотезу. Результаты на скринах.

Конечно, есть ряд ограничений:
- Если у вас 100500 юзеров, то опрашивать каждого это дорого по токенам. Нужно тогда брать выборку, стратифицированную по профилям для репрезентативности вашей “генеральной” и уже ее опрашивать.
- Это не замена тесту! Поэтому надо убедиться, что есть сонаправленность такого претеста с реальным тестом. Из-за этого исторические данные в полном объеме для этой hive-модели вы использовать не сможете, иначе у вас не будет на чем тестировать ее, все по классике ML: оцените требование к истории в этом случае! Но даже если в прошлом есть сонаправленность это не избавляет от того, что впредь все будет также, конечно, нет.
- Хорошо бы через UX-исследователей провалидировать выборочно профили пользователей, уточнить их мнения и представления

А вообще, между нами говоря, неплохо бы убедиться, что у вас выполняется хотя бы условие для начала 1), та самая история экспериментов и проработанные хорошо описанные гипотезы, у вас ведь, так, да? …или нет?

В целом, предвижу, что подводных там больше и нужна прям команда с приличным таймлайном под это, но ведь красиво, согласитесь)
👍12🔥7❤2
Привет, товарищи-статистики!

2-в-1:

Во-первых
, 22 мая в Москве будет конференция AHA-26, одна из двух моих любимых, а потому всегда искренне рекомендуемых от меня, lержите по промокод ABBA10 на скидку 10%. Вот темы докладов, один из них будет от моего подопечного, Никиты Никитченко, "Методология Глобальной Контрольной Группы: оценка эффекта от тысячи кампаний в CVM", - это то, над чем сейчас часть мои ребят плотно работают, и уже готовы поделится всеми пережитым опытом (и чем я дополню материалы курса, конечно).

К сожалению, сам я попасть в этот раз не смогу, но зато могу разыгрывать 1 офлайн билет!

И вот тут уже во-вторых: сейчас через теорию игр (повторяющиеся игры, стратегию конфликта и пр.) учусь решать управленческие кейсы (однажды расскажу подробнее, когда сформилуется) в рамках доменной области, которые подбираю как из личного опыта так и от сообществ, плюс придумываю сам и, конечно, с помощью ИИ.

Предлагаю и вам решить один их них.

—
Итак, вас приглашают в компанию, где все команды катят свои фичи в основном через тесты. Прекрасно, но конкретно от вас хотят, чтобы вы починили давно назревшую проблему в KPI - он завязан прежде всего на стат.значимые зеленые тесты, где далеко не обязательно, чтобы это была финансовая метрика. Также есть ряд особенностей:
- топ-менеджмент в целом любит стат.значимость и верит в предоставляемые цифры
- процесс налажен и согласован, никто не хочет его менять
- тот, кто вам обратился по проблеме, сказал, что ряд еле-еле согласованных ретестов показал невоспроизводимость значимости

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

Какие конкретные шаги вы бы предприняли, чтобы достичь поставленной цели? Абстрактное про "поменять культуру" не принимается.

Подсказка: я недаром обмолвился о повторяющихся играх, - вам потом с этими людьми работать далее, а систему поменять надо!
—

Победителя к концу недели в воскресение, 10 мая, определю так: будет моя оценка + лайки/позитивные реакции других участников + мнение организатора. Об этом напишу в комментарии в этом посту.

P.S. Кто ждал инфу по новому потоку по AB, - обещаю, скоро! Кто не ждал, тому тоже достанется, рассмотрим очередной последовательный тест
🔥12❤2👎1
———
Привет, товарищи-статистики!

Возрадуемся, ибо в апреле к науке статистике приобщилось еще группа людей, так как завершился юбилейный 10-ый поток по AB

В этот раз среди компаний были в том числе: JetBraisn, Бургер Кинг Тех, T-Банк, и родимые X5 :)

По обновленным отзывам, - каждый из них дорог мне! - выдел такое:

"Я ушел с полным пониманием как выстраивать АБ среди функций, за которые я отвечаю и на что обращать внимание при масштабировании, какие вещи спрашивать у кандидатов...

... Мне также тяжело судить, поскольку я вне российкого рынка, но у меня сложилось впечатление, что курс очень хорошо подготавливает к поиску работы, откликам, прокачивает резюме, ответы на вероятные тестовые задания и даже готовит к тому что может ждать в tier 1 работодателях...

... Курс поражает своим объемом и детализацией темы, насколько глубоко она прокопана. В каждой презентации — сотни слайдов, что очень впечатляет. Кажется, что этот курс, на самом деле, по наполнению сопоставим с полноценным годовым университетским курсом. Каждая тема проработана очень серьезно, я вообще не предполагал даже что будет настолько серьезно... "

"И вот здесь бы я хотела отметить главную пользу курса - это полноценный курс, без упрощений и насыщенный мат аппаратом, но при этом понятный и последовательный в освоении. К лекциям прилагаются конспекты и саммари, что позволяет быстрее вспомнить предыдущий материал, для меня это было очень важно и удобно. В отличие от всех остальных курсов, здесь уделяется большущее внимание взаимосвязи формул, выводов, обозначений - а это еще более важно на начальном этапе, поэтому этот курс я точно рекомендую новичкам, но и продолжающим не будет скучно с первых лекций, потому что рассматривается не только сухая теория, но и практики в индустрии."

Из замечаний:
- Некоторые темы как FDR во множеством тестировании показались "без задач".

В целом, оно в индустрии действительно без задач, но концепцию знать необходимо, как и её отличие от FWER, а то ведь однажды откроете ее для себя и забьете на FWER, чтоб потом через год к нему же вернуться обратно)

- Хочется большей индустриальных кейсов

Думаю сейчас над этим. Проблема тут в том, в какой это превратить формат и как, если, например, это проговаривать голосом. Делать отдельной встречей или пытаться внести в уже запланированные? Не знаю.

Что вас ждет в версии v11:

1. Вновь переработал резюме: в них стало еще больше доп. материалов, которые я постарался дать ровно тогда, когда обучающийся должен быть к этому готов. Большая часть, конечно, закрывает любознательность, но делает это основательно, чтоб закрыть вопрос от и до (тут отдельно выражу благодарность ученику Никите, который этой основательности сильно поспособствовал!)

2. Стало больше отдельного (вне резюме) материала. Где-то это доп. шпарлагки, - разбор-повторение типичных вопросов из собеседований, - где-то полноценные заметки, например, про подводные камни трансформации метрик

3. Больше кода - больше симуляций. +поправлено ряд багуль :)

4. Опять переработал блок про множественное тестирование и переработаю к моменту соответствующих встреч еще раз, учитывая заметку Spotify, о которой пишет Влад и которую мы вместе с ним перевариваем для нашей внутренней кухни.

5. Помните хедбук про Causal Inference? Было 40 страниц, а стало больше 120 :)
Это часть материалов, поэтому время от времени делаю и его редакцию.

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

Что планируется:
- Байес близко. Знаю, обещаю давно, но тут как столкновение с белыми ходоками: надо подождать n сезонов!

- A/B-платформы: есть у меня мысль как это сделать более предметно, пока не понимаю, получится ли

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

—
В целом, прошедший поток показал мне, что материал созрел и получил достойную выдержку: вносилось минимум правок в слайды, минимум изменений в повествование. Что-то это да значит!
—

Продолжение далее.
❤17💯1
Надо стартовать 11-ый поток "Наглядное АB-тестирование: от основ до современных стандартов" !

Старт планируется примерно в первых числах июня: кому каникулы, кому - учёба!

Список актуальных тем на скрине, о чем они кратко - тут. Отмечу, что теперь есть не только блоки, но и вехи: первая веха про то, что вы обязаны знать в рамках индустрии, вторая про методологию, с которой неплохо бы познакомится, но которая не всегда нужна в бою. Да-да, представьте, любимый ответ Яндекса про свитчбэки не является обязательным для понимания, так как эта малая часть тестов, которые реально запускаются, ну извините! Аналогично и с последовательным тестированием: прикольно, но давайте просто подождем конца теста, ок?

Формат прежний:
- Обучение идет по вечерам, в 19 по Мск, 2-3 раза в неделю, примерно 4 месяца. Будние дни, часто (но не всегда) в шахматном порядке 3x2: понедельник-среда-пятница, вторник-четверг. Обычно порядок зависит от сопряженности тем, где-то может быть и по паре недель по 3 раза + поправка на праздники
- Каждый поток веду лично, оказывая максимальное сопровождение по материалу; веду с удовольствием, в душе педагог; подача такая, будто надо объяснить детям, чтобы они могли объяснить это другим детям
- Можно и нужно задавать вопросы, которые вам кажутся дурацкими, дебильным и пр. Это только приветствуется! Для стесняшек - всегда пожалуйста в личку)
- Все материалы, видео и презентации, будут доступны и после окончания в формате read.
- Цена - 50к

Вы придете, конечно, за AB и получите это сполна, но уйдете на самом деле с гораздо большим - статистическим взглядом на мир и базовым методом науки в кармане!

Если есть желание - пишите мне в ЛС @smatrosov :) По курсу в начале вы будете общаться только со мной (!), далее подключу супругу в помощь по юр./фин.вопросам.

Все официально, есть договор, ЭДО, ИНН: 780535671209; остерегайтесь плохих людей, сам я первый никому не напишу, оплата только через интернет-эквайринг или счет для юр.лиц, никаких "на карту"!

Все отзывы, повторюсь, тут.

P.S. Те, кто писал мне ранее - о вас помню, вы записаны, свяжусь.
❤10
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍1
Привет, товарищи-статистики!

Обживаем Новый дивный мир аналитики в эпоху ИИ-агентов: не так давно в рамках должностных инструкций "агентная аналитика" стала официальной частью требований к DA/PA/DE, да в целом ко всем аналитикам. Поэтому кое-что понимать по этой части надо. 

Внутри моих команд формируются практики и инструменты, которые вот-вот станут ожидаемым стандартом работы. Этим всем и хочу поделиться, должно быть полезно:

1) Плагин Zoo в VS Code, через него по API подключаем LLM и можем работать с ней в режимах Ask / Code / Architect / Debug и тд.

Модель может быть либо внутренней, либо внешней, но с принятием ответственности (доп. согласшение) за утечку данных в последнем случае. Впрочем, тут может помочь согласованная безопасниками внутренняя прокси, которая будет маcкировать данные

2) MCP серверы как расширение для п.1. MCP = Model Context Protocol, - звучит-то как, - нужны, чтобы давать возможность нейронке ходить куда-либо и выполнять какие-либо действия в рамках вашей инфраструктуры, локальной или корпоративной. Скажем, делаем MCP сервер, который позволяет LLM’e смотреть репозитории в Git или задачи в таск-трекере, MCP для подключения к данным в БД. 

Пример: с подключенными MCP можно попросить агента в Zoo Code посмотреть новые задачи по своей колонке таск-трекера, а потом найти информацию по конкретным витринам данных, сделав SQL запрос согласно стандартнам, описанным в репе.

В гите можно сделать папку Skills (скиллы), в которой лежит инструкцией в .md формате (нейронки их любят) и вспомогательными файлами: примерами, шаблонами, скриптами. Внутри может быть написано, как выполнять повторяющуюся задачу, как оформлять и тд. Это просто по сути текст, которому следует модель. Задача скиллов в том, чтобы не давать модели одну и ту же инструкцию самостоятельно. Можно сделать целый репозиторий со скиллами для своей команды, чтобы все могли их переиспользовать и улучшать.

Вообще, MCP любят разворачивать и компании для клиентов: например, пускай есть такой сервис у ритейла, обращается к нему через агента с запросом “собери всё для пасты Алио и Олио”, он сам собирает тебе корзину и все. Никаких заходов в приложение / сайт. Что наталкивает на мысль об образовании в скором будущем доли цифровых клиентов, которые НЕ будут обращаться к приложению/сайту вообще. 

Если задуматься об этом поплотнее, то сегментов будет скорее два:
1) люди, которые любят использовать ЛЛМ-ассистенты в приложении / на сайтах для заказа
2) используют исключительно своих агентов, которые через MCP подключаются к любым сайтам / сервисам для заказа

Первым нужно давать токены, так как они будут работать с ИИ-шкой на стороне компании - последним приготовиться к своим датацентрам!, - вторым не нужно ничего кроме MCP. Отсюда же это сказывается на компаниях: в дата центры свои не смогут лишь все, увы. 

Подумайте над этим - готов ли ваш продукт/бизнес к этому?


3) (Опционально) накидываем Superwhisper, скачиваем Small модель, проговариваем masterpiece промнт, вставляем, закидываем нога на ногу и таска выполняется

На самом деле вы, конечно, должны будете сделать ее ревью, прежде чем сквозь гнев и отрицание сделать действие - пошевелить мышкой и отправить таску в done, а иначе вы не будете отличаться от "meat proxy", но таковы тяжести современного аналитика!

Если вы еще это не сделали, потратьте пару дней, чтоб разобраться
—

AI поменял рынок найма, безусловно. Также, как когда-то его поменял SQL, Python: сначала это было желательным в связке с Excel, а потом и вовсе требованием. Теперь в этот ряд, - замечу, не вместо всего этого, а вместе со всем этим, - добавились еще вот эти 2-3 пункта. За те же деньги, даже ветки сверху не накинут :)

И требовать все прочее имеет смысл: Ой-Ай позволяет быстро развернуть MVP (от идеи до релиза пара промтов), а вот продуктивизация - это совсем другое дело. Особенно весело, когда всё сломалось и надо ручками это починить.

Другое дело, что проверять это надо иначе, старая воронка с лайфкодингом и алгоритмами никуда не годится, это и без того насилие, так в эпоху ИИ еще и бессмысленное.

Как проверять? Пока идей тут у меня две:

1. Брат (в рамках разработки) недавно рассказал интересный способ проверки, который мне запал в душу: показываем некоторое уже написанное решение задачи (написанное немного странным мидлом), просим прокомментировать всё то, что кажется странным и пр. Конечно, это задачу можно даже сфотографировать и отправить в ИИ, вопросов нет, но в рамках живого диалога говорить и читать будет крайне сложно, тем более можно легко челенджить вопросами туда-сюда так, что ИИ не поспеет (но если, ЕСЛИ (!) кандидат найдет способ справится, значит, он крутой и его тем более надо брать)

2. Тестовое. Да-да, именно тестовое а-ля дизайн AB от и до. Но с двумя особенностями:
- Ограничение по времени, скажем, 3 часа (время идет с момента нажатия на какой-то форме "Старт")
- История промнтов с ИИ (как правило, ими можно делиться)

Скорее всего, как всегда, не все ответы будут правильными. Скорее всего промнты будут уровня masterpiece "сделай тестовое". Это - первый фильтр. Второй - это, конечно, защита решения, где могут быть неожиданные вопросы и пр., которые по-быстренькому уже нейронку не спросишь. 

Получается такой гибрид с кейсом. И с учетом того, что защита всегда важнее, то вес правильного ответа был бы, скажем, 30%, а защиты - 70%. Такое сочетание идейно вроде бы удовлетворяет найти прежде всего думающего человека, чем кодящего, так как никто уже кодить как раньше в ближайшее время не будет.

"Раньше было лучше", я понимаю, 3 часа это больше чем 1 час алгосов, зато как в жизни, где есть только ты, таска, ИИ и дедлайн. Защиту же можно, опять-таки, зачесть за разбор кейса, минуя этот этап как вариант. То есть по времени будет плюс-минус тоже самое, проверка вроде бы релевантна духу времени, трат нервов меньше.

Берите на вооружение, привыкайте к новой реальности. Успехов!

P.S. Этот пост вдохновлен работой и комментариями моих ребят, в частности Василисой и Василием
👍13🔥11❤3😱2