Wednesday, 24 June 2015

Modeling Interest Rates Meucci Style

I have signed up for Attilio Meucci’s ARPM Bootcamp next month (13-18 July 2015) in NYC, and need to do quite a bit of prep as it’s going to be a deep-dive…

The Advanced Risk and Portfolio Management Bootcamp provides in-depth understanding of buy-side modeling from the foundations to the most advanced statistical and optimization techniques, in 6 intensive days of theory and MATLAB live examples and exercises:

  • Market modeling: random walk, ARMA, GARCH, Levy, long memory, stochastic volatility
  • Multivariate statistics: non-parametric, non-normal MLE, shrinkage, robust, Bayesian estimation; copula/marginal factorization; location-dispersion ellipsoid
  • Factor modeling: theory and pitfalls of time-series and cross-sectional factor models, CAPM, APT, principal components analysis, random matrix theory
  • Pricing: full evaluation, Greeks, stress-matrix interpolation; analytical, Monte Carlo, historical
  • Risk analysis: diversification, stochastic dominance, expected utility, Sharpe ratio, Omega, Kappa, Sortino, value at risk, expected shortfall, coherent and spectral measures
  • Portfolio construction: robust/SOCP optimization, shrinkage/Bayesian allocations, Black-Litterman and beyond; transaction costs, liquidity, market impact; statistical arbitrage; convex/concave dynamic strategies, CPPI, delta-replication

So I thought I would delve into one of his many interesting papers, “Neither ”Normal" not “Lognormal”: Modeling Interest Rates Across all Regimes“, co-authored by Angela Loregian. The paper and Matlab code can be downloaded at

However, since I’m still an R fan I thought it would be interesting to port his code to R (although there is an R package, “Meucci”, under development, it failed to build when I looked). Here is my port of the code and the resulting chart showing JGB rates, log-rates, and shadow rates (derived from the inverse call transformation):

+ Show R code

The main point regarding the shadow rates is to...

Notice how the behavior of the unconstrained risk drivers attained by means of the inverse call transformation looks smoother than those of yields and log-yields, displaying a homogeneous evolution for both short and long-term series.

... which is further explained in Meucci’s “The Prayer”...

Homogeneity ensures that we can apply statistical techniques to the observed time series of the risk drivers {yt}t=1,…,T and project future distributions.

You can find out more about this quest for invariance in “The Prayer” at

One question I’ll be sure to ask is how to model “real-life” negative interest rates that we observed recently in the Euro area - this Meucci model doesn’t appear to admit such…

If you are also taking the plunge and attending the course, do drop me an email and we’ll meet up!

Click here for the R code on GitHub.