Modeling Asset Returns: When do we need Stochastic

Download Report

Transcript Modeling Asset Returns: When do we need Stochastic

Exploratory analysis of GARCH Models
versus Stochastic Volatility Models with
Jumps in Returns and Volatility
(Work in Progress)
by
Adjoa Numatsi and Erick Rengifo
Economics Department, Fordham University, New York
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))
Introduction, cont…
 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
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
•Alpha1 and beta1 are the
GARCH and ARCH coefficients.
They are significant
Std. Errors:
based on Hessian
•R package used: fGarch
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
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
V
Mean
0.031348
Mean
1.042229
Standard Error
0.013494
Standard Error
0.015588
Median
0.062642
Median
0.685022
Mode
0
Mode
#N/A
Standard Deviation
1.017553
Standard Deviation
Sample Variance
1.035415
Sample Variance
1.381636
Kurtosis
8.268878
Kurtosis
18.20166
Skewness
3.866057
Skewness
-0.5567
1.17543
Range
20.62556
Range
9.187442
Minimum
-13.0286
Minimum
0.182197
Maximum
7.596966
Maximum
9.36964
Sum
178.2447
Sum
Count
5686
Count
5926.115
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)


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
## 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)
R packages used: Rlab,
MCMCpack, msm
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
……………………………………
Preliminary Results
We estimate:
GARCH (1,1)
Stochastic Volatility Model with jumps
Preliminary Results, cont…
parameters
sd
median
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
mu
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!!!