Аналитика пользователей
9 способов повысить точность прогноза дохода
И аналитики, и маркетологи, вне зависимости от сферы, в которой они работают, регулярно решают одну и ту же задачу: прогнозирование дохода. Просто формулируется задача, бывает, по-разному: “сколько мы заработаем к концу года?”, “что принесёт нам больше денег, фича 1 или фича 2?”, “стоит ли нам выходить на этот рынок?” и так далее.
И аналитики, и маркетологи, вне зависимости от сферы, в которой они работают, регулярно решают одну и ту же задачу: прогнозирование дохода. Просто формулируется задача, бывает, по-разному: “сколько мы заработаем к концу года?”, “что принесёт нам больше денег, фича 1 или фича 2?”, “стоит ли нам выходить на этот рынок?” и так далее.
В этой статье Василий Сабиров, главный аналитик devtodev, собрал 9 советов, которые помогут вам повысить точность прогноза дохода.
Совет 1. Используйте временные ряды.
Трудно (а чаще всего попросту невозможно!) предсказать будущий доход, не зная дохода за прошлые временные периоды. Поэтому чаще всего у вас есть данные о том, как доход, который вы предсказываете, вёл себя в прошлом. А значит, вы имеете дело с временными рядами.
И здесь есть несколько методов, на которых хотелось бы остановиться:
Тренды и сезонность
Вообще, про них мы уже писали отдельный лонгрид. А сейчас я хочу дополнить несколькими практическими советами:
Будьте осторожны с полиномиальными трендами. Они хорошо (иногда лучше всех других методов) повторяют имеющиеся данные. Но когда дело доходит до прогноза — их штормит. В зависимости от степени полинома, хвост графика (собственно, прогноз) может загибаться в ту или иную сторону. И чем выше степень, тем выше гибкость графика и вероятность того, что он загнётся не туда.
Лучше всего помогает понять динамику простой линейный тренд. Да, это так. Он просто говорит, растёт ваш доход или падает, а также указывает, с какой скоростью он это делает. Чтобы понять, куда вы движетесь — этого достаточно. Чтобы сделать точный прогноз — едва ли.
Разбивайте временной ряд на отрезки. У всего есть жизненный цикл, и у онлайн-проектов тоже. Соответственно, будет опрометчиво делать прогноз, выстраивая линейный тренд на всех данных с самого начала жизни проекта: слишком много всего уже успело в нем измениться. Будет лучше выделить на графике несколько этапов, понять причины перехода из одного этапа в другой, а прогноз сделать в первую очередь на основании данных по последнему этапу. Помните себя на интервале 5-10 лет назад? Далеко не каждый из вас тогда мог представить себя образца 2017 года. И пусть это будет иллюстрацией необходимости разбиения временного ряда на отрезки.
Авторегрессия
Практика показывает, что это более точный метод, чем простое использование трендов и сезонности. По сути, вы строите регрессионную модель дохода на основании значений этого же дохода за один, два, …, N предыдущих периодов.
Таким образом вы можете найти скрытые закономерности в данных, которые не смогли найти тренды с сезонностью. Чем больше периодов вы закладываете в регрессию, тем на более долгий срок вы сможете сделать прогноз.
Допустим, если вы имеете данные по доходу за каждый из дней прошлого года, то вы вполне можете строить прогноз на каждый из 30 дней будущего месяца, добавив в регрессионную модель 30 переменных.
ARMA и ARIMA
Эти модели являются развитием модели авторегрессии. Собственно, авторегрессия входит в них, и “AR” в их названиях обозначает как раз её. А “MA” обозначает скользящее среднее (moving average), и это говорит нам о том, что данные модели ещё глубже проникают в данные, лучше распознавая их внутренние закономерности.
В Excel реализовать их уже не так просто (хотя уже есть соответствующие надстройки), но по-прежнему возможно. Лучше всего, конечно, воспользоваться статистическими инструментами. Я бы рекомендовал SPSS или Statistica, но моя рекомендация базируется не более чем на опыте личного использования.
Как правило, ARMA и ARIMA дают прогнозы более точные, чем простая авторегрессия, но прирост точности уже не так велик, как у авторегрессии по сравнению с трендами и сезонностью. Поэтому если вам нужен быстрый прогноз, то в сторону ARMA и ARIMA можно не копать.
Совет 2. Не забывайте о регрессионных моделях.
Регрессия — вообще, метод довольно универсальный. Его преимущество перед временными рядами в том, что в случае временных рядов вы делаете прогноз на основании значений только лишь дохода за предыдущие периоды времени, а в регрессионных моделях вы рассматриваете ещё и другие метрики.
Существует несколько способов посчитать доход. Например, доход — это аудитория, умноженная на ARPU (доход с пользователя). Аудитория — количественная метрика, она говорит о масштабе проекта, на неё сильно влияет трафик. А доход с пользователя — метрика качественная, говорящая о том, насколько ваши пользователи готовы платить. И эти метрики можно и нужно рассматривать и прогнозировать отдельно: они ведут себя по-разному, на них влияют разные факторы.
Похожие рассуждения можно проделать, рассмотрев и другую формулу дохода: платящие пользователи, умноженные на доход с платящего (ARPPU). Да и вообще, теоретически можно “скормить” регрессионной модели все имеющиеся у вас метрики, пускай сама всё считает и находит закономерности.
Буквально несколько советов:
- Если это возможно (в Excel — не всегда), то включайте в модель только значимые переменные. Если вы даёте на вход сто метрик, то необязательно все сто должны участвовать в итоговом уравнении.
- Старайтесь, чтобы метрики, которые вы даёте на вход, были максимально независимы друг от друга, слабо коррелировали. В противном случае вы рискуете получить неустойчивый результат (который хорошо повторит ваши исходные данные, но будет выдавать что-то странное, когда речь пойдет о прогнозе).
- Изучайте остатки. Если вы изучали регрессию в вузе, то наверняка помните страшное слово “гетероскедастичность” — речь о ней самой. Если вы всё сделали правильно, то взглянув на график остатков, вы ничего не сможете сказать: там будет непредсказуемая случайная величина с математическим ожиданием, равным нулю. Если же вы видите в остатках какую-то закономерность (допустим, синусоиду), то возможно вы как раз нарвались на гетероскедастичность, то есть не учли дополнительную логику, по которой распределены данные. И в этом случае вам надо просто изменить уравнение регрессии, добавив в него неучтённое уравнение (в нашем случае — синусоиду).
Совет 3. Стройте кастомные модели под свой проект.
На временных рядах и регрессии свет клином не сошёлся, и вы всегда можете строить свои модели, учитывающие логику вашего продукта.
Вот вам пример модели, которую люблю строить я:
- Мы можем посчитать, сколько пользователей в данный момент проживает свой первый, второй, третий и т.д. месяц в проекте.
- Мы можем посчитать процент пользователей, которые остаются активными и на второй месяц. А также процент перехода из второго месяца в третий, и так далее.
- Наконец, мы можем посчитать, сколько в среднем платит пользователь, уже N-й месяц живущий в проекте, в течение этого месяца. Иначе говоря, ARPU месяца.
Этого достаточно, чтобы построить модель: вы будете знать, как ваши пользователи “перетекают” из месяца в месяц и сколько они платят. К слову, необязательно месяц: можно год, неделю или теоретически даже день (хотя день я не пробовал, надо признать) — любой значимый для вас период, в зависимости от того, сколько пользователи живут в вашем проекте.
С помощью такой модели вы легко можете планировать вливания трафика, надо лишь увеличить число новых пользователей в конкретный месяц.
Совет 4. Рассчитывайте окупаемость своего трафика.
Очень часто, особенно на ранних стадиях, проект целиком зависит от новых пользователей — если они есть, то проект зарабатывает. Если их нет — проект осушается.
А потому все предыдущие советы будут бесполезны, если вы не знаете, когда и сколько трафика будет влито.
Поэтому будет хорошо, если вы сможете построить кривую накопительного дохода вашего трафика по дням: сколько денег приносит в среднем ваш пользователь за первый день, за первую неделю, две, три недели, месяц и так далее. Это та самая величина, пределом которой является LTV. Зная накопительный доход, вы сможете и точнее предсказывать выручки в зависимости от того, когда и сколько пользователей вы получили, и рассчитывать окупаемость трафика.
Совет 5. Применяйте экспертное прогнозирование.
Речь в основном касается тех случаев, когда вы планируете изменения в проекте, которые могут существенно сказаться на выручке (что не исключает применения этого метода и для случая, когда изменений не планируется).
Допустим, готовите вы к выходу новый контент, новые функции, новый вид подписки — что угодно. Хорошим вариантом будет опросить тех, кто причастен к этому изменению (менеджер проекта, геймдизайнер, продюсер, маркетолог), как, по их мнению, это скажется на выручке. Кому, как не им, давать оценку этой выручке? Кому? Конечно, вам, как аналитику. Вы можете базировать свой прогноз на их экспертной оценке, дополнив её строгими расчётами.
В принципе, возможен даже такой вариант (я его применял, и он давал хорошие результаты). Вы каждый месяц опрашиваете определённую группу коллег, относительно того, чему будет равен доход проекта на следующий месяц. Накопив данные об их оценках и о фактическом доходе за несколько месяцев, вы сможете впоследствии дать их оценкам веса (а некоторые, быть может, и исключить вовсе). К примеру, вы можете заметить, что продюсер всегда даёт завышенный прогноз, а маркетолог, наоборот, слишком скромен в своих оценках. И истина будет где-то посередине, а где именно — покажут те самые веса.
К тому же, это хороший способ узнать о тех изменениях, которые планируются в проекте, буквально из первых уст.
Совет 6. Делайте ставки.
К слову о вовлечении коллег в процесс. Это вовлечение можно усилить, добавив в него элемент геймификации.
Я не буду вас учить, как делать ставки, вы справитесь и без меня. Скажу лишь, что эта игра, если играть в неё регулярно с ключевыми сотрудниками, повышает понимание дохода как главного KPI продукта и позволяет каждому лучше понять логическую взаимосвязь между его действиями и значением показателя.
Вам же, как аналитику, эта игра будет полезна, потому что она стимулирует к тому, чтобы разобраться, почему ваш прогноз не сошёлся с реальностью: может быть, вы учли не все факторы?
Совет 7. Анализируйте все изменения.
Я убежден, что если анализировать все изменения от самого начала жизненного цикла продукта до его текущего состояния, вы сможете лучше понять ваш проект, ваших пользователей, структуру вашего дохода. Поэтому я рекомендую анализировать все изменения, вести лог анализа каждой вышедшей фичи, чтобы впоследствии принимать более точные, взвешенные и финансово оправданные решения.
Рано или поздно вы начнёте замечать, что некоторые изменения в продукте сильно повышают доход и сопутствующие метрики, а некоторые не приносят ничего. Впоследствии вы сможете точнее прогнозировать доход от каждой новой фичи, сопоставляя её с предыдущими аналогами.
Уместно будет вспомнить теорему Байеса. Погрузившись в неё и в байесовские методы достаточно глубоко, вы осознаете две новости, хорошую и плохую.
- Хорошая. Если учесть все “но” при формировании прогноза дохода, то прогноз станет гораздо точнее.
- Плохая. Все “но” учесть невозможно.
Но отчаиваться не стоит, а стоит учитывать те факторы, которые вы можете выделить и формализовать. Набор факторов будет расти, будет расти и сложность прогноза, но вместе с тем повысится и его точность.
Допустим, вы делаете прогноз на результат футбольного матча. Сначала вы просто даёте эмоциональную оценку: “Барселона” выиграет у “Реала” со счётом 3-0. “Барселона” почему-то не выигрывает, и вы начинаете анализировать. Прогноз состоит из множества факторов: текущее положение команд в таблице, история их встреч, фактор хозяев поля, травмированные игроки, мотивация в чемпионате и так далее. Со временем ваши прогнозы, основанные на большем количестве факторов, станут пусть немного, но точнее. По сути, вы сами обучаете свою нейросеть: анализируя ошибки и разбирая их подробнее, вы добавляете к прогнозу всё больше факторов и постепенно повышаете его точность.
Важно понять, что прогнозирование — процесс итеративный. Делая прогнозы, оценивая и разбирая их, вы учитесь прогнозировать, глубже погружаетесь в предметную область, становитесь экспертом.
Совет 8. Комбинируйте методы.
Если бы эта статья была тестом, то правильным ответом было бы “всё вышеперечисленное”.
Комбинаций можно придумать очень много, и я не хочу вас ограничивать. Лишь опишу ту комбинацию, которую применяю я, которой я доволен:
- прогнозируете отдельно аудиторию и ARPU:
- используете методы временных рядов;
- прогноз по аудитории корректируете исходя из данных о вливаниях трафика;
- прогноз по ARPU корректируете исходя из планируемых изменений в продукте (на основании экспертной оценки);
- перемножая прогнозы по аудитории и ARPU, вы получаете прогноз по доходу;
- его также можно скорректировать на основании экспертной оценки планируемых изменений (с учётом того, что все изменения анализируются в деталях), а также на основании кастомной модели перетока от месяца к месяцу.
Надеюсь, мои советы помогут вам сделать ваши прогнозы точнее. Желаю вам, чтобы вы точно предсказывали будущее значение дохода, а сам он только лишь рос.
P.S.
И последним, девятым советом я хочу порекомендовать несколько интересных книг на тему:
- Нейт Сильвер “Сигнал и шум”. Здесь как раз можно подробно прочитать о байесовском подходе к прогнозированию и ознакомиться с огромным количеством примеров, от бейсбола до политики. В своё время я описал свои размышления по поводу этой книги в отдельной статье.
- Эрик Сигель “Просчитать будущее”. С теоретической точки зрения эта книга менее интересна, чем “Сигнал и шум”, но мне она нравится своими примерами. Подзаголовок книги гласит: “кто кликнет, купит, соврёт или умрёт”, и поверьте, в книге все эти примеры расписаны очень подробно.
- Василий Сабиров “How to analyze the promotional activities in games”. Скромно порекомендую и свою книгу тоже. И пусть вас не смущают ни promotional activities, ни games в названии: в книге в деталях изложен процесс анализа изменений в продукте. Вспомним совет 7 из статьи: чем точнее вы анализируете изменения, тем точнее вы предсказываете будущий доход.
-
Видео и подкасты для разработчиков1 месяц назад
Lua – идеальный встраиваемый язык
-
Новости1 месяц назад
Poolside, занимающийся ИИ-программированием, привлек $500 млн
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.40
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.41