Электронная библиотека » Василий Сабиров » » онлайн чтение - страница 13


  • Текст добавлен: 27 декабря 2020, 09:05


Автор книги: Василий Сабиров


Жанр: Отраслевые издания, Бизнес-Книги


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 13 (всего у книги 20 страниц)

Шрифт:
- 100% +
Как найти сезонность?

Вашему вниманию предлагается подробное описание алгоритма расчета сезонности (на примере нахождения сезонности по дням недели).

Очистка данных от выбросов

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

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

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

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

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

Расчет автокорреляции

Итак, второй этап расчетов, который применяется к уже очищенным данным, – это расчет лага автокорреляции.

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

Для ее расчета в Excel существует стандартная функция – КОРРЕЛ (CORREL), которая рассчитывает коэффициент автокорреляции между двумя диапазонами данных. Эти диапазоны и являются аргументами функции и смещены друг относительно друга: если мы ищем коэффициент автокорреляции 1-го порядка, то первый диапазон включает значения временного ряда, начиная с первого и заканчивая предпоследним, а второй диапазон содержит все значения, начиная со второго. Таким образом, мы получаем два диапазона, смещенные друг от друга на один день.

Для поиска коэффициента 2-го порядка диапазоны должны быть смещены на два дня – первый не включает последние два значения временного ряда, второй не включает первые два.

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

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

А если этот коэффициент максимален для 7-го порядка, это значит, что ряд содержит циклические колебания с периодичностью в 7 дней.


В нашем примере наибольший коэффициент проявляется как раз для автокорреляции 7-го порядка. Это говорит о том, что в данном временном ряду присутствует недельная сезонность

Расчет коэффициентов линейного тренда

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

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

Линейный тренд строится по уравнению вида y = ax + b, где a и b – коэффициенты, а x – порядковый номер дня (в примере это колонка D). Для расчета уравнения нужно вычислить два коэффициента.

Сделать это можно также стандартной функцией Excel – ЛИНЕЙН (LINEST), аргументами которой являются два массива данных: исследуемая метрика и порядковые номера дней.

Используя эту формулу как функцию массива (Ctrl + Shift + Enter), мы получаем два коэффициента, которые затем подставим в уравнение.

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

Построение линии тренда

Для построения линии тренда используем рассчитанные ранее коэффициенты – a и b. Единственным изменяемым параметром уравнения будет х – порядковый номер дня. Благодаря этому линия тренда может быть продлена на несколько дней вперед, в нашем примере это семь дней (столбец I). Так мы получаем дальнейшую динамику изменения метрики.

Расчет коэффициентов сезонности

Следующий шаг для построения прогноза по линейному тренду – расчет коэффициентов сезонности.

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

Наложение сезонности на тренд и построение прогноза

Чтобы завершить прогноз, необходимо «наложить» на тренд сезонность.

Для этого нужно умножить каждое значение линии тренда на коэффициент сезонности соответствующего дня (столбец L).

Это приведет график линии тренда к привычному виду – с регулярными колебаниями в зависимости от дня недели.

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


График из расчетного файла: ярко выражена недельная сезонность на фоне падающего линейного тренда

Зачем нужно знать сезонность

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

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

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

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

Советы по прогнозированию дохода

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

Совет 1. ARMA, ARIMA

О сезонности мы достаточно много поговорили в предыдущем разделе, а здесь давайте обратимся к методам ARMA и ARIMA.

Эти модели являются развитием модели авторегрессии. Собственно, авторегрессия входит в них, и AR в их названиях как раз ее и обозначает. А MA обозначает скользящее среднее (Moving Average), и это говорит нам о том, что данные модели еще глубже проникают в данные, лучше распознавая их внутренние закономерности.


Пример реализации модели ARIMA в пакете Statistica


В Excel реализовать их уже не так просто (хотя уже есть соответствующие надстройки), но по-прежнему возможно. Лучше всего, конечно, воспользоваться статистическими инструментами. Я бы рекомендовал SPSS или Statistica, но моя рекомендация базируется всего лишь на опыте личного использования. Также, конечно, есть соответствующие пакеты на R и Python.

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

Совет 2. Не забывайте о регрессионных моделях

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

Случай из жизни

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

Но что-то пошло не так. А именно то, что я был прерван одним из чиновников, который, надо сказать, довольно возмущенно сказал: «Погодите! А почему модель у вас регрессионная? У нас ведь город прогрессивный, и мы смотрим в будущее, а вы тут о регрессе, понимаешь ли!»

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

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

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


Пример реализации линейной регрессии на Python


Буквально несколько советов.

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

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

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


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


Совет 3. Стройте кастомные модели под свой проект

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

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


– Мы можем посчитать, сколько пользователей в данный момент проживает свой первый, второй, третий и т. д. месяц в проекте.

– Мы можем посчитать процент пользователей, которые остаются активными и на второй месяц. А также процент перехода из второго месяца в третий и т. д.

– Наконец, мы можем посчитать, сколько в среднем платит пользователь, уже N-й месяц живущий в проекте, в течение этого месяца. Иначе говоря, ARPU месяца.


Этого достаточно, чтобы построить модель: вы будете знать, как ваши пользователи «перетекают» из месяца в месяц и сколько они платят. К слову, необязательно месяц: можно год, неделю или теоретически даже день (хотя день я не пробовал, надо признать) – любой значимый для вас период в зависимости от того, сколько пользователи живут в вашем проекте.

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

Совет 4. Рассчитывайте окупаемость своего трафика

Очень часто, особенно на ранних стадиях, проект целиком зависит от новых пользователей – если они есть, то проект зарабатывает. Если их нет – проект осушается.

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

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


Соотношение между накопительным доходом, CPI и LTV


Совет 5. Применяйте экспертное прогнозирование

Речь в основном касается тех случаев, когда вы планируете изменения в проекте, которые могут существенно сказаться на выручке (что не исключает применения этого метода и для случая, когда изменений не планируется).

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

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

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

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

Совет 6. Делайте ставки

К слову, о вовлечении коллег в процесс. Это вовлечение можно усилить, добавив в него элемент геймификации.

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

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

Совет 7. Анализируйте все изменения

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

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

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


– Хорошая. Если учесть все «но» при формировании прогноза дохода, то прогноз станет гораздо точнее.

– Плохая. Все «но» учесть невозможно.


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

Допустим, вы делаете прогноз на результат футбольного матча. Сначала вы просто даете эмоциональную оценку: «Барселона» выиграет у «Реала» со счетом 3:0. «Барселона» почему-то не выигрывает, и вы начинаете анализировать. Прогноз состоит из множества факторов: текущее положение команд в таблице, история их встреч, фактор хозяев поля, травмированные игроки, мотивация в чемпионате и т. д. Со временем ваши прогнозы, основанные на большем количестве факторов, станут пусть немного, но точнее. По сути, вы сами обучаете свою нейросеть: анализируя ошибки и разбирая их подробнее, вы добавляете к прогнозу все больше факторов и постепенно повышаете его точность.

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

Совет 8. Комбинируйте методы

Если бы этот раздел был тестом, то правильным ответом было бы «все вышеперечисленное».

Комбинаций можно придумать очень много, и я не хочу вас ограничивать. Лишь опишу ту комбинацию, которую применяю и ею доволен.


– Прогнозируете отдельно аудиторию и ARPU:

– используете методы временных рядов,

– корректируете прогноз по аудитории, исходя из данных о вливаниях трафика,

– корректируете прогноз по ARPU, исходя из планируемых изменений в продукте (на основании экспертной оценки).

– Перемножая прогнозы по аудитории и ARPU, вы получаете прогноз по доходу.

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

Совет 9. Контрольная группа

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


Выбор контрольной группы


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

Какой из методов применять – выбор за вами. Если вы любите математику, применяйте математические методы. Если с математикой не дружны, то что вы делаете в аналитике вообще (зачеркнуто) применяйте контрольную группу. А по возможности делайте и то, и другое. Результаты совпадают – замечательно. Результаты не совпадают – разбирайтесь почему.

Со временем ваши прогнозы станут точнее и детальнее.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Следующая
  • 3.8 Оценок: 5

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации