Критерий Диболда-Мариано
Материал из MachineLearning.
|
Критерий Диболда-Мариано (Diebold-Mariano test) — статистический тест, позволяющий сравнивать качество прогнозов временного ряда двух предсказательных моделей. Впервые был представлен в работе Диболда и Мариано в 1995 году, где был приведен небольшой обзор тестов такого рода.
Обозначения
— значения временного ряда,
— прогнозные значения модели A,
— прогнозные значения модели B,
и — остатки прогнозов обеих моделей,
— функция потерь,
,
гипотеза : , т.е. качество прогнозов одидинаково,
альтернатива (двусторонняя): , т.е. качество прогнозов отличается.
Описание
Если является слабостационарным временным рядом, то можно показать, что , где , — неизвестное матожидание процесса, — его дисперсия. Вычисляемая статистика: , где , где — автоковариация порядка . Гипотезе соответствует .
Широта применения
Этот тест является устойчивым к различным отклонениям от стандартных предположенный о свойствах ошибок прогнозирования. А именно предполагается, что ошибки прогнозирования могут не удовлетворять классическим критериям, т.е. могут не быть нормальными, иметь ненулевой средний уровень, а также быть серийно и одновременно коррелированными.
Также описанный критерий является надежным для широкого класса функций потерь. В частности, функции потерь не обязаны быть квадратическими или симметричными и непрерывными. Помимо этого, ошибки прогнозирования могут не быть гауссовскими, а также могут иметь ненулевой средний уровень и быть коррелированными (как серийно, так и одновременно). Последнее допущение особенно важно, поскольку сравниваемые прогнозы являются прогнозами одного и того же временного ряда и основаны на довольно сильно совпадающих информационных множествах, вследствие чего ошибки прогнозирования могут быть сильно одновременно коррелированными. Однако ошибки прогнозирования в общем случае являются серийно коррелированными, и предложенный тест позволяет учитывать и эту особенность.
Также возможны модификации критерия для односторонних альтернатив и для коротких временных рядов.
Пример
Ниже приведен пример использования критерия на языке R. Критерий запускается два раза: в первый раз он отвергает гипотезу об совпадении качества прогнозов, а во второй раз не отвергает.
> library(forecast) > # Test on in-sample one-step forecasts > f1 <- ets(WWWusage) > f2 <- auto.arima(WWWusage) > accuracy(f1) ME RMSE MAE MPE MAPE MASE ACF1 Training set 0.2528217 3.473243 2.812361 0.2803163 2.22432 0.6214815 0.1923543 > accuracy(f2) ME RMSE MAE MPE MAPE MASE Training set 0.04803303 3.10304 2.395923 0.073378 1.914083 0.5294563 ACF1 Training set -0.007904884 > dm.test(residuals(f1),residuals(f2),h=1) Diebold-Mariano Test data: residuals(f1)residuals(f2) DM = 2.2181, Forecast horizon = 1, Loss function power = 2, p-value = 0.02883 alternative hypothesis: two.sided > # Test on out-of-sample one-step forecasts > f1 <- ets(WWWusage[1:80]) > f2 <- auto.arima(WWWusage[1:80]) > f1.out <- ets(WWWusage[81:100],model=f1) > f2.out <- Arima(WWWusage[81:100],model=f2) > accuracy(f1.out) ME RMSE MAE MPE MAPE MASE ACF1 Training set 0.1202345 3.31996 2.657234 0.06949685 1.39911 0.4390213 0.2341423 > accuracy(f2.out) ME RMSE MAE MPE MAPE MASE Training set 0.9983241 3.290295 2.401282 0.6350809 1.356964 0.3967336 ACF1 Training set 0.000574029 > dm.test(residuals(f1.out),residuals(f2.out),h=1) Diebold-Mariano Test data: residuals(f1.out)residuals(f2.out) DM = 0.054, Forecast horizon = 1, Loss function power = 2, p-value = 0.9575 alternative hypothesis: two.sided
Программные реализации
Ссылки
- Francis X. Diebold & Robert S. Mariano, 1994. "Comparing Predictive Accuracy", NBER Technical Working Papers 0169, National Bureau of Economic Research, Inc.
- K. Bouman. Quantitative methods in international finance and macroeconomics. Econometric Institute, 2011. Lecture FEM21004-11