7.8 Exercises
- Consider the
pigs
series — the number of pigs slaughtered in Victoria each month.- Use the
ses
function in R to find the optimal values of \(\alpha\) and \(\ell_0\), and generate forecasts for the next four months. - Compute a 95% prediction interval for the first forecast using \(\hat{y} \pm 1.96s\) where \(s\) is the standard deviation of the residuals. Compare your interval with the interval produced by R.
- Use the
Write your own function to implement simple exponential smoothing. The function should take arguments
y
(the time series),alpha
(the smoothing parameter \(\alpha\)) andlevel
(the initial level \(\ell_0\)). It should return the forecast of the next observation in the series. Does it give the same forecast asses
?Modify your function from the previous exercise to return the sum of squared errors rather than the forecast of the next observation. Then use the
optim
function to find the optimal values of \(\alpha\) and \(\ell_0\). Do you get the same values as theses
function?Combine your previous two functions to produce a function which both finds the optimal values of \(\alpha\) and \(\ell_0\), and produces a forecast of the next observation in the series.
- Data set
books
contains the daily sales of paperback and hardcover books at the same store. The task is to forecast the next four days’ sales for paperback and hardcover books.- Plot the series and discuss the main features of the data.
- Use the
ses
function to forecast each series, and plot the forecasts. - Compute the RMSE values for the training data in each case.
- Now apply Holt’s linear method to the
paperback
andhardback
series and compute four-day forecasts in each case. - Compare the RMSE measures of Holt’s method for the two series to those of simple exponential smoothing in the previous question. (Remember that Holt’s method is using one more parameter than SES.) Discuss the merits of the two forecasting methods for these data sets.
- Compare the forecasts for the two series using both methods. Which do you think is best?
- Calculate a 95% prediction interval for the first forecast for each series, using the RMSE values and assuming normal errors. Compare your intervals with those produced using
ses
andholt
.
- Now apply Holt’s linear method to the
For this exercise use data set
eggs
, the price of a dozen eggs in the United States from 1900–1993. Experiment with the various options in theholt()
function to see how much the forecasts change with damped trend, or with a Box-Cox transformation. Try to develop an intuition of what each argument is doing to the forecasts.[Hint: use
h=100
when callingholt()
so you can clearly see the differences between the various options when plotting the forecasts.]Which model gives the best RMSE?
- Recall your retail time series data (from Exercise 3 in Section 2.10).
- Why is multiplicative seasonality necessary for this series?
- Apply Holt-Winters’ multiplicative method to the data. Experiment with making the trend damped.
- Compare the RMSE of the one-step forecasts from the two methods. Which do you prefer?
- Check that the residuals from the best method look like white noise.
- Now find the test set RMSE, while training the model to the end of 2010. Can you beat the seasonal naïve approach from Exercise 7 in Section 3.7?
For the same retail data, try an STL decomposition applied to the Box-Cox transformed series, followed by ETS on the seasonally adjusted data. How does that compare with your best previous forecasts on the test set?
- For this exercise use data set
ukcars
, the quarterly UK passenger vehicle production data from 1977Q1–2005Q1.- Plot the data and describe the main features of the series.
- Decompose the series using STL and obtain the seasonally adjusted data.
- Forecast the next two years of the series using an additive damped trend method applied to the seasonally adjusted data. (This can be done in one step using
stlf
with argumentsetsmodel="AAN", damped=TRUE
. - Forecast the next two years of the series using Holt’s linear method applied to the seasonally adjusted data (as before but with
damped=FALSE
). - Now use
ets()
to choose a seasonal model for the data. - Compare the RMSE of the ETS model with the RMSE of the models you obtained using STL decompositions. Which gives the better in-sample fits?
- Compare the forecasts from the three approaches? Which seems most reasonable?
- Check the residuals of your preferred model.
- For this exercise use data set
visitors
, the monthly Australian short-term overseas visitors data, May 1985–April 2005.- Make a time plot of your data and describe the main features of the series.
- Split your data into a training set and a test set comprising the last two years of available data. Forecast the test set using Holt-Winters’ multiplicative method.
- Why is multiplicative seasonality necessary here?
- Forecast the two-year test set using each of the following methods:
- an ETS model;
- an additive ETS model applied to a Box-Cox transformed series;
- a seasonal naive method;
- an STL decomposition applied to the Box-Cox transformed data followed by an ETS model applied to the seasonally adjusted (transformed) data.
- Which method gives the best forecasts? Does it pass the residual tests?
- Compare the same five methods using time series cross-validation with the
tsCV
function instead of using a training and test set. Do you come to the same conclusions?
- The
fets
function below returns ETS forecasts.
fets <- function(y, h) {
forecast(ets(y), h = h)
}
a. Apply `tsCV()` for a forecast horizon of $h=4$, for both ETS and seasonal naive methods to the `cement` data, XXX. (Hint: use the newly created `fets` and the existing `snaive` functions as your forecast function arguments.)
b. Compute the MSE of the resulting $4$-steps-ahead errors. (Hint: make sure you remove missing values.) Why is there missing values? Comment on which forecasts are more accurate. Is this what you expected?
Compare
ets
,snaive
andstlf
on the following six time series. Forstlf
, you might need to use a Box-Cox transformation. Use a test set of three years to decide what gives the best forecasts.ausbeer
,bricksq
,dole
,a10
,h02
,usmelec
.Use
ets()
on the following series:bicoal
,chicken
,dole
,usdeaths
,lynx
,ibmclose
,eggs
.Does it always give good forecasts?
Find an example where it does not work well. Can you figure out why?