In this program, I will use neural network methods to estimate GARCH (1,1) parameters. The result will be compared with the most usual approach "maximum likelihood method". This programming is run in Colab
This project need Python 3.0, and the installation of Tensorflow version: 2.0.0 and Arch toolkit from https://arch.readthedocs.io/en/latest/univariate/introduction.html
pip install tensorflow==2.0.0b1 pip install arch
generalized autoregressive conditional heteroskedasticity (GARCH) model: https://en.wikipedia.org/wiki/Autoregressive_conditional_heteroskedasticity
-
randomly choose GARCH (1,1) parameters and use them to generate time series which will be treated as training data.
-
use some trick to transform GARCH parameters so that they are in the range (0,1).
-
construct the neural network model with the usage of convolution layers and LSTM. The output layer has three neurons and its activation function is sigmoid because the target variables are in the range (0,1).
-
train the model!
-
generate test time series which will be used to test our training model as well as the maximum likelihood procedure.
-
compare the mean-squared-error of each GARCH(1,1) parameters.
- Consider the time series is sampled from the distribution beyond normal distribution, such as distribution with skewness or Student's t distribution
- Find better neural network model or better hyperparameters.
Risk Management and Financial Institutions, John C. Hull