Generalized Autoregressive Conditional Heteroskedasticity (GARCH) Model

GARCH is a statistical model that can be used to analyse a number of different types of financial data, for instance, macroeconomic data. Financial institutions typically use this model to estimate the volatility of returns for stocks, bonds and market indices.

GARCH models describe financial markets in which volatility can change, becoming more volatile during periods of financial crises or world events and less volatile during periods of relative calm and steady economic growth.

GARCH model is the extension of ARCH model as follow:

Var(ût) = σ2t = β0 + β1 û2t - 1 + β2 σ2t - 1 + …… + βp û2t – p + βq σ2t – q

Here, σ2t is a function of lagged squared error term û2 as well as lagged σ2t

It is denoted by GARCH(p,q) where p is lagged error term and q is lagged variance. Lagged terms are added based on AIC, BIC, test of significance and so on.

GARCH(1,1) model is similar to ARCH(2) model and GARCH(p,q) model is similar to ARCH(p+q) model.

I implemented the GARCH Model to model the US/UK Foreign Exchange Rate data and GARCH(1,1) is not significant. GARCH(1,0) is significant which is equivalent to ARCH(1) model.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import math

# Load the input files

us_uk_fx_rates = pd.read_excel("./Data/US_UK_Foreign_ Exchange_Rate.xls", sheet_name = "Data"

Date us_uk_fx_rates
0 1973-01-01 2.36
1 1973-02-01 2.43
2 1973-03-01 2.47
3 1973-04-01 2.48
4 1973-05-01 2.53
Implementation of GARCH Models using Python