Критерий Диболда-Мариано
Материал из MachineLearning.
 (Новая: {{TOCright}}  '''Критерий Диболда-Мариано''' (Diebold-Mariano test) -- статистический тест, позволяющий сравнивать качес...)  | 
				м  (→Ссылки)  | 
			||
| (20 промежуточных версий не показаны.) | |||
| Строка 1: | Строка 1: | ||
{{TOCright}}  | {{TOCright}}  | ||
| - | '''Критерий Диболда-Мариано''' (Diebold-Mariano test)   | + | '''Критерий Диболда-Мариано''' (Diebold-Mariano test) — [[Статистический критерий|статистический тест]], позволяющий сравнивать качество прогнозов [[Временной_ряд|временного ряда]] двух предсказательных моделей. Впервые был представлен в работе Диболда и Мариано в 1995 году, где был приведен небольшой обзор тестов такого рода.   | 
| - | ==  | + | ==Обозначения==  | 
| - | + | <tex>\{y_t\}_{t=1}^T</tex> — значения временного ряда,  | |
| - | + | <tex>\{y_{At}\}_{t=1}^T</tex> — прогнозные значения модели A,  | |
| + | <tex>\{y_{Bt}\}_{t=1}^T</tex> — прогнозные значения модели B,  | ||
| + | <tex>\{e_{At}\}_{t=1}^T</tex> и <tex>\{e_{Bt}\}_{t=1}^T</tex> — остатки прогнозов обеих моделей,  | ||
| + | <tex>g(e)</tex> — функция потерь,  | ||
| - | ==  | + | <tex>d_{t} = g(e_{At}) - g(e_{Bt}), t=1...T</tex>,   | 
| - | + | гипотеза <tex>H_0</tex>: <tex>\mathbf{E}d=0</tex>, т.е. качество прогнозов одидинаково,  | |
| + | |||
| + | альтернатива (двусторонняя): <tex>\mathbf{E}d\neq0</tex>, т.е. качество прогнозов отличается.  | ||
| + | |||
| + | ==Описание==  | ||
| + | |||
| + | Если <tex>\{d_{t}\}_{t=1}^T</tex> является слабостационарным временным рядом, то можно показать, что <tex>\sqrt T(\bar d - \mu) \stackrel{d}{\longrightarrow} N(0, f)</tex>, где <tex>\bar d =\frac1T \sum_1^{T} d_t</tex>, <tex>\mu</tex> — неизвестное матожидание процесса, <tex>f</tex> — его дисперсия. Вычисляемая статистика: <tex>S=\frac{\bar d}{\sqrt{(\bar f / T)}}</tex>, где <tex>\bar f = \sum_{t=-\infty}^{t=\infty}\gamma_d(\tau)</tex>, где <tex>\gamma_d(\tau)</tex> — автоковариация <tex>d</tex> порядка <tex>\tau</tex>. Гипотезе <tex>H_0</tex> соответствует <tex>S \sim N(0, 1)</tex>.  | ||
| + | |||
| + | ==Широта применения==  | ||
| + | Этот тест является  устойчивым к различным отклонениям от стандартных предположенный о свойствах ошибок прогнозирования. А именно предполагается, что ошибки прогнозирования могут не удовлетворять классическим критериям, т.е. могут не быть нормальными, иметь ненулевой средний уровень, а также быть серийно и одновременно коррелированными.  | ||
| + | |||
| + | Также описанный критерий является надежным для широкого класса функций потерь. В частности, функции потерь не обязаны быть квадратическими или симметричными и непрерывными. Помимо этого, ошибки прогнозирования могут не быть гауссовскими, а также могут иметь ненулевой средний уровень и быть коррелированными (как серийно, так и одновременно). Последнее допущение особенно важно, поскольку сравниваемые прогнозы являются прогнозами одного и того же временного ряда и основаны на довольно сильно совпадающих информационных множествах, вследствие чего ошибки прогнозирования могут быть сильно одновременно коррелированными. Однако ошибки прогнозирования в общем случае являются серийно коррелированными, и предложенный тест позволяет учитывать и эту особенность.  | ||
Также возможны модификации критерия для односторонних альтернатив и для коротких временных рядов.  | Также возможны модификации критерия для односторонних альтернатив и для коротких временных рядов.  | ||
| + | ==Пример==  | ||
| + | Ниже приведен пример использования критерия на языке R. Критерий запускается два раза: в первый раз он отвергает гипотезу об совпадении качества прогнозов, а во второй раз не отвергает.  | ||
| + | <pre>  | ||
| + | > 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  | ||
| + | |||
| + | </pre>  | ||
| + | |||
| + | ==Программные реализации==  | ||
| + | * Для [http://www.mathworks.com/matlabcentral/fileexchange/33979-diebold-mariano-test-statistic Matlab].  | ||
| + | * Для R есть функция dm.test из пакета [http://cran.r-project.org/web/packages/forecast/forecast.pdf forecast].  | ||
== Ссылки ==  | == Ссылки ==  | ||
<references />  | <references />  | ||
| - | *   | + | * 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  | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | [[Категория:  | + | [[Категория:Прикладная статистика]]  | 
| + | [[Категория:Статистические тесты]]  | ||
[[Категория:Анализ временных рядов]]  | [[Категория:Анализ временных рядов]]  | ||
Текущая версия
 
  | 
Критерий Диболда-Мариано (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
 

