(This article was originally published at Hyndsight, and syndicated at StatsBlogs.)

It is common to fit a model using training data, and then to evaluate its performance on a test data set. When the data are time series, it is useful to compute one-step forecasts on the test data. For some reason, this is much more commonly done by people trained in machine learning rather than statistics.

If you are using the **forecast** package in R, it is easily done with ETS and ARIMA models. For example:

library(forecast) fit <- ets(trainingdata) fit2 <- ets(testdata, model=fit) onestep <- fitted(fit2) |

Note that the second call to `ets`

does not involve the model being re-estimated. Instead, the model obtained in the first call is applied to the test data in the second call. This works because fitted values are one-step forecasts in a time series model.

The same process works for ARIMA models when `ets`

is replaced by `Arima`

or `auto.arima`

. Note that it does *not* work with the `arima`

function from the **stats** package. One of the reasons I wrote `Arima`

(in the **forecast** package) is to allow this sort of thing to be done.

**Please comment on the article here:** **Hyndsight**