Optimal Filtering of Jump Diffusions: Extracting Latent States from Asset Prices Jonathan Stroud, Wharton, U. Pennsylvania Stern-Wharton Conference on Statistics in Business April 28 th, 2006 Joint work with Mike Johannes (GSB, Columbia) and Nick Polson (GSB, Chicago)
Overview Models in finance -Typically specified in continuous-time. -Include latent variables such as stochastic volatility and jumps. Two state estimation problems -Filtering - sequential estimation of states. -Smoothing - off-line estimation of states. Filtering is needed in most financial applications -e.g., portfolio choice, derivative pricing, value-at-risk.
S&P 500 Index, October, 1987 Daily Closing Prices/Returns and Options Implied Volatilities DatePrice($)ReturnImpVolSpotVolJump Oct Oct Oct Oct ?? Oct Oct Oct
Outline Jump diffusion models in finance The filtering problem and the particle filter Application: Double Jump model -Simulation study -S&P 500 index returns -Combining index and options data
Jump Diffusion Models in Finance Y t is observed, X t is unobserved state variable N t y : latent point processes with intensity y (Y t-,X t- ). Z n y : latent jump sizes with distribution y (Y( n- ),X( n- )). Also observe derivative prices (non-analytic).
State-Space Formulation Assuming data at equally-spaced times t, t+1,… the observation and state equation are given by Also have a second observation equation for the derivative prices: v
The filtering problem Goal: compute the optimal filtering distribution of all latent variables, given observations up to time t: Existing methods: -Kalman filter: linear drifts, constant volatilities. -Approximate methods: simple discretization, extended Kalman filter. -Quadratic variation estimators: can’t separate jumps and volatility; require high-frequency data; no models.
Our approach We propose an approach which combines two existing ideas: 1) Simulating extra data points Time-discretize model and simulate additional data points between observations to be consistent with continuous-time specification. 2) Applying particle filtering methods Sequential importance sampling methods to compute the optimal filtering distribution.
Time-Discretization Simulate M intermediate points using an Euler scheme (other schemes possible) Given the simulated latent variables, we can approximate the (stochastic and deterministic) integrals by summations.
XtXt YtYt time Observed Variable, Y t Unobserved Variable, X t
Latent variable augmentation Given the augmentation level M, we define the latent variable as L t = (X t M, J t M, Z t M ), where Then it is easy to simulate from the transition density p(L t+1 |L t ), and to evaluate the likelihood p(Y t+1 |L t+1 ).
Bayesian filtering Let L t denote all latent variables. At time t, the filtering (posterior) distribution for the latent variables is given by The prediction and filtering distributions at time t+1 are then given by
The particle filter Gordon, Salmond & Smith (1993) approximate the filtering distribution using a weighted Monte Carlo sample (L t i, t i ), i=1…N: The prediction and filtering distributions at time t+1 are then approximated by
Sampling-Importance Resampling Particle Filter Algorithm
Application: Double-Jump Model Duffie, Pan & Singleton (2000) provide a model with SV and jumps in returns and volatility: where N t ~Poi( t), Z n s ~N( s, 2 s ) and Z n v ~Exp( v ). SV model : Stochastic Volatility SVJ model : SV with jumps in returns SVCJ model : SV with jumps in returns & volatility
Simulation Study Simulate continuous-time process (M=100) using parameter values from literature. Sample data at daily, weekly & monthly freq’s. Run filter using M=1,2,5,10,25 and N=25,000. Questions of interest: 1)How large must M be to recover the “true” filtering distribution? 2)How well can we detect jumps if data are sampled at daily, weekly, monthly frequency?
Simulated Daily Data : SV Model Returns Volatility Discretization Error
Simulated Monthly Data : SV Model Returns Volatility Discretization Error
RMSE: Filtered Mean Volatility SV model MDailyWeeklyMonthly
Filtered density for Spot Volatility Monthly Data
Simulated Daily Data : SVJ Model
Jump Classification Rate SVJ model Observation Frequency DailyWeeklyMonthly Percentage of true jumps detected by the filter.
S&P 500 Example S&P 500 return data ( ) Daily data (T=4522) SIR particle filter: M=10 and N=25,000. How does volatility differ across models?
Filtered Volatility: S&P 500 Data
S&P 500 Index, October, 1987 Filtering Results (SV, SVJ, SVCJ) DateReturnVolatility (annual)P(Jump) Oct Oct Oct Oct Oct Oct Oct
Filtered Volatility: October 13-22, 1987 October 13 October 16 October 22 Crash
Filtering with Option Prices S&P 500 futures options data ( ) At-the-money futures call options Assume 5% pricing error How does option data affect estimated volatility?
SV Model: Filtering with Option Prices
SV Model: Filtered Densities, Oct , 1987 October 15 October 16 October 19
Conclusions Extend particle filtering methods to continuous-time jump-diffusions Incorporate option prices Evaluate accuracy of state estimation Easy to implement Applications