/GARCH_Neural_Network

The estimation of GARCH parameters using neural networks

Primary LanguageJupyter Notebook

GARCH_Neural_Network

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

Install

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

GARCH(1,1) model

generalized autoregressive conditional heteroskedasticity (GARCH) model: https://en.wikipedia.org/wiki/Autoregressive_conditional_heteroskedasticity

Method

  1. randomly choose GARCH (1,1) parameters and use them to generate time series which will be treated as training data.

  2. use some trick to transform GARCH parameters so that they are in the range (0,1).

  3. 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).

  4. train the model!

  5. generate test time series which will be used to test our training model as well as the maximum likelihood procedure.

  6. compare the mean-squared-error of each GARCH(1,1) parameters.

Outlook

  1. Consider the time series is sampled from the distribution beyond normal distribution, such as distribution with skewness or Student's t distribution
  2. Find better neural network model or better hyperparameters.

Reference

Risk Management and Financial Institutions, John C. Hull