Модуль Прогнозирование предназначен для получения прогнозных значений на основании текущих данных. Результатом прогноза является новый прогнозный элемент с расчетными значениями.
Для больших объемов данных используется автоматический выбор одного из алгоритмов:
- Линейная регрессия;
- Экспоненциальное сглаживание;
- Фильтр Калмана;
- Модель сквозящего среднего;
- Авторегрессионная модель;
- Arima.
Порядок работы прогнозирования:
- В начале производится тестирование алгоритмов на имеющихся данных, генерируются последние n элементов строки каждым из алгоритмов, и считается ошибка между полученным результатом и реальными данными: n = min(10, size/10);
- Данные тестов усредняются, и для каждого из фактов выбирается алгоритм, показавший наименьшую ошибку;
- Берется уже полная строка данных. В ней ищется наличие сезонной составляющей. Если она была найдена, то она удаляется и сохраняется отдельно;
- Данные, очищенные от сезонной компоненты, сглаживаются и результат отдается одному из алгоритмов, выбранному на шаге 2;
- Алгоритм экстраполирует данные на K шагов (задается пользователем) и возвращает полученный результат;
- К полученным данным добавляется сезонная составляющая, сохраненная на шаге 3;
- После того, как шаги 3-6 будут применены ко всем строкам из рабочей области, итоговый результат записывается в куб в виде новых элементов верхней размерности;
- Имена новых элементов задаются по следующему принципу: для даты, времени и числовых типов берется разница между последним и предпоследним элементом и добавляется к имени последнего элемента; для строковых размерностей имена новых элементов выглядят как Прогноз #K, K = 1, 2, 3, ...