Как сделать прогноз временного ряда

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

История вопроса

В этой книге исследуются временные ряды от нескольких десятков до нескольких сотен значений, анализируются, а далее для ряда из них строится модель прогнозирования. За упомянутые десятилетия системы хранения данных совершили грандиозный скачок — теперь в базах данных мы имеем тысячи, десятки и сотни тысяч, миллионы значений различных временных рядов. И ровно с этими массивами приходится иметь дело аналитику и математику. Пол века назад было очень сложно себе представить, как выполнить обработку временного ряда в 100 000 значений длиной. Словом, развитие технологий серьезно усложнило задачу прогнозирования временных рядов. В своем автореферате я писала:

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

Так сколько же значений нужно при прогнозировании?

При прогнозировании работа с временным рядом делится на несколько этапов. Остановимся на них подробнее.

Подготовительный этап: анализ временного ряда

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

Основной этап работы с временным рядом

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

Кроме того, постановка задачи прогнозирования может быть такова, что вам и 1000 значений не хватит. Например, мы делаем прогноз значений цены и объемов энергопотребления на месяц вперед в почасовом разрешении, то есть прогнозируем каждый месяц на ~700 значений вперед. Чтобы построить такой прогноз нужна солидная история, в частности, у нас учитываются все имеющиеся значения временного ряда, а это составляет более 50 000 значений для каждого ряда. А прогнозов таких мы делаем 19 штук ежемесячно.

Вывод

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

Excel, как универсальный табличный редактор, давно и неплохо справляется с большинством задач прогнозирования (см. список литературы в конце заметки). Однако, не всегда вычисления в Excel являются простыми и понятными. И вот в версии 2016 года разработчики Microsoft добавили семейство функций ПРЕДСКАЗ (FORECAST), которые позволяют в несколько кликов решать большой круг задач прогнозирования на основе экспоненциального сглаживания.


Рис. 1. Прогнозирование продаж в Excel с помощью семейства функций ПРЕДСКАЗ

Об экспоненциальном сглаживании

Экспоненциальное сглаживание также известно, как метод ETS: ошибки (Errors), тренд (Trend), сезонный фактор (Seasonal). Для составления прогноза используются все исторические данные, но коэффициенты, определяющие вклад, убывают в прошлое по экспоненте (отсюда и название). Это позволяет, с одной стороны, чутко реагировать на свежие данных, с другой стороны, сохранять информацию об историческом поведении всего временного ряда. Если данным присущ тренд, он вычисляется в каждой точке данных (а не на основе регрессии всего временного ряда). Наконец, с помощью автокорреляции в данных выявляется сезонность.

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

Собственно, оптимизируются три коэффициента:

α – разброс относительно среднего

Разработчики Microsoft не предоставили пользователям возможность влиять на выбор коэффициентов, за исключением периода сезонности (об этом ниже).

Обзор функций семейства ПРЕДСКАЗ

В Excel представлено 5 функций:


Рис. 2. Семейство функций ПРЕДСКАЗ в Excel

ПРЕДСКАЗ.ETS рассчитывает будущее значение на основе существующих (ретроспективных) данных методом экспоненциального сглаживания. Т.е., дает прогноз одним числом.

ПРЕДСКАЗ.ETS.СЕЗОННОСТЬ возвращает длину повторяющегося фрагмента, обнаруженного в заданном временном ряду. Например, 12, если исторические данные представляют из себя продажи за месяц.

ПРЕДСКАЗ.ETS.СТАТ возвращает восемь статистических значений, являющихся результатом прогнозирования временного ряда. Вряд ли вы будете использовать эту функцию. Она нужна для более тонкого исследования параметров прогнозной модели.

ПРЕДСКАЗ.ЛИНЕЙН вычисляет будущее значение с помощью линейной регрессии исторических данных. До версии 2016 в Excel вместо семейства функций была единственная функция ПРЕДСКАЗ, которая работала также, как и ПРЕДСКАЗ.ЛИНЕЙН. Функция ПРЕДСКАЗ оставлена для обратной совместимости, но скоро перестанет поддерживаться. Далее в заметке ПРЕДСКАЗ.ЛИНЕЙН не рассматривается, так как не относится к функциям, использующим алгоритм экспоненциального сглаживания.

ПРЕДСКАЗ.ETS

В качестве примера рассмотрим месячный пассажиропоток в аэропорту (пример от MS). Исторические данные были собраны за период с января 2009 по декабрь 2912 г.


Рис. 3. Исторические данные

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


Рис. 4. Прогнозные значения на основе функции ПРЕДСКАЗ.ETS

Подробнее о формуле в ячейке С50:

Первый аргумент – целевая_дата = А50 – янв.13, т.е., в ячейке С50 ищется прогноз пассажиропотока для января 2013 г. Ссылка относительная, что позволит при протягивании функции вниз по столбцу ссылаться на новое значение: в С51 – на А51, в С52 – на А52 и т.д.

Второй аргумент – значения = $B$2:$B$49. Здесь расположены исторические данные пассажиропотока. Ссылка абсолютная, чтобы при протягивании формулы ячейки, на которые ссылаются не изменились.

Третий аргумент – временная_шкала = $A$2:$A$49. Здесь расположены даты временной шкалы или номера периодов. Важно чтобы они отстояли друг от друга на фиксированный интервал. Если интервал не будет фиксированным, Excel всё еще будет исходить из гипотезы, что интервал фиксированный, а некоторые данные пропущены. Как обрабатываются такие ситуации описано ниже. Сортировать массив по значениям временной шкалы не обязательно, так как ПРЕДСКАЗ.ETS сама отсортирует данные прежде, чем выполнить расчеты.

Четвертый аргумент – [сезонность] = 1. Это необязательный аргумент. Значение по умолчанию равно 1. Для него Excel автоматически определяет сезонность и использует положительные целые числа в качестве длины сезонного шаблона. Значение 0 предписывает не использовать фактор сезонности, в результате чего прогноз будет линейным. Если для этого параметра задано положительное целое число, алгоритм использует его в качестве длины шаблона сезонности. Например, вы знаете, что сезонность равна 4 (квартальная периодичность), но предполагаете, что она слабая, и автоматический алгоритм Excel может ее не выявить, и будет считать, что сезонности нет. Для начала я рекомендовал бы использовать значение по умолчанию.

Пятый аргумент – [заполнение_данных] = 1. Это необязательный аргумент. Хотя временная шкала требует постоянный шаг между точками данных, FORECAST.ETS поддерживает до 30% отсутствующих данных и автоматически настраивает их. 0 указывает, что алгоритм учитывает отсутствующие точки в качестве нулей. Если задано значение 1 (вариант по умолчанию), функция определяет отсутствующие значения как среднее между соседними точками.

Шестой аргумент – [агрегирование] – в нашем примере опущен. Это необязательный аргумент. Он нужен, если даты временной шкалы или номера периодов содержат дубли. Функция ПРЕДСКАЗ.ETS выполнит агрегирование точек с одинаковой меткой времени. Параметр агрегирования — это числовое значение, определяющее способ агрегирования нескольких значений с одинаковой меткой времени. Для значения по умолчанию 0 используется метод СРЗНАЧ; также доступны варианты СУММ, СЧЁТ, СЧЁТЗ, МИН, МАКС и МЕДИАНА.

История вопроса

В этой книге исследуются временные ряды от нескольких десятков до нескольких сотен значений, анализируются, а далее для ряда из них строится модель прогнозирования. За упомянутые десятилетия системы хранения данных совершили грандиозный скачок — теперь в базах данных мы имеем тысячи, десятки и сотни тысяч, миллионы значений различных временных рядов. И ровно с этими массивами приходится иметь дело аналитику и математику. Пол века назад было очень сложно себе представить, как выполнить обработку временного ряда в 100 000 значений длиной. Словом, развитие технологий серьезно усложнило задачу прогнозирования временных рядов. В своем автореферате я писала:

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

Так сколько же значений нужно при прогнозировании?

При прогнозировании работа с временным рядом делится на несколько этапов. Остановимся на них подробнее.

Подготовительный этап: анализ временного ряда

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

Основной этап работы с временным рядом

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

Кроме того, постановка задачи прогнозирования может быть такова, что вам и 1000 значений не хватит. Например, мы делаем прогноз значений цены и объемов энергопотребления на месяц вперед в почасовом разрешении, то есть прогнозируем каждый месяц на ~700 значений вперед. Чтобы построить такой прогноз нужна солидная история, в частности, у нас учитываются все имеющиеся значения временного ряда, а это составляет более 50 000 значений для каждого ряда. А прогнозов таких мы делаем 19 штук ежемесячно.

Вывод

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

1 Практическая работа 1 Временные ряды и их предварительный анализ….….

2 Практическая работа 2 Общая характеристика методов прогнозирования.

Упрощенные приемы прогнозирования…….

3 Практическая работа 3 Исследование тенденции временных рядов………….

4 Практическая работа 4 Статистическое изучение колеблемости

5 Лабораторная работа 1 Вероятностная оценка существенности параметров

тренда и колеблемости………………………………….

6 Лабораторная работа 2 Статистический анализ и прогнозирование

7 Лабораторная работа 3 Использование адаптивных методов

прогнозирования в экономических исследованиях……………………..………..

8 Лабораторная работа 4 Прогнозирование с помощью модели авторегрессии – проинтегрированного скользящего среднего………………………………….

9 Лабораторная работа 5 Применение многофакторных моделей

10 Лабораторная работа 6 Эвристические методы прогнозирования……..….…

11 Лабораторная работа 7 Объединение прогнозов…………………………. ….

12 Расчетно – графическая работа …………………………………………….…..

13 Литература, рекомендуемая для изучениядисциплины. …………………..…

Приложение А Оценка адекватности и точности кривых роста…………………

Приложение Б Тесты для подготовки к рубежному контролю и зачету ……….

Введение

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

1 Практическая работа 1

Временные ряды и их предварительный анализ

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

Контрольные вопросы

1 Какие виды временных рядов вы знаете? Приведите примеры.

2 Поясните, в чем состоят характерные отличия временных рядов от пространственных выборок.

3 Какие требования предъявляются к временным рядам как к исходной информации при прогнозировании?

4 Как рассчитываются средний абсолютный прирост, средний темп роста, средний темп прироста? Когда правомерно использовать средний абсолютный прирост и средний темп роста для расчета прогнозов?

5 Как на стадии графического анализа динамики временного ряда можно определить характер сезонности (аддитивный или мультипликативный)?

Задания

1 Используя временной ряд какого-либо социально-экономического показателя, выполнить следующие задания:

а) рассчитать цепные и базисные абсолютные приросты;

б) рассчитать цепные и базисные темпы роста;

в) абсолютное значение 1 % прироста;

г) средние показатели динамики и средний уровень ряда.

д) дать интерпретацию полученным результатам.

2 Заполните в таблицах 1.1 – 1.3 пустые ячейки, используя взаимосвязь между показателями.

Читайте также: