Статистика оценки прогнозов с примерами на Python

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

Что на самом деле определяет точность прогноза?

Как выбрать статистику оценки

Выбор метода оценки точности часто зависит от предметной области. В своей карьере я сталкивался с ситуацией, когда наспех выбранный показатель вызывал неудовлетворенность клиента результатами прогнозирования, оптимизированными для KPI, несовместимых с конкретным бизнес-кейсом. Например, модель может иметь низкую среднеквадратичную ошибку, но в то же время не предсказывает внезапных отклонений от «повседневных нормальных» значений или изменений тренда.

«🔔 Хотите больше подобных статей? Подпишите здесь."

Эта статья покажет вам фундаментальную статистику оценки прогнозов, которую вы можете использовать для построения и тестирования своих прогнозных моделей. Мы рассчитаем и интерпретируем их на конкретных примерах: средняя ошибка (ME), среднеквадратичная ошибка (MSE), средняя абсолютная ошибка (MAE), средняя ошибка в процентах (MPE), средняя абсолютная ошибка в процентах (MAPE), и U-статистика Тейла. Мы будем интерпретировать и обсуждать примеры на Python в контексте данных прогнозирования временных рядов.

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

Почему?

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

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

Набор данных

Для расчета всей представленной статистики был создан файл CSV.

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

Технические подробности

Обозначения, используемые ниже, являются довольно стандартными, с yᵢ и fᵢ как переменные, представляющие интерес и прогноз соответственно, и n как количество наблюдений. Полный исходный код, использованный при подготовке этой статьи:

Https://gist.github.com/fischerbach/14e90b32e55b635591934a890ae20f60

Чтобы избежать повторения кода, я набросал простой класс FES, со статическими методами, которые вычисляют каждую статистику. Это делает код более читабельным без риска конфликта имен функций.

Статистика оценки прогнозов

Под «ошибкой» мы понимаем неопределенность в прогнозе или, другими словами, разницу между прогнозируемым значением и реальным значением. Это компонент yᵢ — fᵢ в большинстве следующих формул.

Средняя ошибка

Средняя ошибка - это среднее значение всех ошибок в наборе.

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

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

Средством исправления неточности средней ошибки является использование средней абсолютной ошибки.

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

Среднеквадратичная ошибка

Так же, как и MAE, среднеквадратичная ошибка преодолевает отмену положительных и отрицательных ошибок.

Кроме того, MSE накладывает больший штраф на большие ошибки прогноза, чем MAE.

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

Среднеквадратичная ошибка - это стандартное отклонение ошибок.

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

Средняя процентная ошибка

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

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

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

Средняя абсолютная процентная ошибка решает проблему смещения ошибок и работает лучше всего, если нет крайних значений для данных (и нет нулей).

Статистика Тейла U

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

U₁

Значения U₁ находятся в диапазоне (0, 1).

Чем выше точность прогноза, тем меньше будет значение U₁.

U₂

U₂ Тейла показывает, насколько более (или менее) точна модель по сравнению с наивным прогнозом.

U₂ имеет нижнюю границу, равную 0 (что указывает на точный прогноз), не имеет верхней границы. Когда значение U₂ thing превышает 1, это означает, что метод прогноза становится хуже, чем наивное прогнозирование.

Оценка модели

Вернемся к нашему набору данных. Он содержит результаты 4 различных моделей прогнозирования.

В таблице ниже представлена ​​вся статистика, описанная в этой статье, рассчитанная для каждой модели.

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

Выводы

Если основным показателем успеха была способность модели сообщать о внезапных изменениях прогнозируемой переменной, то предпочтительным методом будет «Advanced # 2». Это согласуется с интуицией и визуальной оценкой сюжета. Однако этот метод является наиболее сложным с точки зрения расчета и требует использования внешних переменных. Но в такой важной сфере проблемы, как производство электроэнергии, это приемлемая стоимость.

С другой стороны, «Advanced # 1» и методы скользящих средних подходят для грубых оценок. Вышеупомянутые выводы было бы невозможно сделать без рассмотрения альтернативной статистики, которая показывает, что никакая статистика оценки прогнозов не является избыточной, поскольку каждая из них имеет информацию, которую нужно сообщить.

Описанную статистику я использовал на практике при создании моделей:





использованная литература

Http://www.treasury.act.gov.au/documents/Forecasting%20Accuracy%20-%20ACT%20Budget.pdf
https://www.economicsnetwork.ac.uk/showcase/cook_forecast
https://www.jstor.org/stable/2352722?seq=1
https://stackoverflow.com/questions/54931514/theils-u-1-theils-u -2-формула-коэффициента-прогноза в питоне
https://stats.stackexchange.com/questions/345178/interpretation-of-theils-u2-statistic-forecasting-methods-and-applications
https://docs.oracle.com/cd/E40248_01/epm.1112/cb_statistical/frameset.htm?ch07s02s03s04.html
https://www.statisticshowto.com/mean- ошибка /
https://en.wikipedia.org/wiki/Mean_percentage_error
https://arxiv.org/abs/1905.11744