Математическое бюро
Прогнозирование на ОРЭМ

Оценка ошибки прогнозирования временного ряда

Работая с научными публикациями, сталкиваюсь с различными показателями ошибок прогнозирования временных рядов. Среди всех встречающихся оценок ошибки прогнозирования стоит отметить две, которые в настоящее время, являются самыми популярными: MAE и MAPE. Пусть ошибка есть разность:
     ,
где Z(t) – фактическое значение временного ряда, а – прогнозное.
Тогда формулы для оценок ошибки прогнозирования временных рядов для N отчетов можно записать в следующем виде.

MAPE – средняя абсолютная ошибка в процентах

      .

Данная оценка применяется для временных рядов, фактические значения которых значительно больше 1. Например, оценки ошибки прогнозирования энергопотребления почти во всех статьях приводятся как значения MAPE.

Если же фактические значения временного ряда близки к 0, то в знаменателе окажется очень маленькое число, что сделает значение MAPE близким к бесконечности – это не совсем корректно. Например, фактическая цена РСВ = 0.01 руб/МВт.ч, a прогнозная = 10 руб/МВт.ч, тогда MAPE = (0.01 – 10)/0.01 = 999%, хотя в действительности мы не так уж сильно ошиблись, всего на 10 руб/МВт.ч. Для рядов, содержащих значения близкие к нулю, применяют следующую оценку ошибки прогноза.

MAE – средняя абсолютная ошибка

      .

Для оценки ошибки прогнозирования цен РСВ и индикатора БР корректнее использовать MAE.

После того, как получены значения для MAPE и/или MAE, то в работах обычно пишут: «Прогнозирование временного ряда энергопотребления с часовым разрешение проводилось на интервале с 01.01.2001 до 31.12.2001 (общее количество отсчетов N ~ 8500). Для данного прогноза значение MAPE = 1.5%». При этом, просматривая статьи, можно сложить общее впечатление об ошибки прогнозирования энергопотребления, для которого MAPE обычно колеблется от 1 до 5%; или ошибки прогнозирования цен на электроэнергию, для которого MAPE колеблется от 5 до 15% в зависимости от периода и рынка. Получив значение MAPE для собственного прогноза, вы можете оценить, насколько здорово у вас получается прогнозировать.

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

MSE – среднеквадратичная ошибка

      .

RMSE – квадратный корень из среднеквадратичной ошибки

      .

ME – средняя ошибка

      .

SD – стандартное отклонение

      , где ME – есть средняя ошибка, определенная по формуле выше.

Связь точности и ошибки прогнозирования

Точность прогнозирования есть понятие прямо противоположное ошибке прогнозирования. Если ошибка прогнозирования велика, то точность мала и наоборот, если ошибка прогнозирования мала, то точность велика. По сути дела оценка ошибки прогноза MAPE есть обратная величина для точности прогнозирования — зависимость здесь простая.

Точность прогноза в % = 100% – MAPE

Величину точности оценивать не принято, говоря о прогнозировании всегда оценивают, то есть определяют значение именно ошибки прогноза, то есть величину MAPE и/или MAE. Однако нужно понимать, что если MAPE = 5%, то точность прогнозирования = 95%. Говоря о высокой точности, мы всегда говорим о низкой ошибки прогноза и в этой области недопонимания быть не должно. Вы практически не найдете материалов о прогнозировании, в которых приведены оценки именно точности прогноза, хотя с точки зрения здравого маркетинга корректней говорить именно о высокой точности. В рекламных статьях всегда будет написано о высокой точности.

При этом величина MAPE является количественной оценкой именно ошибки, и эта величина нам ясно говорит и о точности прогнозирования, исходя из приведенной выше простой формулы. Таким образом, оценивая ошибку, мы всегда оцениваем точность прогнозирования.

Комментарии

Аватар пользователя Ксения
Ксения Чекулаева

Ирина, а как оценить прогноз, если прогнозные значения есть, а фактических нет? При этом оценку точности хочется получить в процентах.

Аватар пользователя chuchueva
Ирина Чучуева

О как! Интересная у вас история вышла!

Тут, конечно, стандартными показателями не справишься. Если ряд у вас стационарный (то есть средняя величина не существенно меняется), то посчитайте среднее фактическое значение за некоторый предыдущий период. И посчитайте среднее прогнозное значение. И сравните их (тут и % можно получить). Конечно, корректной назвать эту оценку нельзя, но это хоть какие-то прикидки.

А как же так у вас вышло, что прогноз есть, а факта никакого нет. Как у вас модель прогнозирования работает?

Аватар пользователя Олег Моховиков
Олег Моховиков

Стандартное отклонение считается по другой формуле. Исправьте статью, пожалуйста.Корень должен стоять снаружи, а не под суммой.

Аватар пользователя chuchueva
Ирина Чучуева
Олег, большое спасибо за внимательность! Эту страницу просматривали сотни человек, но только вы нашли в ней ошибку.
Аватар пользователя Пётр Васильев
Пётр Васильев

Добрый день Ирина. 

У вас в формуле MSE ошибка. Заменити 1/N-1 на 1/N

Аватар пользователя chuchueva
Ирина Чучуева

Петр, большое спасибо за внимательность! Поправила!

Аватар пользователя Дима Лукьяненко
Дима Лукьяненко

Ирина, добрый день.

 

Подскажите, а как рассчитать итоговый коеффициент MAPE если есть несколько рядов? Суммы в разбивке по клиентам и номиналам и прогнозы строятся по каждому из случаев. Т.е. каждый элемент ряда в день T является суммой для какого-то клиента и по какому-то номиналу.

Аватар пользователя Дима Лукьяненко
Дима Лукьяненко

Или лучше изначально сложить по всем типам клиентов и номиналам и рассчитать для каждого дня квадратичную ошибку?

Аватар пользователя chuchueva
Ирина Чучуева

Добрый день! Я не очень понимаю, в чем ваше затруднение. Что именно вы прогнозируете? Сумму по клиентам/номиналам или отдельное значение?

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

Аватар пользователя Дима Лукьяненко
Дима Лукьяненко

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

Аватар пользователя chuchueva
Ирина Чучуева

Чтобы получить ответ, вопрос стоит упростить. Есть 2 клиента и 3 номинала. Тогда вы делаете 6 прогнозов алгоритмом А, 6 прогнозов алгоритмом B.

Получается, что для каждого клиента и каждого номинала есть прогноз А и прогноз Б, и есть факт.

Тогда вы можете оценивать как удобно: MAPE прогноза А, MAPE прогноза Б, MAPE обоих прогнозов, MAPE по номиналам и по клиентам. И всю эту кучу проанализировать. Общая точность зависит от того, чего вы хотите обощить (чего вы подразумеваете под общим). У вас задача-то простая, не усложняйте там, где просто достаточно все сделать последовательно.

Аватар пользователя Дима Лукьяненко
Дима Лукьяненко

Просто не совсем понятно что делать с прогнозом А и прогнозом Б для каждого клиента и каждого номинала. Сравнивать MAPE какого-то одного разреза или может считать MAPE по каждому разрезу, но какой вывод можно сделать если у одного из разрезов ошибка меньше у А, в каком-то из разрезов ошибка меньше у Б.

Или может все-таки как-то считать общий MAPE по всем разрезам? И вот интересно как посчитать общий MAPE по всем разрезам. Среднее арифметическое MAPE по каждому из разрезов?

Аватар пользователя chuchueva
Ирина Чучуева

Среднее арифметическое MAPE по каждому из разрезов? - Да, именно так!

Весь первый абзац не касается вопрос оценки ошибки прогноза, а касается вопроса: зачем вы делали то, что сделали?