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?
Solved – Forecasting returns using GARCH model alone
forecastinggarchr
Related Solutions
My goal is simply to ... find statistically significant predictive results. Also, is there a particular market you would look at (energy, rates, equities)?
Most if not all the established and liquid financial markets will be very hard to predict whatever model you will use. If markets were relatively easy to predict, market participant would try to exploit that to make money. By doing that they would eliminate the predictability. This brings a contradiction, and thus the markets are not easy to predict.
Lastly, is GARCH only used for forecasting volatility? The professor I mentioned seemed to suggest I should turn toward GARCH or ARIMA-GARCH models to model stock returns. I read some papers that seemed to imply it could also be used for actual returns...
GARCH model is used for modelling the conditional variance of the disturbance term of the conditional mean model for a dependent variable $y_t$. E.g. if you have a conditional mean model $y_t=\alpha+\epsilon_t$, the GARCH model will describe the conditional variance of $\epsilon_t$. Sometimes the conditional mean model is "empty" ($y_t=\epsilon_t$), then GARCH model is used to model the conditional variance of $y_t$ itself.
Even if you are primarily interested in the conditional mean model (e.g. you want to predict stock returns using an ARMA model), a GARCH model combined with a model for the conditional mean can be useful. If the conditional variance of the dependent variable is time-varying, that should be accounted for, and a GARCH model does exactly that. If a time-varying conditional variance is neglected, the conditional mean model may (and likely will) be invalid.
Would the AR and MA components in an ARIMA-GARCH model differ from those in an ARMA model?
Yes. That also illustrates my last remark above.
From what I vaguely understood, ARIMA and GARCH are two completely separate things (with the former being used to predict the actual time series and the other to predict its volatility).
This is true. But as I have already explained, the two models can work together nicely.
I have a doubt whether I am forecasting the volatility of the prices or the actual values of return?
The reference manual for the "fGarch" package tells on p. 30 that method predict
will give forecasts for both the conditional mean and the conditional variance. There will be different columns "meanForecast", "meanError", and "standardDeviation" in the function's output. I suppose the first one will contain the forecasts for the conditional mean, which you seem to be interested in.
Since I am not looking at options, there is no point forecasting the volatility right? Because it won't tell me whether prices will go up or down.
You may or may not be interested in forecasting the conditional variance. However, as long as the conditional variance process can be well approximated by some GARCH model, you should account for that. Ignoring the GARCH patterns and (silently) assuming a constant conditional variance will yield inferior forecasts for the conditional mean, because the misspecification of the conditional variance equation will negatively affect the estimation of the conditional mean model.
Thus if (1) you want to have a good forecast for the conditional mean
and (2) the conditional variance follows a GARCH process, you should keep the GARCH model.
Since I have an ARMA(0,1) for my model, my forecasts will always be constant and if I don't include a mean in the model then the forecasts are <...> 0.
Yes, they will be constant, but no, the $h$-step-ahead forecast (for $h \geqslant 1$) for the conditional mean is not zero. It rather is
$$\hat{x}_{t+h|t}=\hat{\theta}_1 \hat{\varepsilon}_t,$$
where $\hat{\theta}_1$ is the estimated MA(1) coefficient and $\hat{\varepsilon}_t$ is the estimated innovation at time $t$.
I have assumed away the potential presence of the mean component $\hat{\mu}$ for simplicity.
So is there a point of using those different models in this case?
Without a GARCH model your $h$-step-ahead forecast (for $h \geqslant 1$) will be
$$\hat{x}_{t+h|t}=\hat{\theta}_1 \hat{\varepsilon}_t$$
but with a GARCH model your $h$-step-ahead forecast will be a constant
$$\tilde{x}_{t+h|t}=\tilde{\theta}_1 \tilde{\varepsilon}_t.$$
Note that in general $\hat{\theta}_1 \neq \tilde{\theta}_1$ and $\hat{\varepsilon}_t \neq \tilde{\varepsilon}_t$. This is because the estimates of $\theta$ and $\varepsilon$ from the conditional mean model will not be the same under different specifications of the conditional variance model. Therefore, you will have different forecasts $\hat{x}_{t+h|t} \neq \tilde{x}_{t+h|t}$, and a correct specification of the conditional variance model matters.
Best 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":
The last line saves the point forecasts in an object called
mean.fcst
.Check
coef(model)
to verify that the forecasts equal the fitted interceptmu
.