Количественная оценка неопределенности
В вычислительных прогнозах всегда присутствуют неопределенности, которые могут быть связаны с редкостью наблюдаемых инцидентов или выбором гиперпараметров и моделей. Хотя невозможно сделать точный точечный прогноз, мы можем попытаться минимизировать погрешность прогноза, уменьшая неопределенности. Количественная оценка неопределенности является выдающейся статистической техникой, которая включает неопределенность в процесс обучения модели, чтобы предоставить пользователям более точный и надежный результат.
В стандартной конфигурации NeuralProphet предсказывается единственное значение для каждого отдельного случая. Результат предсказания представляет собой только точечную оценку, без учета неопределенностей. Вместо этого интервалы предсказаний обеспечивают более точную оценку, количественно оценивая неопределенность и возможный диапазон значений для каждого отдельного случая.
В этом сеансе мы познакомим вас с двумя статистическими методиками, доступными в NeuralProphet: (1) квантильной регрессией и (2) конформным прогнозированием. Эти две модули не являются взаимоисключающими, вы можете применять оба модуля поверх любых моделей.
Модуль квантильной регрессии позволяет алгоритму изучать только определенный квантиль выходных переменных для каждого случая. Что касается модуля конформных предсказаний, он добавляет процесс калибровки поверх модели для количественной оценки неопределенностей в данных как для точечных оценок, так и для интервалов прогнозирования. Дополнительную информацию о концепции квантильной регрессии и конформных предсказаниях можно найти, перейдя по соответствующим ссылкам.
Мы продемонстрируем и более подробно рассмотрим оба модуля количественной оценки, используя набор данных о потреблении электроэнергии больницей. В наборе данных записано потребление электроэнергии больницей в Сан-Франциско в 2015 году по часам.
Разделение данных
В NeuralProphet существует функция разделения данных, которая делит входной набор данных на два подмножества. Вы можете настроить эту функцию, указав частоты временных рядов и коэффициент разделения. Список псевдонимов частот можно найти здесь.
В нашем наборе данных о нагрузке на электросеть больницы мы разделим исходный набор данных на обучающую и тестовую выборки с соотношением обучения и тестирования 1/16.
После этого разделения мы получим 8213 и 547 экземпляров в качестве обучающего и тестового наборов соответственно.
1.Квантильная регрессия
По умолчанию прогнозирование с помощью NeuralProphet выдаёт только одно значение в качестве точечного прогноза для каждого случая. Это значение рассчитывается на основе регрессии 50-го процентиля. Чтобы сгенерировать интервал прогнозирования, объект NeuralProphet требует на вход список, содержащий как минимум пару нижнего и верхнего квантилей. Однако в модели NeuralProphet можно создать столько квантилей, сколько вы пожелаете.
На этот раз мы вернемся к прогнозированию нагрузки на электроснабжение нашей больницы. Предполагая, что мы хотим, чтобы истинное значение находилось в пределах интервала прогнозирования оценщика 90% времени (то есть уровень достоверности 90%), мы создаем модель квантильной регрессии, которая выводит значения 5-го, 50-го и 95-го процентилей соответственно.
После добавления модуля квантильной регрессии в модель, NeuralProphet использует функцию потерь пинбола (квантильные потери) для оценки качества подгонки обученной модели. Это аналогично использованию функции потерь логарифмического правдоподобия для гауссовой линейной регрессии.
В отличие от использования абсолютной ошибки, функция потерь пинбола применяет различное взвешивание ошибок для каждого квантиля. Обычно мы выбираем верхний квантиль выше 50-го процентиля в качестве верхней границы интервала прогнозирования и другой нижний квантиль ниже 50-го процентиля в качестве нижней границы интервала. Когда фактический результат оказывается вне интервала прогноза, функция потерь присваивает более высокий вес абсолютной ошибке, и наоборот. В итоге мы минимизируем функцию потерь, итеративно корректируя параметры квантильной линии.
Давайте посмотрим, как отличается взвешивание между разными нижними квантилями (10-й против 25-го процентиля). Процентиль указывает вероятность того, что истинное значение окажется ниже оценочного значения. По сравнению с 25-м процентилем, у 10-го процентиля меньше ожидаемая вероятность того, что истинное значение окажется ниже линии. Когда фактическое значение оказывается вне интервала прогноза (т.е. фактическое значение меньше прогнозируемого), для 10-го процентиля такая ошибка более проблематична, поскольку он ожидает, что 90% истинных значений будут выше линии, в отличие от 75%, находящихся выше линии для 25-го процентиля.
Прогноз потребления электроэнергии в больнице визуализирован ниже. yhat1
показывает прогноз, сделанный на 50-м процентиле, в то время как доверительный интервал обозначен светло-синим цветом. Нижняя граница - это результат прогноза на 10-м квантиле, в то время как верхняя граница - на 90
2. Конформное предсказание
В то время как существуют различные способы выполнения конформных предсказаний, NeuralProphet использует разделенное конформное предсказание, требующее наличия контрольной или калибровочной выборки. Для выполнения разделенного конформного предсказания набор данных должен быть разделен на три отдельных набора для обучения, калибровки и тестирования соответственно. Исходный интервал предсказания создается с базовой моделью, обученной на обучающем наборе данных. Неопределенность количественно определяется путем сравнения целевых переменных в калибровочном наборе с прогнозируемым значением. Окончательный интервал конформного предсказания формируется путем добавления количественно определенной неопределенности к обоим концам прогнозируемого значения.
Вы можете выбрать Наивный (или абсолютный остаток) или Конформационную Квантильную Регрессию (или CQR) для конформного прогнозирования в NeuralProphet. В следующем подразделе мы подробно обсудим эти два варианта.
Комплект для калибровки и проверки
Для использования функции конформного предсказания в NeuralProphet необходимо как минимум три подмножества (тестирование, калибровка и тестирование). Вы можете добавить подмножество для валидации в эту модель. Если вы решите добавить подмножество для валидации для обучения базовой модели, убедитесь, что период подмножества для валидации находится между подмножествами для обучения и калибровки. Здесь мы не будем подробно останавливаться на процедуре валидации, однако вы можете обратиться к учебному пособию Процедура обучения, валидации и тестирования, чтобы узнать, как построить модель NeuralProphet, используя набор данных для валидации.
В данном случае мы дополнительно разделяем калибровочный набор от обучающего набора с соотношением обучение-калибровка 1/11.
После этого разделения мы получим 7467, 746 и 547 случаев соответственно для обучающего, калибровочного и тестового наборов.
Обучение базовой модели
Вы можете создать любую модель NeuralProphet, которую считаете подходящей, в качестве базовой модели. Процесс калибровки в методе конформных предсказаний будет добавлен позже к базовой модели для количественной оценки неопределенности в нашем окончательном прогнозе.
Мы заинтересованы в изучении того, как конформный прогноз влияет на различные модели. Возвращаясь к нашему примеру, мы сравним результаты конформного прогнозирования между простой квантильной регрессией и сложной 4-слойной авторегрессионной моделью на нашем примере здесь. Вы можете обратиться к сессии квантильной регрессии выше и к материалам самостоятельного учебника по Авторегрессии для понимания логики и применения функций.
После завершения настройки модели, мы обучаем модель на тренировочном наборе данных. Если вы дополнительно разделили тренировочный набор данных на обучающий и валидационный, вы можете либо (i) объединить эти два набора в один для обучения, либо (ii) задать обучающий и валидационный наборы как два отдельных параметра.
Мы используем подготовленную базовую модель для прогнозирования как точечного прогноза, так и интервалов прогнозирования регрессии квантилей для тестового набора данных.
Вариант 1: Наивное конформное предсказание
После обучения базовой модели мы затем проводим процесс калибровки с использованием модуля naive
. Этапы описаны следующим образом:
i. предсказать выходное значение экземпляров в калибровочном наборе; ii. вычислить абсолютное отклонение, сравнив фактическое и предсказанное значение для каждого наблюдения в калибровочном наборе; iii. отсортировать все абсолютные отклонения по возрастающей; iv. найти квантифицированную неопределенность q с желаемым уровнем достоверности; v. использовать квантифицированную неопределенность q для создания итоговых интервалов прогнозирования.
Возвращаясь к нашему примеру, необходимо указать значение параметра для набора калибровки, уровень значимости (альфа) для конформной предсказательной модели на основе предварительно обученных моделей, упомянутых выше.
Тип данных не может быть отображен: application/vnd.plotly.v1+json
Тип данных не может быть отображен: application/vnd.plotly.v1+json
На представленных выше графиках показано, как меняется количественно определенная неопределенность q при различных уровнях доверия
Ниже приведены значения q для каждой модели. Поскольку все они положительные, вы увидите, что наивный интервал превышает интервал простого QR. У более слабой модели большой разрыв между этими двумя интервалами, так как у нее большее значение q, в то время как границы для более сложной модели смещены гораздо меньше.
0
2015-12-09 06:00:00
803.410865
988.585815
827.912791
1149.258840
1031.427246
-35.461987
-7.379447
909.404419
1087.498291
1
2015-12-09 07:00:00
868.264194
1089.076294
928.403269
1249.749319
1031.444336
-43.485428
101.117432
994.053711
1189.946045
2
2015-12-09 08:00:00
975.752982
1146.444092
985.771067
1307.117117
1031.461304
-51.675148
166.657928
1057.043823
1236.407227
3
2015-12-09 09:00:00
983.268943
1155.003296
994.330271
1315.676321
1031.478271
-59.986122
183.511185
1078.018799
1243.008301
4
2015-12-09 10:00:00
1095.825986
1145.466553
984.793528
1306.139578
1031.495239
-68.370621
182.341919
1073.590576
1236.537354
...
...
...
...
...
...
...
...
...
...
...
542
2015-12-31 20:00:00
845.563081
833.224609
672.551584
993.897634
1040.634766
-103.066475
-104.343666
757.201721
912.330200
543
2015-12-31 21:00:00
827.530521
795.515076
634.842051
956.188101
1040.651733
-94.571983
-150.564713
711.605408
872.624634
544
2015-12-31 22:00:00
829.256300
771.299255
610.626230
931.972280
1040.668701
-85.883865
-183.485596
677.626831
873.617920
545
2015-12-31 23:00:00
813.937205
762.211975
601.538950
922.885000
1040.685791
-77.059326
-201.414413
669.592285
869.896973
546
2016-01-01 00:00:00
815.588584
765.104858
604.431834
925.777883
1040.702759
-68.155449
-207.442413
675.509155
861.297852
547 rows × 10 columns
Мы можем затем построить прогнозируемые интервалы (значения 5-го, 50-го и 95-го процентилей), чтобы сравнить производительность моделей. Интервалы прогнозирования квантильной регрессии обозначены синим цветом, в то время как интервалы конформного прогнозирования с включенной количественно определенной неопределенностью обозначены красным цветом.
При одинаковом параметре квантиля простая модель имеет гораздо более широкий интервал предсказания регрессии квантилей (синим цветом) по сравнению со сложной моделью. То же самое происходит и с интервалами предсказания по методу конформных предсказаний (красным цветом), где более слабая модель имеет более широкую ширину, таким образом, она может захватить больше фактических значений, чем интервалы предсказания регрессии квантилей.
Вариант 2: Конформализованная квантильная регрессия
В методе Конформационной Квантильной Регрессии, или модуле cqr
, процесс следующий: i. рассчитать баллы несоответствия как разности между точками данных из калибровочного набора данных и их ближайшим прогнозным квантилем, что дает меру того, насколько хорошо данные соответствуют текущей модели квантильной регрессии. Баллы несоответствия отрицательные для точек данных внутри интервала квантильной регрессии и положительные, если они находятся за пределами интервала; ii. сортировать список баллов несоответствия; iii. найти значение q так, чтобы доля баллов в списке, превышающих q, была равна указанной ошибке; и iv. отрегулировать квантили из модели регрессии на величину q.
Есть два сценария того, что означает модель CQR, в зависимости от значения q. Если корректировка ширины одностороннего интервала прогнозирования положительная, то CQR выходит за пределы интервалов QR, поскольку считает интервал QR слишком уверенным. В противоположность этому, если корректировка ширины одностороннего интервала прогнозирования отрицательная, то CQR сокращает интервалы QR, поскольку считает интервал QR слишком
Тип данных не может быть отображен: application/vnd.plotly.v1+json
Тип данных не может быть отображен: application/vnd.plotly.v1+json
Ниже приведены значения q для каждой модели. Поскольку все они положительные, вы увидите, что интервал CQR расширяется за пределы простого QR. У cp_model1 большой разрыв между этими двумя интервалами, поскольку у неё большее значение q, в то время как границы сдвигаются гораздо меньше для cp_model2.
Мы снова строим интервалы прогнозирования, чтобы изучить, как метод CQR влияет на результат.
Оцените производительность
Мы используем ширину интервала и коэффициент недопокрытия в качестве показателей эффективности:
interval_width
: Средняя ширина прогнозируемого интервала, илиq_hat
, умноженная на 2, поскольку она статична или неадаптивна, также известна как показатель эффективности.miscoverage_rate
: Фактический коэффициент ошибки недопокрытия на тестовом наборе OOS, также известен как показатель
Чем меньше показатели, тем лучше работают модели.
Давайте протестируем с моделями, которые мы обучили выше. Сначала мы создадим датафрейм с двумя строками для двух моделей, которые мы обучили, а затем мы объединим показатели эффективности Naive и CQR в датафрейме для оценки.
В этой сессии мы агрегируем показатели эффективности для наивного алгоритма и помещаем их в структуру таблицы оценок. Расчет показателей производительности осуществляется при активации параметра evaluate
в функции конформных предсказаний.
В заключение мы объединяем датафреймы оценки наивного и cqr подходов, а затем сравниваем, как модели работают с наивными прогнозами и прогнозами cqr.
yhat1
yhat1
interval_width
miscoverage_rate
interval_width
miscoverage_rate
0
321.346050
0.107861
309.400519
0.107861
1
40.717526
0.065263
41.712111
0.063158
Производительность обученной модели выше:
Этот блокнот использует модели с одним временным шагом прогнозирования, поэтому у нас будет только
yhat1
в качестве точечного оценщика.По всем трем методам предсказания неопределенности, более сложная модель авторегрессии (
m2
) имеет меньшуюширину интервала
ипроцент непокрытия
по сравнению с более простой моделью (m1
). Таким образом, мы можем сделать вывод, что чем сложнее модель, тем лучше она адаптируется к данным и тем точнее делает предсказанияМетоды конформных предсказаний Наивный и CQR значительно превосходят метод QR по показателю
miscoverage_rate
, что свидетельствует о том, что метод QR излишне уверен в своем диапазоне квантилей.Ширина интервала
должна быть увеличена для того, чтобы фактический показательmiscoverage_rate
(на тестовой выборке вне выборки) совпал со специфицированным значениемalpha
равным0.1
.interval_width
удваивает количественно определенные неопределенности (qhat1
) для Наивных конформных предсказаний, таким образом, вы увидите симметричные интервалы предсказаний.При рассмотрении только простой модели квантильной регрессии (
m1
), CQR предпочтительнее. Хотяmiscoverage_rate
у неё такой же, как и у Naive, она всё же имеет более узкийinterval_width
прогнозируемого интервала.Для сложной модели (
m2
), Наивный метод показывает немного лучшуюширину интервала
, но CQR обеспечивает немного лучшийпроцент непокрытия
. Возможно, будет полезно подать модели больше данных, чтобы определить, какой метод предпочтительнее.
Last updated