Purpose: The purpose of this exercise is to integrate the understanding of the forecasting course material and apply a range of methods to a single forecasting problem.

Deadline: Tuesday, December 4 Monday, December 11, 2017

# Introduction

This final project has two objectives. First, it is an exercise to practically implement many of the techniques you learned this semester in ECO 5375. Second, it should familiarize you with automatic report generation which will be useful for streamlining and documenting your work going forward. You have to familiarize yourself with the knitr package in R. Here is some documentation for MS Word and html.

Format of submission: e-mail a word document and the associated .Rmd file to my SMU e-mail address.

First, you need to download the data from FRED (or other sources). Here’s an example for the level of real quarterly U.S. GDP:

library(xts)
library(tseries)
library(zoo)
library(lubridate)
library(pdfetch)
y <- pdfetch::pdfetch_FRED("GDPC1"")

# Step 2: Formatting the data

Bring the data from xts format to ts format.

# Step 3: Visualizing the raw data

Plot two graphs of the data (i) for the full sample and (ii) for the last 10 years.

# Step 4: Is the data stationary?

Apply one or more unit root tests to check whether or not the data is stationary. I recommend the urca packages, for example the commands urca::ur.df or urca::pp.

# Step 5: Apply data transformations

If necessary transform your data into a stationary time-series.

# Step 6: Estimate a linear trend

Estimate a linear trend model on the original data until 2016 Q3. Forecast 2016 Q4, 2017 Q1, 2017 Q2, 2017 Q3. Compare your forecast to the realizations.

# Step 7: Estimate a seasonal patterns model

Generate quarterly dummies and estimate a deterministic seasonal dummies model on the stationary data series. Do you expect seasonality in the data? If so why or why not? The estimation output should be included in the word document. I recommend the stargazer package.

# Step 8: Generate ACFs and PACFs

Generate ACFs and PACFs for your stationary time-series. What type of ARMA(p,q) model would you fit? Do not use the forecast::auto.arima(), but your own reasoning.

# Step 9: Consider selection criteria

Compute three different ARMA(p,q) models and compute the AIC, AICc, BIC. See description

# Step 10: Estimate ARMA(p,q) model

Estimate your preferred ARMA model on the stationary data until 2016 Q3. Forecast 2016 Q4, 2017 Q1, 2017 Q2, 2017 Q3. Compare your forecasts to the realizations.

# Step 11: Estimate smoothing models

Estimate a (i) Simple Exponential Smoothing (SES), (ii) a Holt’s Linear Trend, and (iii) Exponential Trend Model on the stationary data. Estimate (i), (ii) and (iii) until 2016 Q3. Forecast 2016 Q4, 2017 Q1, 2017 Q2, 2017 Q3. Compare your forecasts to the realizations. Pick (i) or (ii) or (iii) as your preferred methods for the next step.

# Step 12: Conduct out-of-sample forecasts

The raw data starts in 1947 Q1. Start with estimating your preferred model from Step 10 (an ARMA model) and Step 11 (an ES model) from 1947 Q2 to 1967 Q2 and forecast 1967 Q3, then estimate the model from 1947 Q3 to 1967 Q3 and forecast 1967 Q4, etc. that is using a rolling window (recall the animations: in the lecture we used an expanding window with the start point fixed at 1947 Q1) compute repeated “pseudo-out-of-sample” forecasts one-period ahead (t+1). Compute the ME, MAE, MAPE, RMSE for these two series of 201 = 1+ 50x4 (1967 Q3 - 2017 Q3) out-of-sample forecasts.

# Step 13: Combine your forecasts into a single forecast

Now combine the two forecast methods from Step 12 into a single forecast. Chose an optimal weighting scheme for the two forecasts based on the computations of pseudo out-of-sample forecasts in Step 12. Repeat the exercise from Step 12 and produce a combined forecast with 201 (1967 Q3 - 2017 Q3) pseudo out-of-sample one-period ahead forecasts using your optimal weight. Compute the ME, MAE, MAPE, RMSE. How do they compare to the two sets of ME, MAE, MAPE, RMSE you computed in Step 12?