Применение контрольных карт Шухарта для количественного анализа трафика (и любых данных вообще)

Что случается, когда математик работает специалистом по контекстной рекламе.

Всем привет, меня зовут Юрий Болотов. Я работаю специалистом по контекстной рекламе в студии «АлаичЪ и Ко».

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

  • средних чеков;

  • количества продаж в офлайн-магазине;

  • оповещений о падении трафика с контекста;

  • оценки эффективности изменений в рекламной компании;

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

Также постараюсь ответить на вопрос «и чё?» (зачем это все надо).

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

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

Собственно, описанный ниже метод и позволяет узнать, где особые случаи, а где системные.

Метод этот — контрольные карты Шухарта. Это ГОСТ Р 50779.42-99. Этот метод очень точный. Всего в 0.3% случаев (3 на 1000) есть риск, что график выйдет за границы, когда никаких особых причин нет.

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

Новые посетители были взяты лишь из расчета, что они еще не знают про организацию и могут быть заинтересованы в услугах в отличии от постоянно посещающих.

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

(Не обращайте внимания на то, что в таблице данные почти годовалой давности, эта публикация очень долго пролежала «в столе» перед тем, как мы решили ее опубликовать).

Теперь надо нам надо посчитать скользящий размах. Это разница между 1 и 2 значениями, 2 и 3, 3 и 4 и т. д.

Так, разница между 1 и 2 значениями у нас 581-486=95, разница между 2 и 3 — 585-581=4 и т. д. В результате получаем такую таблицу:

Следующим шагом нам надо посчитать средние значения посетителей (B столбец) и скользящих размахов (C столбец).

Среднее посетителей = (486+581+...+566)/21 = 564 или формулой в таблице =СУММ(B1:B21)/21.

Среднее размахов = (95+4+...+24)/20 = 40,8 (=СУММ(C2:C21)/20).

Теперь берем наш средний размах и умножаем на 3,267 (это постоянное число и не зависит от других параметров. Можете поверить мне, можете проверить по таблице в ГОСТе).

40,8*3,267=133,29. Это число называется верхней контрольной границей скользящих размахов.

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

Последним шагом в расчетах мы найдем верхнюю и нижнюю контрольные границы нашей карты.

Верхняя контрольная граница (UCL) = Среднее значение (564) + Среднее значение размахов (40,8) умноженное на 2,66 (это тоже постоянное значение, взятое из таблиц в ГОСТе).

UCL=564+40,8*2,66=672.

Нижняя контрольная граница (LCL) = 564-40,8*2,66=455.

Для наглядности построим график:

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

Долго ждать не пришлось.

Уже 11-го числа график вышел за верхнюю границу. «Вот оно!» — подумал я. «Значит что-то случилось. Просто так этого быть почти не могло».

Когда я построил отчёт в Метрике по источникам перехода, то сразу понял, что же именно случилось. Оказалось, что 10 числа была опубликована статья-интервью на Спарке.

Именно это событие и было особым случаем, который контрольные карты должны выявлять.

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

А теперь один реальный кейс по контекстной рекламе.

В конце ноября 2017 года к нам на контекстную рекламу пришел крупный интернет-магазин. Для крупных клиентов с большими бюджетами (там, где трудозатраты имеют смысл) я для себя строю карты по основным метрикам. Обычно это общее количество визитов, визиты по основным рекламным каналам, CPL и % конверсии (по нему очень удобно определить проблемы с оформлением заказов на сайте).

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

В феврале я решил, что пора построить карту и следить за показателями. Реклама к этому моменту работала стабильно, системы аналитики были настроены и казалось, что ничего не предвещает проблем.

По итогам февраля я взял данные по визитам за месяц, посчитал аналогично скользящие размахи.

Посчитал:

  • среднее значение — 660

  • средний размах — 72

  • верхнюю границу — 852

  • нижнюю границу — 470

Построил график (хотя на практике удобней просто в таблице выделять цветом данные, выходящие за пределы)

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

Уже 16 марта график вышел за нижнюю границу. А т. к. 17-18 были выходные, то поиск проблемы начался лишь 19-ого числа.

Пересмотрев отчеты в метрике и рекламных кабинетах, я обнаружил следующую картину:

Уже потом выяснилось, что в 16 числа была переделана мобильная версия сайта и туда просто забыли установить коды аналитики.

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

Представьте, что у вас есть производство каких-нибудь мелких изделий. Вы решаете, что надо замерять количество бракованных деталей по каждому мастеру отдельно. Строите карты, высчитываете границы и начинаете следить изо дня в день.

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

Вы выходите из своего офиса, спрашиваете людей и выясняется, что мастер пришел на работу немного «под мухой». И в таком состоянии у него руки не трясутся, он спокойно и невозмутимо делает свою работу.

Что же это получается? Вместо того, чтобы оштрафовать мастера или уволить по статье, надо разрешить ему немного принимать утром на грудь! :)

Это, конечно, юмор (с бесконечным уважением к мастерам). Надеюсь, пример «как можно посмотреть на ситуацию с другого ракурса» понятен.

Хорошего дня и спасибо, что прочитали! Буду рад пообщаться в комментариях.

0
33 комментария
Написать комментарий...
Игорь Ходырев

И? "Уже потом выяснилось, что в 16 числа была переделана мобильная версия сайта и туда просто забыли установить коды аналитики." - а без этих карт вы в метрику не смотрите? Там и без карт таро видно, что 16 траф просел. Даже не 16-го, а чуть раньше. В производстве согласен, но тут все за уши притянуто.

Ответить
Развернуть ветку
Юрий Болотов

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

Ответить
Развернуть ветку
Илья Дуденков

да даже на производстве знай записывай в базу (эксель и т.д.) и строй визуализацию (график). любая аномалия будет видна на графике. если не видна - это не аномалия
тут всё притянуто за уши

Ответить
Развернуть ветку
Юрий Болотов

Можете сказать как будете отличать аномальное поведение графика от обычных колебаний? Или после каждого проседания графика панику разводить? Я просто не очень понимаю как вы по ощущениям будете решать проблемы

Ответить
Развернуть ветку
Юрий Болотов

Хотя я не буду отрицать, что в случае с блогом Саши это действительно притяну для демонстрации. И это надо в первую очередь бизнесу самому, а не мне. Я всего для 3ех клиентов слежу так за данными

Ответить
Развернуть ветку
Никита Антонов

Хорошая статья! Саша молодец, что начал прокачивать медийно не только себя, но и сотрудников. Получается клево:)

Ответить
Развернуть ветку
Александр Алаев
Автор

Спасибо! Так мы давно уже это... Все свежие кейсы публикуются на разных площадках от имени моих ребят. В том числе на моем блоге про seo последние посты писали специалисты seo-отдела.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Иван Вундермахер

Астрологи объявили неделю годных статей на vc, а то последние пол года как не зайдёшь, так очередная поебота рерайченая от очередного нонейм агенства

Ответить
Развернуть ветку
Юрий Болотов

не сказал бы, что это статья про контекстную рекламу. Основное применение карт Шухарта это скорее производство. Причем использовали их на крупных предприятиях типа мотороллы и джэнерал электрик

Ответить
Развернуть ветку
Nadiyah Baltacheva

мы используем карты Шухарта для управления инцидентами Service Desk

Ответить
Развернуть ветку
Юрий Болотов

Интересно узнать помогли ли они на практике Вам

Ответить
Развернуть ветку
Anton Chetverikov

Ну, интересно конечно, но как-то бесполезно. На действительно важные отрицательные изменения приходят уведомления (сайт не работает, средства закончились и тому подобное), а на положительные как правило маркетолог знает, что именно произошло (вышла статья, обзор, промо). Руководителю в целом и не надо разбираться в этих отклонениях, у него другие показатели.
Плюс, графики метрики в целом отлично визуально показывают любые отклонения, которые на месте можно проанализировать не теряя времени.
А вот на действительно непонятные вещи графики не дают ответ. А именно - рост популярности бренда. Почему вырос трафик? Запросов стало больше. Почему больше запросов? Потому что публикуются обзоры, отзывы, статьи, ведётся работа с партнёрами, блогерами, работают медийные компании. А что конкретно повлияло, что отработало лучше, что выгоднее закупать? Хз.

Ответить
Развернуть ветку
Юрий Болотов

Далеко не на все отрицательные изменения приходят уведомления. Например мой коллега из СЕО недавно писал статью про аффилированые сайты и там яндекс не то что не уведомляет, а вообще отрицает такое явление. Так что не всегда всё очевидно.
Да и с положительными изменениями не всегда маркетолог в курсе (надеюсь с этим спорить никто не станет).
Ну и еще раз скажу
Я согласен, что по метрике и так почти всегда очевидны проблемы. График метрики тут скорее для примера показан чтобы рассказать как считать это. А вот где и как применить решать уже управленцам.

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

Ответить
Развернуть ветку
Danil Tsaytler

а вам несложно будет сослаться на статью? Очень любопытно почитать.

Ответить
Развернуть ветку
Юрий Болотов
Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Алексей Ткаченко

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

Ответить
Развернуть ветку
Никита Шультайс

1. Метод учитывает вариант когда траффик постоянно растет?

Например раз в неделю увеличиваем рекламный бюджет в Директе на 5% и соответственно идет постоянный рост.

Плюс есть всплески от разовых акций.

2. За какой период брать данные, чтобы они были статистически достоверными?

3. Будет ли видно если идет несколько всплесков подряд?

Например, мы построили базовую модель.
Далее разовая реклама дала отклонение в 50% от верхней границы.
Потом еще одна реклама дала отклонение в 50% от верхней границы.
Третья реклама дала отклонения в 5% от верхней границы, но мы этого не видим, так как данные от первых двух всплесков изменили верхнюю границу.

Ответить
Развернуть ветку
Юрий Болотов

Добрый вечер.
1) Тут надо разобраться за какой метрикой следим, когда увеличиваем бюджет на 5%? Если следим просто за количеством трафика, то он, конечно, рано или поздно перевалит за верхнюю границу. Хорошо это или плохо для Вас? Не очень понятно.

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

2) Это очень хороший вопрос, на который я тоже пытался найти ответ. К сожалению прямого ответа найти не удалось, но в самом ГОСТе в примере берется выборка из 10 проб (ну или в нашем случае дней) (скрин таблицы из ГОСТа прикладываю).

3) Не очень понял "в 5% от верхней границы, но мы этого не видим, так как данные от первых двух всплесков изменили верхнюю границу."
Если за границу вышло, то мы это увидим.
Тут бы какой-то живой пример что мы отслеживаем, что дала разовая реклама. А если она разовая, то исключать или делать ее постоянной никто не будет видимо, а тогда зачем нам оно? В общем 3ий вопрос я не очень понял

Ответить
Развернуть ветку
Никита Шультайс

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

В таких случаях нужно "очищать" трафик от запущенных нами рекламных кампаний, иначе упоминание в соц. сетях затеряется.

Построил три графика для наглядности:

Ответить
Развернуть ветку
Никита Шультайс

Третий график

Ответить
Развернуть ветку
Юрий Болотов

Тут штука такая. При построении карт могут возникать ошибки первого и второго рода (это отдельная большая тема и я решил, что еще и ее будет уже лишним расписать).
В целом про ошибки первого и второго рода написано много и они разные бывают.
В нашем случае ошибка первого рода, это когда график вышел за границы, но никакого события при этом не случилось. Шанс, что такое случится 0,3% (т.е. 3 раза на 1000)

Ошибка второго рода это как раз может быть Ваш случай, когда особое событие случилось, но график остался в границах.

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

Или по другому, если график вышел за границу, то с вероятностью в 99,7% что-то случилось. Но в обратную сторону не работает это

Ответить
Развернуть ветку
Никита Шультайс

Спасибо большое за статью и комментарии!

Ответить
Развернуть ветку
Никита Шультайс

Второй график

Ответить
Развернуть ветку
Юрий Болотов

т.е. тут границы построены по естественному трафику, а на графике он с рекламным? Так не пойдет. Если на графике трафик с рекламой, то и границы мы с ним строим. Либо график и границы без рекламы.

Ответить
Развернуть ветку
Георгий Станков

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

Ответить
Развернуть ветку
Юрий Болотов

Повторю и тут свой ответ. По какому критерию будете решать явное это отклонение или обычное колебание графика? По ощущениям?

Ответить
Развернуть ветку
Дима Корно

Тут, возможно, дело немного в другом. В таких масштабах все критичные отклонения будут и правда видны в метрике. А колебания в ~10% в этом случае выльются в несколько десятков пользователей, что не критично, поэтому и на глаз определить можно.
А когда небольшой скачок или падение в графике уже соответствует на порядок большему объему пользователей, то, вероятно, уже стоит определить границы.

Ответить
Развернуть ветку
Юрий Болотов

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

Ответить
Развернуть ветку
Прочел это-потратил время зря

А для котировок валют эти карты годятся?

Ответить
Развернуть ветку
Юрий Болотов

Можно попробовать. Только что это даст? Исключить негативное событие или воспроизводить положительное рядовому гражданину невозможно. Тут все таки идея в том, что после выхода за контрольную границу надо что-то изменять.

Ответить
Развернуть ветку
Прочел это-потратил время зря
Только что это даст?

смену тренда возможно

Ответить
Развернуть ветку
Прочел это-потратил время зря
Только что это даст?

смену тренда

Ответить
Развернуть ветку
Юрий Болотов

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

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
30 комментариев
Раскрывать всегда