Skip to content

Robust Portfolio Optimization

Peter Carl edited this page Apr 14, 2022 · 1 revision

Background

The goal of this project is to make two types of Robust Portfolio Optimization methods available in the PortfolioAnalytics package. The first type is the one that is robust toward errors in estimates of the mean return vector, as used by Axioma in its portfolio product solution. This method, which requires second order cone optimization, was introduced in Tuntucu and Konig (2004) and Ceria and Stubbs (2006), and discussed further in connection with Bayesian shrinkage estimators by Scherer (2007). The second type of robust portfolio optimization makes use of robust mean vector and covariance matrix estimators that are not much influenced by outliers, as described in Chapters 2 and 6 of Maronna et al. (2020), and implemented in the RobStatTM package available on CRAN. The use of such robust statistics in Portfolio construction is described in Martin (2012, 2013).

References

  • Ceria, S, and Stubbs, R. A. (2006). “Incorporating Estimation Errors into Portfolio Selection: Robust Portfolio Construction.” Journal of Asset Management 7 (2): 109–27.

  • Maronna, R., Martin, R. D., Yohai, V. J. and Salibian-Barrera, M. (2020). Robust Statistics: Theory and Methods. J. Wiley.

  • Martin, R. D. (2012). “Robust statistics in portfolio construction.” R-in-Finance 2012.

  • Martin, R. D. (2013). “Robust covariance matrices for common factor risk and specific risk outliers.” R-in-Finance 2013.

  • Scherer, B. (2006). “Can robust portfolio optimization help to build better portfolios?”, Journal of Asset Management, Vol. 7, 6, 374–387

  • Tuntucu, R. H. and Konig, M. (2004) “Robust asset allocation”, Annals of Operations Research, 132, 132–157.

Related Work

PortfolioAnalytics is considered a 'core' project for financial analysis in R, and it makes use of xts and R base plotting to construct many charts of the analytical output. This project seeks to extend the functionality and make it more useful to more people for Robust Portfolio Optimizaton. That said, the following complementary packages may be useful as dependencies or referenced in the ongoing development of PortfolioAnalytics as proposed herein: The R package FactorAnalytics contains fitting and analysis methods for factor models that can be used in conjunction with portfolio construction, optimization, and risk management for large dimensional portfolios. It currently provides standard covariance matrices for use by PortfolioAnalytics for mean-variance optimization, but it has the potential through use of robust regression to provide robust covariance matrices for PortfolioAnalytics . The R package PerformanceAnalytics provides an extensive set of functions for evaluating performance and risk characteristics of funds, assets, or portfolios.

Main Project Goals

Robust Portfolio Optimization for Errors in Mean Forecasts

Use functions in the CVXR package cvxr along with the SCS open source solver, which handles second order cone optimization, to implement a stand-alone version of the Ceria and Stubbs (2007) method, and thoroughly test the code against published examples. See also https://cvxr.rbind.io/, and Fu, Narasimhan, and Boyd (2020).

Make use of anticipated second-order cone capability implemented in PortfolioAnalytics with CVXR, in another GSOC 2022 Project, to integrate the above stand-alone CVXR based Robust Portfolio optimization code into PortfolioAnalytics, including a man page and a Vignette.

Robust Portfolio Optimization that Controls for Outliers

Two basic types of outliers occur in asset returns, cross-section outliers (CSO) that occur at given times for all assets in the portfolio, and independent outliers in assets (IOA) in which outliers independently in each asset. The IOA type outliers are referred to as “cell-wise contamination in the robust statistics literature. These two basic types of outliers in asset returns are described in slides 13-16 of Martin (2013), and with somewhat different names in Chapter 6 of Maronna et al. (2020). Different types of robust covariance estimates are needed to cope with these two different types of outliers. Robust covariance matrix estimates designed specifically for the CSO type of outliers are available in the CRAN R package RobStatTM, which is the software companion to the Maronna et al. (2020) book. Robust covariance matrix estimates designed specifically for IOA type outliers are available in the robust package available on CRAN, and in the GSE package available on CRAN.

The two main goals here are:

Integrate the RobStatTM package function covRob() into PortfolioAnalytics as a choice for the covariance matrix in mean-variance portfolio optimization, including the ability of the user to specific the covRob() optional arguments, including especially the choice of the covRobMM() estimator (recommended for number of variables p < 10) versus the covRobRocke() estimator (recommended for p greater or equal to 10). Write or update a reference manual page (man page), and write a Vignette to describe this new PortfolioAnalytics capability.

Do similar to the above for the GSE package function TSGS() that controls for CSO and IAO outlers.

Mentors

Students, if interested in this Project, please contact mentor Doug Martin below, and include the results of completing at least one of the tests below. Doug Martin: [email protected] Brian Peterson: [email protected] Peter Carl: [email protected]

Tests

Students, please do one or more of the following tests before contacting the mentors: Demonstrate how to use PortfolioAnalytics to construct a mean-variance optimized (MVO) portfolio. Compare the results of the MVO optimization to an Equal-Weighted (EW) portfolio with the same assets. Demonstrate use of the cvxr package for portfolio optimization. Complete the exercises found at this link. In addition to the test above, applicants should demonstrate that they have: A very good working knowledge of programming in R Familiarity with the construction of R packages Good coding standards (Google’s R style guide) Experience with GitHub

Note on Proposals

Students should propose a realistic project plan. Quality is more important than quantity, so your proposal may not contain all sections or targeted functionality.