# Forecasting returns using GARCH model alone

I need to know if I gave a GARCH model the returns of prices, how could I get the forecasts for the returns not the volatility in case of using GARCH without ARIMA (because in the equation of GARCH model there is an error term which is random)? But in some papers the GARCH is used for forecasting the return not the sigma. How can I do it in R, say, "fGarch" package?

• Asking for R code is off topic, but you will easily find code examples in the package manual for "fGarch" and help files for the R functions used for specifying, estimating and forecasting GARCH models. – Richard Hardy May 14 '17 at 10:09

## 1 Answer

A model for the returns $r_t$ with a GARCH structure for the conditional variance will look like this: \begin{aligned} r_t &= \mu_t + u_t, \\ u_t &= \sigma_t \varepsilon_t, \\ \sigma_t^2 &= \omega + \alpha_1 u_{t-1}^2 + \beta_1 \sigma_{t-1}^2, \\ \varepsilon_t &\sim i.i.d.(0,1), \end{aligned} where $\mu_t$ is the conditional mean of $r_t$ which could be e.g. a constant or an ARMA process. (Here we have a GARCH(1,1) model, but the extension to GARCH(p,q) is trivial.)

An optimal (under square loss) point forecast of $r_{t+h}$ for some $h>0$, given the available information $I_t$, is \begin{aligned} \mathbb{E}(r_{t+h}|I_t) &= \mathbb{E}(\mu_{t+h}+u_{t+h}|I_t) \\ &= \mathbb{E}(\mu_{t+h}|I_t) + \mathbb{E}(u_{t+h}|I_t) \\ &= \mathbb{E}(\mu_{t+h}|I_t) + 0 \\ &= \mathbb{E}(\mu_{t+h}|I_t). \\ \end{aligned} Since we normally do not know $\mathbb{E}(\mu_{t+h}|I_t)$, we take a forecasted value from the model, $\hat\mu_{t+h|t}$. So in practice the point forecast is $\hat\mu_{t+h|t}$.

In case $\mu_t=\mu$ is a constant (could be zero, could be nonzero), the optimal (under square loss) point forecast of $r_{t+h}$ for some $h>0$ is $\mathbb{E}(\mu_{t+h}|I_t)=\mu$. In practice you would take the fitted intercept $\hat\mu$ from the conditional mean model as the point forecast.

Example with R package "fGarch":

library(fGarch)
model = garchFit(formula = ~ garch(1, 1), data = dem2gbp, cond.dist = "norm", include.mean = TRUE)
fcst=predict(model,n.ahead=5)
mean.fcst=fcst$meanForecast  The last line saves the point forecasts in an object called mean.fcst. Check coef(model) to verify that the forecasts equal the fitted intercept mu. • I am using GARCH without ARIMA and my question is about the ebsilon term how can i predict it or how can predict the returns without it – ahmed reda May 14 '17 at 10:27 • @ahmedreda, GARCH without ARMA is the case where$\mu_t=\mu$. You just take the fitted intercept of the model, and it is your forecast 1,2, ... steps ahead. The expected value of$\varepsilon_{t+h}$is zero for$h>0\$, and so it does not play a role in the point forecast. So in the end, the point forecast is super simple in your case. – Richard Hardy May 14 '17 at 10:31
• If I do not include the mean in garch model then muo=0 and if I use it will be a constant I want to do as in this paper journals.plos.org/plosone/article/file?id=10.1371/… – ahmed reda May 14 '17 at 10:45
• the problem that i do not use mean model which means that mean forecast is zero how then i forecast that is my first question and i have nor got the answer yet – ahmed reda May 14 '17 at 12:40
• @user6472523, If a model was fit with garchFit and saved as object x in R, the fitted conditional variance is obtained as x@h.t and fitted conditional standard deviation as x@sigma.t. See the function description for more details. – Richard Hardy May 8 '18 at 15:30