View
219
Download
3
Embed Size (px)
Citation preview
by
Adjoa Numatsi and Erick Rengifo Economics Department, Fordham University, New York
Exploratory analysis of GARCH Models versus Stochastic Volatility Models with
Jumps in Returns and Volatility (Work in Progress)
Conference on Quantitative Social Science Research Using R
Fordham University – 18-19 June, 2009
OUTLINE
Introduction Models and Data Preliminary Results Conclusion Further research
Introduction
Multiple attempts to improve equity pricing models to reconcile theory with empirical features
Important because misspecified models mistakes in forecasting
Example in option pricing: Black Scholes formula has shown biases (Rubinstein, 1985) due to 2 major assumptions on the underlying stock pricing process Stock prices: continuous path through time, their distribution is
lognormal Variance of stock returns is constant (Black and Scholes, 1973)
But asset returns are leptokurtic, and display volatility clustering (Chernov et al.(1999))
Both assumptions have been relaxed allowing for: discontinuities in the form of jump diffusion models (Merton (1976), Cox and Ross
(1976)) stochastic volatility (Hull and White (1987), Scott (1987), Heston (1993))
Bates (1996) and Scott (1997) combined stochastic volatility models with jumps in returns
However, the volatility process is still misspecified (Bakshi, Cao, and Chen (1997), Bates (2000), and Pan (2002)): Jumps in returns can generate large movement, but the impact is temporary Diffusive stochastic volatility is persistent but because its dynamics are driven by a
Brownian motion small normally distributed increments.
Need for conditional volatility to move rapidly and also be persistent
Duffie, Pan, and Singleton (2000) : models with jumps in both returns and volatility
Introduction, cont…
Estimated by Eraker, Johannes, and Polson (2003). Results showed almost no misspecification
But with all the features that these new models have, they are complex and it is time consuming to work with them.
Our study will address this issue by comparing models with jumps and simple GARCH models
GARCH models: Introduced by Bollerslev (1986) and Taylor (1986) Have time varying variance Discrete time models empirically favored compared to continuous
time models There are attempts to model GARCH with jumps (Duan, Ritchken, Sun
(2006)) but we are interested in simple GARCH
Introduction, cont…
Objectives
Given the complexity of stochastic volatility models with jumps in both returns and volatility (SV2J thereafter), we want to provide a model that will allow to choose SV2J models only when they are relevant
More specifically: We want to compare the performance of SV2J models and
simple GARCH models in order to identify the market situation in which their respective performances are significantly different.
Clusters vs. Jumps
Models should be able to capture specific behavior in the data
Index returns display clusters and jumps Jumps do not always imply existence of autoregressive
conditional heteroskedasticity (ARCH) process ARCH type Models cannot capture dynamics
However we do not always have jumps in mean and variance, but a smooth diffusion process where clusters can be found ARCH type Models can do a good job then.
Clusters vs. Jumps, cont…
1st case: a jump but no clusters.
Ho = Homoscedasticity
ARCH LM test (p_value) = 0.321236.
We do not reject the null there is no ARCH effect. GARCH model is not good here
2nd case: clusters.
ARCH LM test (p_value) = 0.011259.
We reject the null There is ARCH process, which means GARCH is appropriate here.
Clusters vs. Jumps, cont…
> GARCH_withARCH Title: GARCH Modelling Call: garchFit(formula = ~arma(0, 0) + garch(1, 1), data = Y, trace = FALSE) Mean and Variance Equation: data ~ arma(0, 0) + garch(1, 1) [data = Y] Conditional Distribution: norm Coefficient(s): mu omega alpha1 beta1 0.035196 0.079091 0.083386 0.814847 Std. Errors: based on Hessian Error Analysis: Estimate Std. Error t value Pr(>|t|) mu 0.03520 0.02540 1.385 0.165915 omega 0.07909 0.03072 2.575 0.010037 * alpha1 0.08339 0.02444 3.412 0.000644 *** beta1 0.81485 0.05389 15.121 < 2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Log Likelihood: -1392.634 normalized: -1.263733
•Alpha1 and beta1 are the GARCH and ARCH coefficients. They are significant
•R package used: fGarch
Clusters vs. Jumps, cont…
We can also have both jumps and clusters (which is actually the case in our last example).
Clusters are smooth movements increasing and decreasing. Jumps are not well defined in the literature, but they are characterized by one big move up or down. In our study we consider that differences in returns above 3 standard deviations from the mean are jumps
What we are doing is to find situations in which SV models give results significantly different from GARCH, and therefore are worth the effort of estimating them.
Data
FTSE100 daily returns from July 3, 1984 to Dec 29, 2006 (5686 observations)
The volatility was generated by a rolling window approach
Differences in returns and volatility above 3 standard deviations from the mean are considered as jumps
Data, cont…
Y
Mean 0.031348
Standard Error 0.013494
Median 0.062642
Mode 0
Standard Deviation 1.017553
Sample Variance 1.035415
Kurtosis 8.268878
Skewness -0.5567
Range 20.62556
Minimum -13.0286
Maximum 7.596966
Sum 178.2447
Count 5686
V
Mean 1.042229
Standard Error 0.015588
Median 0.685022
Mode #N/A
Standard Deviation 1.17543
Sample Variance 1.381636
Kurtosis 18.20166
Skewness 3.866057
Range 9.187442
Minimum 0.182197
Maximum 9.36964
Sum 5926.115
Count 5686
Jumps in returns and volatility
Models: GARCH
Models: SV2J
Models: SV2J, cont…
Methodology
Estimate a simple GARCH model and a SV2J model on a period where the market is stable, and on a period where there is instability in the market, and compare the performances. Market stability will be measured in standard deviations from long-term mean returns.
Compare the results in terms of out-of-sampling forecast errors and the use of resources (basically time)
Estimation method
There are packages in R dealing with GARCH (tseries, fGarch packages), and with Stochastic Differential Equations (sde package).
But there are no packages yet for sde equation with double jumps we have written a function in R to estimate our SV models, using MCMC method.
We first derived the posterior distribution from the prior information, the distribution of the state variables and the likelihood.
Then we derived the full conditional distributions from the posterior and programmed them in R.
R packages used: Rlab, MCMCpack, msm
Estimation method: R code
## R program library(Rlab) library(MCMCpack) library(msm) ## 1- Read in the data FTSE= read.table("c:/Users/Adjoa/FTSE_02june09.txt", header=T) attach(FTSE) summary(FTSE) ## 2- MCMC function ## Markov chain Monte Carlo algorithm for SV model with jumps mhsampler= function(NUMIT,data) {………… ## sample from full conditional distribution of xi_y (Gibbs update) xi_y = rnorm(1, mean=((Y_t-mu)/V_past + (mu_y-rho_J*xi_v)/sigmasq_y)/(1/V_past +1/sigmasq_y) , sd=1/(1/V_past +1/sigmasq_y) ) ……………………….} ## 3- Run MCMC and get results of estimations NUMIT=100 mchain <- mhsampler(NUMIT,dat=FTSE) # call the function with appropriate arguments warmup= round(0.1*NUMIT) ## number of warmup draws warmup parameter_1=mchain$parameter_1 parameter=parameter_1[,(warmup+1):NUMIT] ## Discard 10% of iterations as warmup or burn-in period ……………………………………
R packages used: Rlab, MCMCpack, msm
Steps:
1. Read in the data
2. MCMC function to estimate the parameters and generate the state variables
3. Run the function and analyze the results
Preliminary Results
We estimate:
GARCH (1,1)Stochastic Volatility Model with jumps
Preliminary Results, cont…
parameters sd median
mu 0.928826 4.49E-01 0.928147
mu_y -0.9443744 4.60E-01 -0.97721
mu_v 141.31438 2.97E+02 67.77618
theta 0.1780038 2.79E-02 0.171543
sigmasq_y 0.68103638 4.68E-02 0.694145
sigmasq_v 0.0097323 1.36E-02 0.007103
k 0.97460276 5.32E-02 0.995949
rho 0.23444102 1.63E-01 0.204819
rho_J 2.95602216 2.84E+00 2.562103
lamda_y 0.00130032 1.76E-03 0.000904
lamda_v 0.00130032 1.76E-03 0.000904
sigma_y 0.82524929 NaN NaN
sigma_v 0.09865241 NaN NaN
Estimation challenges and future steps
Convergence Choice of starting values, mostly for the state
variables (especially jumps in returns and volatility)
Explore R interface with WinBUGS (Bayesian Inference Using Gibbs Sampling)
Thank you!!!