Бизнес-анализ данных GetCourse: Прогнозные модели.
Здравствуйте. Мы продолжаем серию рассказов об отчетности для платформы GetCourse, реализованной в среде MS Power BI на основе данных mybi connect.
Наши отчеты содержат боевой набор описательных аналитик – от базовой агрегации данных по заказам, менеджерам и пользователям, сравнительного анализа до комплексных моделей когортного анализа и Парето-классификации.
В развитии инструмента мы сделали важный шаг вперед – сегодняшняя статья знаменует переход от описательной аналитики к предсказательной (подробнее о видах аналитики можно почитать, например, здесь). Проще говоря, мы реализовали прогноз имеющихся в модели исторических данных. Если быть точным, то несколько видов проноза, чтобы у пользователей была возможность выбора модели в зависимости от характера располагаемых данных. Также мы сделали прогноз динамическим, то есть настраиваемым при помощи различных фильтров и срезов – по всем канонам Business Intelligence. Но обо всем по порядку…
Прогноз данных GetCourse – основная цель
Статья традиционно разделена на две части – практическую и техническую. Сначала мы разберем на примерах, как различные виды прогнозов могут быть полезны при анализе бизнеса на платформе GetCourse. Затем мы покажем, как эти виды прогнозов реализованы в нашем отчете – посмотрим на модель данных и расчетные меры.
Почему несколько видов прогнозов? Запрос в любую популярную поисковую систему по поводу прогнозирования данных в среде MS Power BI выдаст множество примеров использования стандартных (встроенных) средств прогнозирования. С них мы и начнем, но ими мы не ограничимся. Одной из целей создания и описания инструмента мы видим погружение пользователей в общую логику прогнозных моделей. Мы хотим, чтобы воспользовавшись нашим отчетом, вы могли в дальнейшем самостоятельно определять применимость той или иной модели к конкретным данным, проверять качество этих моделей, а главное – должным образом интерпретировать результаты (вне зависимости от программной среды, в которой модель сформирована).
При этом, в этой статье не будет ни одной формулы из курса математической статистики (разве что в DAX-коде, когда мы будем разбирать меры в модели данных). Да, вы верно поняли, мы стремимся не погрузить вас в расчеты прогнозных показателей, а на примере отчета GetCourse продемонстрировать как читать некоторые прогнозные модели и на что обращать внимание при проверке их применимости и качества.
Более того, мы хотим поставить под сомнение бытующее утверждение о том, что статистический аппарат неэффективен для быстрых бизнес-решений. В своей культовой книге “Думай медленно… решай быстро” нобелевский лауреат Даниэль Канеман описывает две системы мышления при принятия решений: быструю и интуитивную, а также медленную и аналитическую. Мы рассчитываем показать на примере прогнозных моделей, что такие вещи, как “линейная регрессия” или “скользящая средняя с динамическим интервалом” могут стать незаменимыми средствами именно для быстрой аналитики (в дополнение к предпринимательской интуиции), когда скорость принятия решения влияет на успех бизнеса здесь и сейчас.
Итак, в этой статье мы фокусируемся на быстрой прогнозной аналитике. Если читателю интересно все же более основательно погрузиться в теорию прогнозирования, рекомендуем наш любимый ресурс на эту тему: интерактивный курс “Прогнозирование: принципы и практика” профессора Роба Хайдмана. Курс доступен бесплатно в авторской версии на английском языке. Печатную русскоязычную версию курса можно приобрести в большинстве сетевых книжных магазинов. Этот курс достаточно популярен, поскольку прогнозные модели в нем раскрыты доступным языком, также автор предоставляет многочисленные наборы данных, на которых можно поупражняться и закрепить знания на практике.
Модель первая – штатный инструментарий прогнозирования MS Power BI
Давайте для начала определимся с тем, что именно мы прогнозируем и чего мы ждем от прогноза.
Во всех описанных в этой статье моделях мы будем иметь дело с временным рядом, то есть с набором значений какого-либо показателя, распределенных во времени. В качестве такого показателя мы выбрали стоимость обучающих курсов, проданных на платформе GetCourse (иначе – выручку условного поставщика обучающих материалов); временной интервал – 1 день (Рис. 1).
Приведенный график – пример описательной статистики. Мы видим выручку от продажи курсов по дням. Мостик в статистику предсказательную (предиктивную) заключается в нашем желании “предсказать” – с определенной вероятностью – какую выручку от продажи курсов на платформе мы сможем получать в дальнейшем. Таким образом, от прогноза мы ждем конкретные значения показателя (суммарная стоимость проданных курсов, в нашем случае) в одном или нескольких периодах в будущем (в этом примере – в днях).
Мы поняли что у нас есть и чего мы хотим – отлично! Следующие новости также хорошие – заботливые разработчики Power BI для ряда визуальных элементов – в частности, для линейных графиков – предусмотрели встроенный инструмент “Прогноз”, доступный при выборе визуального элемента (графика) во вкладке “Аналитика” в блоке “Визуализации”. Незамедлительно приведем ссылку на официальные материалы от разработчика, где представлена детальная информация о данном инструменте (раздел “Применение прогнозирования”).
Давайте сначала посмотрим на результат формирования прогнозной модели (Рис. 2), и далее обсудим порядок выполненных действий.
К нашему графику добавилась некоторая область значений справа, протянувшая временную шкалу на определенное число периодов (последнее значение известных нам данных о выручке приходится на середину февраля 2024 года, тогда как шкала, как мы видим, теперь продлена на 2 месяца вперед). Давайте попробуем понять, что произошло, и можем ли мы считать полученную черную линию и серую зону вокруг нее прогнозом, подходящим для наших данных.
На Рисунке 3 представлены настройки элемента “Прогноз”, примененные для получения продемонстрированного результата.
Давайте разберем настройки, сделанные во вкладке “Параметры”:
- Единицы. Здесь имеет смысл указать, по каким временным отрезкам мы исследуем данные, чтобы прогнозная модель лучше “понимала” нашу временную шкалу. По умолчанию этот параметр имеет универсальное значение “пункты”, но мы поменяем его на “дни”, поскольку знаем, что выручка у нас считается именно по дням.
- Длина прогноза. Это интервал времени в будущим, на который мы хотим получить прогнозные значения нашего показателя. Выставленное значение 60 говорит о том, что мы хотим получить прогноз выручки по дням на последующие два месяца (примерно).
- Пропустить последнее. Очень полезный параметр с точки зрения фильтрации ненужных данных. Как мы видим на изначальном графике, последние доступные значения в феврале имеют достаточно высокие колебания. Возможно, в этих данных есть выбросы, и их использование для прогноза может сильно исказить ожидаемую картину продаж. Чтобы не учитывать последние, скажем, 10 дней в прогнозе, мы выставили соответствующее значение данного параметра.
- Сезонность (Пункты). Если вы знаете, что ваши продажи изменяются под влиянием ритмично повторяющихся закономерностей (например, вы даете хорошие скидки по вторникам и ожидаете всплески продаж именно в этот день недели), можно указать этот ритм здесь. В нашем случае мы не видим сезонности (или ничего о ней не знаем), поэтому значение этого параметра мы выставили в соответствии с длительностью прогноза (один день – это один сезон, условно).
- Доверительный интервал. Это как раз та серая зона вокруг графика. Выбранное значение 95% говорит о следующем: мы рассчитываем, что размер будущей выручки будет не меньше нижней границы серой зоны и не больше ее верхней границы; при этом модель сигнализирует нам, что так будет с 95-процентной вероятностью, на основе данных за предыдущие периоды, которые мы этой модели “скормили”. При наведении курсора на точку данных (конкретный день) вы увидите 3 значения – сам прогноз выручки, а также значения нижней и верхней границы. Сценарный анализ в действии! Что произойдет с серой зоной, если установить значение этого параметра на уровне 85%? Серая зона увеличится или уменьшится? Попробуйте сначала ответить себе на этот вопрос, а затем поменяйте настройки в отчете и посмотрите на полученный результат.
Как итог, мы получили набор значений интересующего нас показателя, на которые мы, в целом, готовы ориентироваться в будущем, поскольку все настройки мы сделали, зная наш бизнес и понимая природу исходных данных. Если хотите, можно назвать полученный результат графическим воплощением нашей предпринимательской интуиции.
При этом, обратите внимание, что мы потратили совсем немного времени и не совершали вручную никаких математических расчетов – согласитесь, вполне в духе BI.
Модель вторая – линейная регрессия в качестве инструмента прогноза
Power BI посчитал нам прогноз и построил наглядный график – зачем нам другие прогнозные модели? Для использования альтернативных инструментов есть две веские причины. Во-первых, Power BI не всегда под рукой, и лишним не будет умение строить (или читать) прогнозные модели самостоятельно в различных программных средах. Во-вторых, та или иная прогнозная модель может на конкретном наборе данных отработать лучше или хуже, то есть чем больше прогнозных инструментов в арсенале аналитика, тем точнее может быть его прогноз в итоге.
Для иллюстрации последнего тезиса мы реализовали в нашем отчете модель линейной регрессии. Вот мы и добрались до этого понятия – давайте разбираться.
Регрессия известна всем, в той или иной степени. Многие рассуждают о регрессии как о прогнозном инструменте, что верно отчасти, ведь регрессия – это нечто большее. В общем понимании, регрессия – это зависимость одной переменной от другой или нескольких других. Регрессионный анализ, в свою очередь, предполагает исследование этой зависимости – установления ее наличия, силы, достоверности.
Излюбленные примеры регрессии у всех на слуху: цена квартиры зависит от ее площади, этажа, удаленности от инфраструктуры, ремонта и множества других факторов; на стоимость вина сильно влияют срок выдержки и характеристики урожая винограда; вероятность выжить на Титанике была напрямую привязана к полу пассажира и классу билета.
Хорошо, но причем здесь прогноз? Дело в том, что количественно оценив зависимость одной переменной от других, мы можем прогнозировать значения этой самой зависимой переменной в интересующих нас обстоятельствах. Какую цену установить на двухкомнатную квартиру с новым ремонтом в 10 минутах от метро? Регрессионная модель, построенная на основе данных о множестве других квартир с различными параметрами, выдаст вам конкретную цифру (или интервал – в зависимости от настройки модели), которая будет близка к цене, которую вы увидите на электронной площадке по продаже недвижимости.
В случае с временными рядами – как у нас – независимой переменной является время. В различные периоды времени выручка от продаж на платформе GetCourse разная – это мы видим исходя из имеющихся у нас данных о продажах в прошлых периодах (днях). Поможет ли нам модель регрессии предсказать продажи в будущем? Давайте узнаем.
Итак, у нас с вами вырисовывается модель простой линейной регрессии. Простой – потому что мы исследуем влияние только одного фактора (время в днях) на выручку. Линейной – потому что зависимость, наличие которой мы предполагаем, отображается прямой линией (таков смысл модели). На уже хорошо знакомый нам график выручки добавим линию тренда – основополагающее понятие линейной регрессии. В Power BI это также можно сделать штатными средствами, при помощи настройки “Линия тренда” все в той же вкладке “Аналитика”.
В статистике положение этой прямой определяется, как правило, методом наименьших квадратов; бытовым языком можно сказать, что тренд – это такая прямая линия, от которой фактические значения нашей выручки по дням наименее отдалены.
С точки зрения бизнеса тренд (черный пунктир на нашем графике) призван объяснять общий характер динамики показателя (рост, снижение, стагнацию). В нашем случае наблюдается положительная тенденция, то есть выручки в расчете на каждый день становится больше с течением времени. Соответственно, в будущих периодах мы ожидаем еще больше продаж, чем раньше (если все остальное, что влияет на наш бизнес, не преподнесет значительных сюрпризов). Вывод приятный, но в его отношении есть одно очень большое “но”, о котором мы поговорим чуть позже, – давайте сначала получим сам прогноз, то есть рассчитаем значение выручки на интересующий нас день в будущем.
На этот раз прогнозное значение мы увидим не на графике, а в соответствующей карточке над графиком. Отчет GetCourse позволяет выбрать интервал прогноза в днях при помощи одноименного ползунка рядом с карточкой прогнозного значения. В представленном примере выручка на последний известный нам день составляет чуть меньше 700 тыс. руб., тогда как через месяц, согласно прогнозу, мы ожидаем перевалить за миллион (Рис. 4).
Теперь вернемся к упомянутому “но”. Если вглядеться в график выручки, можно увидеть, что о стабильном росте продаж говорить не приходится. Да, в целом, с течением времени мы стали зарабатывать больше (скорее всего), но были и периоды просадок и стагнаций, наряду с неожиданными всплесками и последующем затуханием. Следует ли нам верить тренду в таком случае?
Поставленный вопрос апеллирует к качеству прогнозной модели. Его можно переформулировать так: насколько хорошо расчетные значения тренда описывают происходящие в бизнесе изменения и реальную перспективу получения выручки в дальнейшем? Ответить на этот вопрос нам поможет показатель, известный в статистике как “R квадрат” или же “Коэффициент детерминации”.
В статистике есть целый ряд параметров, определяющих качество, надежность и применимость регрессионных моделей, и полноценный регрессионный анализ предполагает рассмотрение и интерпретацию нескольких из них в совокупности. Но давайте вспомним цель, которой мы задались, – нам интересно попробовать максимально упростить матчасть в пользу скорости принятия решений.
При таком взгляде на проблему расчета показателя “R квадрат” будет вполне достаточно, чтобы в общих чертах сказать про модель – “хорошая” она или “плохая” относительно конкретных рассматриваемых данных. Как понимать этот показатель? По сути, “R квадрат” – это та доля изменений, происходящих в данных, которую наша модель позволяет оценить с высокой степенью достоверности. В нашем случае, как видно из Рисунка 4, только 23.4% происходящего с нашей выручкой в рассматриваемый период времени в прошлом можно объяснить, нарисовав прямую линию на графике.
Получается, прогнозное значение рассчитано, но доверять ему можно только на 23 процента из 100? Совершенно верно, суровая правда жизни. Данную модель нецелесообразно использовать на наших данных, зависимость которых от времени скорее нелинейная. Пожалуйста, всегда обращайте внимание на характер данных, когда вам придется сталкиваться с прогнозом на основе линейной регрессии.
В таком случае, какой “R квадрат” хороший? Когда линейная регрессия целесообразна для прогнозирования? Существует негласное правило, что при значении этого показателя 70% и выше характер распределения ваших данных скорее линейный, и модель отработает неплохо (опять же, при прочих равных).
Таким образом, если ваши данные, в целом, имеют ровную динамику, смело используйте тренд. Это ясно интуитивно, без каких-либо расчетов и графиков, в то же время, в бизнесе формализм играет немаловажную роль – к сожалению или к счастью – поэтому, если вас попросят подкрепить предпринимательское чутье расчетами (такой запрос может поступить, например, от потенциального инвестора), вы всегда сможете для “спокойных” данных использовать линейную регрессию и подтвердить применимость модели соответствующим показателем ее качества.
Конечно, на этом мы не стали останавливаться и реализовали еще одну прогнозную модель со значительно лучшим коэффициентом детерминации и покажем ее в нашей следующей статье.
Но уже сейчас в mybi market вы можете найти шаблонный отчет, в котором реализованы все три модели прогнозирования на основании выгрузки данных GetCourse с помощью mybi connect.