Skip to content

Improved Functionality for Higher Order Comoment Estimation in PerformanceAnalytics

Kris Boudt edited this page Mar 17, 2017 · 4 revisions

This project aims to improve and extend the current higher order comoment estimation functionality in the PerformanceAnalytics package. In addition to speed improvements, a complete range of shrinkage based optimized comoment estimates are to be implemented to make a better use of the available data. These comoments are of great value to portfolio allocation methods based on utility optimization or risk budgets. Currently only basic estimators are available while it has been shown that more advance state-of-the-art techniques greatly improve accuracy and reliability. The package will be integrated into the PerformanceAnalytics package in such a way that the user has the option to select the desired estimator in current functions making use of higher-order moments in PerformanceAnalytics and PortfolioAnalytics.

Background

The methodology and theory for estimating the higher-order comoment matrices was first developed in a pioneer paper by Martellini and Ziemann (2010) and later extended to allow for unbiased estimation, multifactor representations and a larger number of target matrices by Boudt, Peeters and Lu (2015), Jondeau, Jurczenko and Rockinger (2016) and Boudt, Cornilly and Verdonck (2017).

Related work

Currently not much code in the field of higher-order comoment estimation is available for research or practice. The moment methods in the package PortfolioAnalytics consist of the plug-in sample estimator and a statistical factor model based on principal component analysis. This project will improve the current means in the following ways:

  • Implement state-of-the-art estimators.
  • Significantly increase the speed of computation by exploiting the symmetric structure of the comoment matrices.
  • Implement existing, but currently unavailable estimation methods, e.g. Martellini and Ziemann (2010), Jondeau, Jurczenko and Rockinger (2016) and Boudt, Cornilly and Verdonck (2017).

Details of the coding project

The main focus will be on implementing and fully testing the new coskewness and cokurtosis estimators. Computation speed needs to be as fast as possible. For this, we will make use of the package Rcpp(Armadillo). We are confident that current implemented estimators can also be improved speed-wise by exploiting the symmetric structure of the matrices. Hence, the methods will be available to use for larger dimensions than currently feasible. Formulas for the newly proposed shrinkage estimators are found in the paper Boudt, Cornilly and Verdonck (2017) and can be implemented in straightforward fashion. The nearest comoment estimator is the solution to a non-convex optimization problem. For this, the choice of ideal optimizer will need to be investigated. Pure gradient-based algorithms converge quite fast, but depend strongly on the initial starting values. Evolutionary algorithms, such as DEoptim, converge slower but are more efficient at finding a global optimum. A hybrid optimizer, using gradient-based optimization to speed up convergence locally while using evolutionary techniques to find a global minimum might be suitable to our approach. One example of such optimizer can be found in the package rgenoud.

The shrinkage estimators of Martellini and Ziemann (2010) are in demand, but no code is available currently. These can be implemented based on the formulas provided in the paper. However, consistency of the estimators will be tested and, if necessary, alternative estimators will be proposed.

The comoment estimators need to work seamlessly with the full range of risk and performance measures contained in PerformanceAnalytics, as well as portfolio constraints in PortfolioAnalytics. This can be done by using a similar to the method used in the PerformanceAnalytics function VaR.

Milestones

Phase 1

A complete Rcpp(Armadillo) implementation of the shrinkage estimators and nearest comoment estimators in Martellini and Ziemann (2010) and Boudt, Cornilly and Verdonck (2017). This includes improved implementation of the plug-in sample estimators that are currently available. The functions need to be able to handle different kinds of data input without problems.

Phase 2

The interaction with the functions in PerformanceAnalytics and PortfolioAnalytics needs to work seamlessly. In this phase we also implement any additional comoment estimators.

Phase 3

In the last stage, the project is finalized by commenting the code and extending current examples for the use of the newly implemented estimators. A vignette providing an overview of the different estimation techniques will be written which also clearly explains the differences in use and best application practices.

Expected impact

This project implements state-of-the-art estimators for the higher-order moments of financial time series. As part of the package PerformanceAnalytics, the estimators directly improve current performance or risk measures based on skewness and kurtosis. This will considerably improve the attractiveness of moment-based methods for performance measurement and portfolio allocation, both of which are of great concern to industry professionals.

Mentors

Brian Peterson, primary author of PerformanceAnalytics.

Kris Boudt, Associate Professor of Finance and Econometrics, Vrije Universiteit Brussel and Vrije Universiteit Amsterdam.

Tests

Applicants have to be able to show that they have:

  • A good working knowledge of programming in R, Rcpp and C++;
  • A good working knowledge of Roxygen for the documentation;
  • A good working knowledge of knitr/LaTeX for the vignette;
  • Familiarities with the construction of R packages;
  • Good coding standards (Google’s C++ and R style guide);
  • A good theoretical understanding of higher order moments, especially coskewness and cokurtosis;

Students should show their motivation by following the points below:

  • Easy: Create a function to calculate the sample coskewness and cokurtosis matrices. Computation of the cokurtosismatrix of a data matrix of dimension 1000 x 50 should be at least 20 times faster than the current function PerformanceAnalytics:::M4.MM;
  • Medium: Replicate the paper Martellini and Ziemann (2010). The estimators should be reasonably fast in dimension 50;
  • Hard: Propose a new estimation technique to estimate the coskewness and cokurtosis matrix structurally and implement it in fast-to-execute code.

Solution to tests

Students, please post a link to your test results here.

References

Boudt, K., Cornilly, D., & Verdonck, T. (2017). A Coskewness shrinkage approach for estimating the skewness of linear combinations of random variables. Available at SSRN: https://ssrn.com/abstract=2839781

Boudt, K., Lu, W., & Peeters, B. (2015). Higher order comoments of multifactor models and asset allocation. Finance Research Letters, 13, 225-233.

Jondeau, E., Jurczenko, E., & Rockinger, M. (2016). Moment component analysis: An illustration with international stock markets. Journal of Business & Economic Statistics, (just-accepted).

Martellini, L., & Ziemann, V. (2010). Improved estimates of higher-order comoments and implications for portfolio selection. Review of Financial Studies, 23(4), 1467-1502.

Clone this wiki locally