Why GARCH Fitted Values Can Be Constant
Summary
A GARCH(1,1) specification can model conditional volatility while leaving the return series’ conditional mean as a constant. In the R fGARCH example, the fitted series therefore equals the estimated mean coefficient at every time step; the conditional variance and standard deviation outputs describe volatility separately.
To make fitted values vary over time, the answer suggests adding an ARMA structure to the mean equation. That makes the fitted series follow the specified mean process. The response cautions that modeling return means with ARMA may not be necessary for stock returns. It offers a conceptual explanation, but no diagnostics or evidence about the particular time series, so whether a richer mean model is appropriate depends on the data and research goal.
Key ideas
- A GARCH model can specify changing conditional volatility while retaining a constant conditional mean.
- With a constant mean specification, fitted values equal the estimated mean coefficient at every observation.
- Adding an ARMA mean structure can make fitted values vary over time.
- The usefulness of an ARMA mean model for stock returns depends on the data and modeling objective.
Tags
Full text
# R fGARCH fitted Values # R fGARCH fitted Values I am using the `fGARCh` package in R to analyze volatility of stock returns. More precisely I am using a `garch(1, 1)` fit. The code looks like this: ``` GARCH11<-garchFit(formula = ~garch(1, 1), data = Returns.zoo, trace = FALSE) ``` `Returns.zoo` is my time series. Now I know the interpretation of GARCH@h.t and GARCH@sigma.t. But what does GARCH@fitted tell me in relation to the time series and why is the value equal at all times? I would be very relieved if someone could enlighten me. Thanks very much! ## Answer by Eldioo (score 3) https://quant.stackexchange.com/a/34612 When fitting a volatility model, you have two series - one describing the actual data and one the data's volatility. In your code, the volatility part is modelled by a GARCH(1,1) model, while the data is simply modelled with a constant term, which is included by default. Hence, your "fitted" model is just a constant term and `GARCH1@fitted` provides a constant value, which is equal to the mean coefficient `mu`. If you additionally want to model the data series, you can add an ARMA model to your specification: ``` GARCH11<-garchFit(formula = ~arma(1,1)+garch(1, 1), data = Returns.zoo, trace = FALSE) ``` Then, the `@fitted` output will be time-varying, following an ARMA(1,1) process. As you said that you model stock returns, using an ARMA model probably isn't necessary, though.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.