- Generic chaining theory, geometric functional analysis, maximal inequalities, and majorizing measures for controlling suprema of stochastic processes.
- Empirical process theory, weak convergence, Glivenko–Cantelli theorems, and Donsker–Skorokhod type results.
- Stochastic integration, martingale theory, stochastic differential equations, and stochastic optimal control.
- Quantitative finance, including optimal market making, statistical arbitrage, and algorithmic trading.
Research & Publications_
Generic chaining, majorizing measures, and weak convergence for dependent processes.
Probability theory · empirical processes · maximal inequalities.
I'm a PhD researcher in mathematics at Leiden University. Broadly, I work in empirical process theory, which uses tools such as generic chaining to control suprema of stochastic processes, and study how these techniques extend to weak convergence and statistical estimation when the independence assumption is relaxed.
Research Interests
Current Work
PhD Research · Leiden University
2024 – presentMy current research concerns decomposition theorems, generic chaining, and majorizing measures as tools for controlling suprema of stochastic processes, applied to weak convergence and Donsker–Skorokhod-type results for processes satisfying absolute regularity. My supervisor is dr. A.M. Dürre.
I organize and lead a weekly graduate seminar on weak convergence and empirical process theory.
In short: I study how to bound the supremum of a stochastic process from its geometry alone, and how much of that machinery survives once you drop independence. My favorite result in the toolkit is Talagrand's majorizing measure theorem — the full proof is written up here.
Admissible sequences and the \(\gamma_2\) functional
Generic chaining is a method for controlling the supremum of a stochastic process by approximating its index set through a sequence of increasingly fine finite nets. Let \((T,d)\) be a metric space and let \((X_t)_{t \in T}\) be a stochastic process whose increments are controlled by the metric \(d\). Following Talagrand's notation, define \[N_n = 2^{2^n}, \qquad n \ge 0,\] and consider admissible subsets \(T_n \subset T\) satisfying \[\operatorname{card}(T_n) \le N_n.\] The sequence \((T_n)_{n \ge 0}\) is called an admissible sequence. For every \(t \in T\), let \(\pi_n(t) \in T_n\) be an approximation of \(t\) at level \(n\). The chaining decomposition is \[X_t - X_{t_0} = \sum_{n \ge 0} \left(X_{\pi_{n+1}(t)} - X_{\pi_n(t)}\right),\] which expresses the process as a sum of increments across successive scales.
The complexity of an admissible sequence is quantified by Talagrand's functional \[\gamma_2(T,d) = \inf_{(T_n)} \sup_{t \in T} \sum_{n \ge 0} 2^{n/2} d(t,T_n),\] where \[d(t,T_n) = \inf_{s \in T_n} d(t,s),\] and the infimum is taken over all admissible sequences. The functional \(\gamma_2(T,d)\) measures the optimal cost of approximating the whole index set at all scales simultaneously.
The majorizing measure theorem
For a centered Gaussian process with canonical metric \[d(s,t) = \left(\mathsf{E}(X_s - X_t)^2\right)^{1/2},\] the majorizing measure theorem states that there exists a universal constant \(L \ge 1\) such that \[\frac{1}{L}\gamma_2(T,d) \le \mathsf{E} \sup_{t \in T} X_t \le L\gamma_2(T,d).\]
Thus generic chaining identifies the exact geometric quantity governing the expected supremum of a Gaussian process. The choice \(N_n = 2^{2^n}\) gives the correct multiscale balance between the cardinality of the approximating sets and the size of the increments, leading to sharp bounds that improve upon classical entropy estimates based on a single covering scale.
This is the toolkit I'm extending, to processes that are only \(\beta\)-mixing rather than independent, where the chaining argument has to absorb a mixing-rate correction at every scale \(n\) instead of relying on independence between increments.
Past Research
Research Assistant · VU Econometrics and Data Science
January 2024 – June 2024- Developed likelihood-based estimation procedures for functional scale models, with vectorized and parallel implementations to improve computational efficiency.
- Reduced the runtime of large-scale Monte Carlo simulations by 92.3% on average through
numpyvectorization and parallel computation. - Implemented the main Python components:
bernstein_basis,functional_operator, andqmle_filter, including a QMLE filter for the functional GARCH(1,1) model. - Used non-negative Bernstein coefficients to ensure a positive volatility surface by construction, avoiding constrained optimization over the entire operator.
- Estimated a functional GARCH(1,1) model using a Bernstein-basis QMLE approach with three basis functions on simulated intraday data. The fitted model captures the main structure of the true volatility surface, while introducing additional day-to-day variation. Several operator coefficients reach their imposed bounds, indicating that the model is operating near the edge of the parameter space. The results are illustrated through comparisons of the true and fitted GARCH surfaces, as well as the GARCH and GAS-GARCH volatility surfaces.
def bernstein_basis(u, M, k):
return comb(M - 1, k - 1) * u ** (k - 1) * (1 - u) ** (M - k)
def functional_operator(grid, coefs, M):
phi = np.stack([bernstein_basis(grid, M, k) for k in range(1, M + 1)])
return sum(c * np.outer(phi[i], phi[j]) for c, (i, j) in zip(coefs, product(range(M), repeat=2)))
def qmle_filter(returns, theta, M):
delta, alpha, beta = theta[:M], theta[M:M + M**2], theta[M + M**2:]
grid = np.linspace(0, 1, returns.shape[0])
A, B = functional_operator(grid, alpha, M), functional_operator(grid, beta, M)
d = sum(c * bernstein_basis(grid, M, k) for k, c in enumerate(delta, 1))
sigma2 = np.ones(returns.shape[0])
surface = np.zeros_like(returns)
for t in range(1, returns.shape[1]):
sigma2 = d + (A @ returns[:, t - 1] ** 2 + B @ sigma2) / returns.shape[0]
surface[:, t] = sigma2
return surface
theta_hat = minimize(lambda theta: qmle_loss(returns, theta, M), theta0, method='SLSQP').x
Non-negative Bernstein coefficients guarantee a positive volatility surface directly, without constrained optimization over the full operator.
The first comparison figure shows the estimated GAS-GARCH volatility surface against the true volatility surface to assess the model’s ability to recover the underlying dynamics.
The second comparison figure compares the functional GARCH and GAS-GARCH volatility surfaces, demonstrating the increased flexibility of the GAS-GARCH specification relative to the traditional functional GARCH model.
MSc Thesis · Functional stationarity testing
2024Developed a functional stationarity test for multidimensional diffusion processes, implementing and packaging the underlying mathematical framework as an open-source library.
Publications
The Tukey depth under dependence
2026 · forthcomingAbsolute regularity and maximal moment inequalities
2026 · in preparationFunctional location-scale models with robust observation-driven dynamics
2025Software
Open-source implementation of a functional stationarity test for multidimensional diffusion processes, developed for my MSc thesis.
FunctionalScale
2024 – presentEstimation library for functional GARCH/GAS models of time-varying intraday volatility surfaces, using B-splines and numba JIT compilation.
A full, up-to-date list is also maintained on Google Scholar. For collaboration proposals or seminar invitations, get in touch.