Бизнес-аналитика с помощью Power BI

Временной прогноз в PowerBI

Рассматривается практический сценарий построения прогноза финансового показателя во встроенных средствах Microsoft Power BI. Логика изложения: подключение к SQL Server и базе AdventureWorks, выбор таблицы Fact Internet Sales, проверка типов полей, работа с календарной иерархией OrderDate, визуализация продаж по годам, включение Forecast, настройка длины прогноза и игнорируемых периодов. Затем показана проверка точности через доверительный интервал, анализ тренда и фильтрация аномальных дат. Завершается ограничениями встроенного алгоритма и местом Power BI в связке с Python и R.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Подключать Power BI к SQL Server и выбирать нужный набор данных.
2. Различать числовые и текстовые поля, проверять корректность дат.
3. Использовать автоматическую иерархию дат для анализа по годам, кварталам, месяцам и дням.
4. Строить линейный график продаж и настраивать агрегацию.
5. Находить и включать встроенный инструмент Forecast.
6. Настраивать длину прогноза и игнорируемые периоды.
7. Интерпретировать доверительный интервал.
8. Оценивать точность прогноза через сравнение с фактом.
9. Выявлять влияние тренда и аномалий.
10. Применять фильтры к датам и понимать разницу между иерархическим и единым полем.
11. Определять ограничения встроенного прогноза и необходимость Python/R.
Показывать лекцию целиком
Краткое изложение

---

Данные для практики: FactInternetSales

Приложения

FactInternetSales

Встроенное прогнозирование в Power BI

Продолжаем изучение аналитики в Microsoft Power BI. Сегодня разберём встроенные возможности прогнозирования (forecasting). Прогнозирование — это попытка предсказать значения финансовых показателей на будущие периоды на основе ретроспективных данных.

В курсах по Python и R мы будем отдельно изучать алгоритмы анализа временных рядов, которые позволяют строить более точный и научно обоснованный прогноз. Но в Power BI уже встроен алгоритм, который строит прогноз без программирования. Power BI также можно использовать для визуализации результатов алгоритмов, написанных на Python или R.

Подключение данных

Для работы нужен набор данных (dataset). Подключаемся к SQL Server, база — AdventureWorks. Выбираем таблицу Fact Internet Sales, в которой отражены продажи через интернет-канал.

Проверяем поля SalesAmount и StandardCost. При подключении к базе данных форматы преобразуются автоматически. Числовые поля отображаются курсивом, текстовые — прямым шрифтом. Загружаем набор данных: в нём около 60 000 строк.

Нас интересует поле OrderDate. Оно уже отмечено значком календаря, то есть распознано корректно. Если поле является календарным, Power BI автоматически создаёт иерархию дат: год, квартал, месяц, день. Это удобно: можно переходить от общего периода к детальному. Такие же автоматические иерархии существуют для геоданных.

Визуализация продаж

Строим визуализацию: SalesAmount по OrderDate. Сначала видим агрегацию продаж по годам. В данных есть 2010–2014 годы, но за 2014 год данных мало. Вероятно, база перестала актуализироваться после 2013 года.

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

Запуск Forecast

Во вкладке Аналитика выбираем Forecast и добавляем прогноз. Появляется небольшой прогноз. Для наглядности фильтруем 2014 год. Длину прогноза задаём количеством точек: сначала 10, затем 50. Период прогноза расширяется.

Проверка точности прогноза

Чтобы проверить качество, строим прогноз на один год, игнорируя последний год. Тогда последний год сам становится прогнозным. Вокруг линии прогноза отображается серый конус — доверительный интервал (confidence interval) с вероятностью 95%.

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

Если игнорировать последние два года, прогноз на год оказался точнее: фактический год уложился в 95% доверительный интервал. При полном прогнозе на один год с игнорированием ноль видна только будущая воронка. Смещение вниз может быть следствием аномального падения продаж в конце 2013 года.

Фильтрация аномалий

Для чистоты прогноза аномальные данные убирают. В иерархии месяцы сортируются естественно: январь, февраль, март, а не по алфавиту. Аномалия начинается примерно с 23.12.2013.

На дата-сете удобнее фильтровать поле OrderDate. Если фильтр добавлен по компонентам иерархии, нужно перенести OrderDate в фильтры как единое поле. Тогда можно задать точную дату или границу периода. После фильтрации снова строим Forecast на один год, игнорируя ничего, и получаем воронку, в которой с вероятностью 95% будут находиться продажи.

Ограничения встроенного прогноза

Forecast — сильный встроенный инструмент для быстрого прогноза финансовых показателей и объёмов продаж. Но алгоритм не знает внешних факторов и сложных изменений рынка. Для более точных моделей временных рядов используют Python и R, а Power BI применяют для визуализации результатов.

Краткие итоги

Встроенный прогноз в Power BI стоит воспринимать как инструмент быстрой аналитической разведки, а не как замену полноценному статистическому моделированию. Его сильная сторона — минимальный порог входа: аналитик подключает источник, выбирает временное поле и показатель, после чего получает визуальную оценку будущего поведения ряда. Однако качество такого прогноза напрямую зависит от подготовки данных. Календарное поле должно распознаваться как дата, числовые показатели — как числа, а иерархия периодов — позволять переходить от года к кварталу, месяцу и дню. Без этого прогноз либо не построится, либо будет вводить в заблуждение.

Ключевой практический приём — проверка модели на исторических данных. Игнорирование последнего периода превращает известный факт в проверочный полигон: система строит прогноз так, будто будущее неизвестно, а аналитик сравнивает полученную воронку с фактической линией. Если факт выходит за доверительный интервал, это сигнал о структурном сдвиге, аномалии или сильном тренде, который встроенный алгоритм не мог учесть. Такой подход позволяет не доверять прогнозу слепо, а понимать его устойчивость.

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

Отдельный практический урок — работа с выбросами и фильтрами. Аномальные участки могут смещать прогноз, поэтому их выявление и обоснованное исключение повышают качество модели. В Power BI важно различать фильтрацию по иерархии дат и по единому полю даты: только второй вариант позволяет задать точную границу периода. Это влияет на воспроизводимость анализа.

Наконец, встроенный Forecast удобно сочетать с Python и R: Power BI может визуализировать результаты более сложных моделей временных рядов. Практическая логика такова: сначала быстрый встроенный прогноз для ориентира, затем проверка на истории, очистка аномалий, а при высокой цене ошибки — переход к программируемым алгоритмам.

Назначение встроенного прогноза

Прогнозирование (forecasting) — предсказание будущих значений финансовых показателей по прошлым данным. В Power BI есть встроенный алгоритм, не требующий программирования. Python и R позже дают более точные методы анализа временных рядов, а Power BI может визуализировать их результаты.

Подготовка данных

Нужен набор данных (dataset). Подключаемся к SQL Server, база AdventureWorks, таблица Fact Internet Sales — продажи через интернет. Проверяем SalesAmount и StandardCost. При подключении к базе форматы преобразуются автоматически: числовые поля отображаются курсивом, текстовые — прямым шрифтом. Загружаем данные, около 60 000 строк. Ключевое поле — OrderDate. Оно распознано как дата, поэтому Power BI автоматически строит иерархию дат: год, квартал, месяц, день. Аналогично автоматическим иерархиям для геоданных.

Визуализация и запуск прогноза

Строим график: SalesAmount по OrderDate. Видим продажи по годам. Данные есть за 2010–2014, но за 2014 мало: вероятно, база перестала актуализироваться. Переключаемся на линейный график для детализации. Во вкладке Аналитика выбираем Forecast и добавляем прогноз. Для наглядности фильтруем 2014 год. Длину прогноза задаём количеством точек: сначала 10, затем 50.

Проверка точности

Чтобы проверить качество, строим прогноз на один год, игнорируя последний год. Тогда последний год становится прогнозным, а вокруг линии появляется серый конус — доверительный интервал (confidence interval) с вероятностью 95%. Если фактические данные не попадают в конус, прогноз неточен. В примере 2013 год сначала укладывался в интервал, затем резко вырос. Это трендовая компонента, которую алгоритм не знает: возможны внешние причины — конкуренты, мода, бум спортивных велосипедов.

Если игнорировать последние два года, прогноз на год оказался точнее: фактический год уложился в 95% интервал. При полном прогнозе на один год с игнорированием ноль видна только будущая воронка. Смещение вниз может быть из-за аномального падения продаж в конце 2013 года.

Фильтрация и ограничения

Для чистоты прогноза аномалию убирают. В иерархии месяцы сортируются естественно: январь, февраль, март, а не по алфавиту. Аномалия — с 23.12.2013. На дата-сете фильтруют OrderDate. Если фильтр добавлен по компонентам иерархии, нужно перенести OrderDate в фильтры как единое поле. Тогда можно задать точную дату или границу. После фильтрации снова строят Forecast на один год, игнорируя ничего, и получают воронку, в которой с вероятностью 95% будут продажи.

Forecast — сильный встроенный инструмент для быстрого прогноза финансовых показателей и объёмов продаж. Его ограничение: алгоритм не знает внешних факторов и сложных изменений рынка. Для более точных моделей временных рядов используют Python и R, а Power BI применяют для визуализации.

Выводы

1. Встроенный Forecast в Power BI позволяет строить прогноз без программирования.
2. Качество прогноза зависит от корректности дат, чисел и иерархии.
3. Автоматическая иерархия дат упрощает анализ по годам, кварталам, месяцам и дням.
4. Для прогноза достаточно временного поля и числового показателя.
5. Длину прогноза задают количеством точек.
6. Игнорирование последних периодов позволяет проверить точность на факте.
7. Доверительный интервал показывает диапазон неопределённости прогноза.
8. Выход факта за доверительный интервал указывает на неточность или структурный сдвиг.
9. Встроенный алгоритм не знает внешних причин тренда.
10. Аномальные периоды стоит выявлять и при необходимости исключать.
11. Фильтр по дате лучше добавлять как единое поле, а не по иерархии.
12. Для сложных прогнозов Power BI сочетают с Python и R.

Вопросы для самопроверки

1. Что такое прогнозирование и какую задачу оно решает?
2. Какие данные нужны Power BI для построения прогноза?
3. Почему важно, чтобы OrderDate был распознан как дата?
4. Как Power BI строит иерархию дат и зачем она нужна?
5. Как построить график продаж по годам?
6. Где находится инструмент Forecast и как его добавить?
7. Как настроить длину прогноза?
8. Зачем при проверке прогноза игнорировать последние периоды?
9. Что означает серый конус вокруг линии прогноза?
10. Как интерпретировать выход фактических данных за доверительный интервал?
11. Как правильно отфильтровать данные по конкретной дате и почему это важно?
12. В чём ограничение встроенного Forecast и когда нужны Python/R?
Вернуться к учебному плану