Feeds:
Posts
Comments

## THE OPTIMAL WAVELET DENOISING THRESHOLD FOR STOCHASTIC VOLATILITY

Averkamp-Houdre have addressed the issue of wavelet denoising of non-Gaussian noise (Averkamp-Houdre-WaveletThreshold

Let’s take a look at their main procedure from their Theorem 2.1.

Our log-chi-squared distribution is not symmetric but we can zero-mean it and estimate the optimal threshold by their method directly.

import numpy as np
from scipy.optimize import minimize,minimize_scalar
from scipy.integrate import quad
import statsmodels.api as sm

# Averkamp-Houdre, “Wavelet Thresholding for Not-Necessarily Gaussian Noise:
# Idealism”, Annals of Statistics, 2003, 110–151

y=np.random.normal(size=1000)
logchi2density=sm.nonparametric.KDEUnivariate(np.log(y**2+1e-6)+1.27)
logchi2density.fit()

n=float(300)
sigma=np.sqrt(4.93)

def p(x,t,n):
z=2*(n+1)*(x-t)**2 * (logchi2density.evaluate(x))
return z

def P(t,n):
z,e = quad(p,t,np.inf,args=(t,n))
return z

def Q(t,n,sigma):
return abs(P(t,n) – t**2 – sigma**2)

res = minimize_scalar( Q, bounds=(0.1,1000), args=(n,sigma),method=”bounded”)
print res[‘x’]

This gives us a slightly larger threshold for a signal of length 300 (a typical length for our training period) than what we’ve been using, $\sqrt(5.5)$. The above method produces the larger threshold $\sqrt(6.76)$.

Advertisements