# dm.test

From forecast v4.04
by Rob Hyndman

##### Diebold-Mariano test for predictive accuracy

The Diebold-Mariano test compares the forecast accuracy of two forecast methods.

##### Usage

```
dm.test(e1, e2, alternative=c("two.sided","less","greater"),
h=1, power=2)
```

##### Arguments

- e1
- Forecast errors from method 1.
- e2
- Forecast errors from method 2.
- alternative
- a character string specifying the alternative hypothesis, must be one of
`"two.sided"`

(default),`"greater"`

or`"less"`

. You can specify just the initial letter. - h
- The forecast horizon used in calculating
`e1`

and`e2`

. - power
- The power used in the loss function. Usually 1 or 2.

##### Details

The null hypothesis is that the two methods have the same forecast accuracy. For `alternative="less"`

, the alternative hypothesis is that method 2 is less accurate than method 1. For `alternative="greater"`

, the alternative hypothesis is that method 2 is more accurate than method 1. For `alternative="two.sided"`

, the alternative hypothesis is that method 1 and method 2 have different levels of accuracy.

##### Value

- A list with class
`"htest"`

containing the following components: statistic the value of the DM-statistic. parameter the forecast horizon and loss function power used in the test. alternative a character string describing the alternative hypothesis. p.value the p-value for the test. method a character string with the value "Diebold-Mariano Test". data.name a character vector giving the names of the two error series.

##### References

Diebold, F.X. and Mariano, R.S. (1995) Comparing predictive accuracy. *Journal of Business
and Economic Statistics*, **13**, 253-263.

##### Examples

```
# Test on in-sample one-step forecasts
f1 <- ets(WWWusage)
f2 <- auto.arima(WWWusage)
accuracy(f1)
accuracy(f2)
dm.test(residuals(f1),residuals(f2),h=1)
# 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)
accuracy(f2.out)
dm.test(residuals(f1.out),residuals(f2.out),h=1)
```

*Documentation reproduced from package forecast, version 4.04, License: GPL (>= 2)*

### Community examples

Looks like there are no examples yet.