Dear Professor Donoho,
Since it’s not much effort, I will directly model the volatility process as
v = A*x
where A is a Gaussian vector with n~300 and x is some unknown sparse vector in a much higher dimensional space say 3000, and we try to recover x by convex relaxation. This is a problem I can solve with cvxopt with a few lines of code. I will get some results on this small project by tonight. The expectation is that this will give us ideas for the much more delicate problem of determining the laws governing volatility in the entire unknown market graph.

1:15 PM (1 minute ago)



This is basic code for the test using machinery I’d used before for you. This small project will not take much time and I can have some results if not today by tomorrow. The purpose of this exercise is to get a feel for what sort of sparse model of volatility could be recovered by L1 minimization pretending that volatility is the signal that’s been obscured. Since L1 minimization likes sparse solutions, and since our b is O(size of market graph) we are hoping that this process leads to some observation of sparse model parameters in a much higher dimensional (N=10*n) space
import cvxopt as opt
import numpy as np
import pandas as pd
def sparsity(x):
return sum(x>0)/len(x)
def l1_solve( A, b):
opt.solvers.lp( A, b )
data = pd.DataFrame.from_csv(‘volatility.csv’)
n = 300
N=n*10
V = opt.matrix( np.array(data)[0,1:n] )
b = opt.matrix(V)
A = opt.matrix(np.randn(n,N))
x0 = l1_solve( A, b)
print sparsity(x0)
Advertisements
Leave a Reply