Preface Purpose of Book This book was written to expose its readers to a broad range of modern portfolio construction methods. It provides not only mathematical expositions of these methods, but also supporting software that gives its readers valuable hands-on experience with them. It is our intention that readers of the book will be able to readily make use of the methods in academic instruction and research, and to quickly build useful portfolio solutions for finance industry applications. The book is modern in that it goes well beyond the classical constrained meanvariance (Markowitz) portfolio optimization and benchmark tracking methods, and treats such topics as general utility function optimization, conditional-valueat-risk (CVaR) optimization, multiple benchmark tracking, mixed-integer programming for portfolio optimization, transaction costs, resampling methods, scenario-based optimization, robust statistical methods (such as robust betas and robust correlations), and Bayesian methods (including Bayes-Stein estimates, Black-Litterman, and Bayes factor models via Markov Chain Monte Carlo (MCMC)). The computing environment used throughout the book consists of special limited-use S-PLUS software that is downloadable from Insightful Corporation as described later in this Preface, specifically: S-PLUS, the S-PLUS Robust Library, the S+NUOPT optimization module, and the S+Bayes Library. In addition, we have provided approximately 100 S-PLUS scripts, as well as relevant CRSP sample data sets of stock returns, with which the user can recreate many of the examples in the book. The scripts represent, in effect, a large set of recipes for carrying out basic and advanced portfolio construction methods. The authors believe these recipes, along with real as well as artificial data sets, will greatly enhance the learning experience for readers, particularly those who are encountering the portfolio construction methods in the book for the first time. At the same time, the script examples can provide a useful springboard for individuals in the finance industry who wish to implement advanced portfolio solutions. Stimulation for writing the present book was provided by Scherer s Portfolio Construction and Risk Budgeting (2000), which discusses many of the advanced vii
viii Preface portfolio optimization methods treated here. One of us (Martin) had given a number of talks and seminars to quant groups on the use robust statistical methods in finance, and based on the enthusiastic response, we felt the time was ripe for inclusion of robust methods in a book on portfolio construction. It also seemed apparent, based on the recent increase in academic research and publications on Bayes methods in finance, the intuitive appeal of Bayes methods in finance, and the hint of a groundswell of interest among practitioners, that the time was ripe to include a thorough introduction to modern Bayes methods in a book on portfolio construction. Finally, we wanted to augment the current user documentation for S+NUOPT to demonstrate the many ways S+NUOPT can be effectively used in the portfolio game. Intended Audience This book is intended for practicing quantitative finance professionals and professors and students who work in quantitative areas of finance. In particular, the book is intended for quantitative finance professionals who want to go beyond vanilla portfolio mean-variance portfolio construction, professionals who want to build portfolios that yield better performance by taking advantage of powerful optimization methods such as those embodied in S+NUOPT and powerful modern statistical methods such as those provided by the S-PLUS Robust Library and S+Bayes Library. The book is also intended for any graduate level course that deals with portfolio optimization and risk management. As such, the academic audience for the book will be professors and students in traditional Finance and Economics departments, and in any of the many new Masters Degree programs in Financial Engineering and Computational Finance. Organization of the Book Chapter 1. This introductory chapter makes use of the special NUOPT functions solveqp and portfoliofrontier for basic Markowitz portfolio optimization. It also shows how to compute Markowitz mean-variance optimal portfolios with linear equality and inequality constraints (e.g., fully-invested long-only portfolios and sector constraints) using solveqp. The function portfoliofrontier is used to compute efficient frontiers with constraints. A number of variations (such as quadratic utility optimization, benchmarkrelative optimization, and liability relative optimization) are briefly described. It is shown how to calculate implied returns and optimally combine forecasts with implied returns to obtain an estimate of mean returns. The chapter also discusses
Preface ix Karush-Kuhn-Tucker conditions and the impact of constraints, and shows how to use the linear programming special case of the function solveqp to check for arbitrage opportunities. Chapter 2. Chapter 2 introduces the SIMPLE modeling language component of NUOPT and shows how it may be used to solve general portfolio optimization problems that can not be handled by the special purpose functions solveqp and portfoliofrontier used in Chapter 1. The first part of the chapter provides the basics on how to use SIMPLE and how to solve some general function optimization problems, including a maximum likelihood estimate of a normal mixture model. Then its application to two non-quadratic utility functions is illustrated, as well as its application to multi-stage stochastic optimization. Finally, the use of some built-in S-PLUS optimization functions is illustrated on several simple finance problems (such as calculation of implied volatilities, fitting a credit loss distribution, and fitting a term structure model). Chapter 3. This chapter on advanced issues in mean-variance optimization begins by treating the following non-standard problems: risk-budgeting constraints, min-max optimization with multiple benchmarks and risk regimes, and Pareto optimality for multiple benchmarks. Then several important portfolio optimization problems that require mixed integer programming (MIP) are presented, namely buy-in thresholds and cardinality constraints (e.g., finding optimal portfolios with the best k-out-of-n assets, round lot constraints, and tracking indices with a small number of stocks). Finally the chapter shows how to handle transaction cost constraints (such as turnover constraints, proportional costs, and fixed costs). Chapter 4. This chapter introduces parametric and nonparametric bootstrap sampling in portfolio choice, with emphasis on the parametric approach assuming multivariate normality. It is shown that resampling when arbitrary short-selling is allowed recovers the Markowitz weights plus random noise that goes to zero as the resample size increases, whereas persistent bias is introduced in the case of long-only portfolios. Further exploration of the long-only case with a zero mean-return lottery ticket shows how volatility can induce bias in long-only portfolios, but with a trade-off due to increased risk associated with increased volatility. Here we discuss the deficiencies of portfolio construction via resampling and suggest that readers be wary of some advantages claimed for the approach. The chapter closes with a discussion of the use of a basic nonparametric bootstrap, as well as an increased precision double bootstrap, for assessing the uncertainty in Sharpe ratios and Sortino ratios. These are just two of many possible applications of the standard and double bootstrap in finance. Chapter 5. This chapter discusses the use of scenario-based optimization of portfolios, with a view toward modeling non-normality of returns and enabling the use of utility functions and risk measures that are more suitable for the nonnormal returns consistently encountered in asset returns. The chapter begins by showing how implied returns can be extracted when using a general utility function other than quadratic utility. Then we show a simple means of
x Preface generating copulas and normal-mixture marginal distributions using S-PLUS. Subsequent sections show how to optimize portfolios with the following alternative risk measures, among others: mean absolute deviation, semivariance, and shortfall probability. A particularly important section in this chapter discusses a desirable set of coherence properties of a risk measure, shows that conditional value-at-risk (CVaR) possesses these properties while standard deviation and value-at-risk (VaR) do not, and shows how to optimize portfolios with CVaR as a risk measure. The chapter concludes by showing how to value CDOs using scenario optimization. Chapter 6. Here we introduce the basic ideas behind robust estimation, motivated by the fact that asset returns often contain outliers and use the S-PLUS Robust Library for our computations. Throughout we emphasize the use of robust methods in portfolio construction and choice as a diagnostic for revealing what outliers, if any, may be adversely influencing a classical mean-variance optimal portfolio. Upon being alerted to such outliers and carefully inspecting the data, the portfolio manager may often prefer the robust solution. We show how to compute robust estimates of mean returns, robust exponentially weighted moving average (EWMA) volatility estimates, robust betas and robust covariance matrix estimates, and illustrate their application to stock returns and hedge fund returns. Robust covariance matrix estimates are used to compute robust distances for automatic detection of multidimensional outliers in asset returns. For the case of portfolios whose asset returns have unequal histories, we show how to modify the classical normal distribution maximum-likelihood estimate to obtain robust estimates of the mean returns vector and covariance matrix. Robust efficient frontiers and Sharpe ratios are obtained by replacing the usual sample mean and covariance matrix with robust versions. The chapter briefly explores the use of one-dimensional outlier trimming in the context of CVaR portfolio optimization and concludes with a discussion of influence functions for portfolios. Chapter 7. This chapter discusses modern Bayes modeling via the Gibbs sampler form of Markov Chain Monte Carlo (MCMC) for semi-conjugate normal distribution models as well as non-normal priors and likelihood models, as implemented in the S+Bayes Library. Empirical motivation is provided for the use of non-normal priors and likelihoods. The use of S+Bayes is first demonstrated with a simple mean-variance model for a single stock. We then use it to obtain Bayes estimates of alpha and beta in the single factor model and to illustrate Bayes estimation for the general linear model in a cross-sectional regression model. We show how to use the Gibbs sampler output to produce tailored posterior distributions of quantities of interest (such as mean returns, volatilities, and Sharpe ratios). The chapter shows how to compute Black- Litterman models with the usual conjugate normal model (for which a formula exists for the posterior mean and variance), with a semi-conjugate normal model via MCMC, and with t distribution priors and likelihood via MCMC. The chapter concludes by outlining one derivation of a Bayes-Stein estimator of the mean returns vector and shows how to compute it in S-PLUS.
Preface xi Downloading the Software and Data The software and data for this book may be downloaded from the Insightful Corporation web site using a web registration key as described below. The S-PLUS Software Download The S-PLUS for Windows and S+NUOPT software being provided by Insightful for this book expires 150 days after install. As of the publication of this book, the S+Bayes software is an unsupported library available free of charge from Insightful. To download and install the S-PLUS software, follow the instructions at http://www.insightful.com/support/splusbooks/martin05.asp. To access the web page, the reader must provide a password. Please contact Insightful Technical Support at keys@insightful.com to obtain the password and a trial license web registration key. In order to activate S-PLUS for Windows and S+NUOPT, the reader must use the web registration key. S-PLUS Scripts and CRSP Data Download To download the authors S-PLUS scripts and the CRSP data sets in the files scherer.martin.scripts.v1.zip and scherer.martin.crspdata.zip, follow the instructions at http://www.insightful.com/support/splusbooks/martin05.asp. The first file contains approximately 100 S-PLUS scripts, and the second file contains the CRSP data. The reader must use the web registration key obtained from Insightful Technical Support to download these files. The S-PLUS Scripts As a caveat, we make no claims that the scripts provided with this book are of polished, professional code level. Readers should feel free to improve upon the scripts for their own use. With the exception stated in the next paragraph, the scripts provided with this book are copyright 2005 by Bernd Scherer and Douglas Martin. None of these scripts (in whole or part) may be redistributed in any form without the written permission of Scherer and Martin. Furthermore the scripts may not be translated or compiled into any other programming language, including, but not limited to, R, MATLAB, C, C++, and Java. The script multi.start.function.ssc, which is not listed in the book but is included in the file scherer.martin.scripts.v1.zip, was written by Heiko Bailer and is in the public domain.
xii Preface The CRSP Data The CRSP data are provided with permission of the Center for Research in Security Prices (Graduate School of Business, The University of Chicago). The data were provided for educational use and only for the course program(s) for which this book is intended and used. The data may not be sold, transmitted to other institutions, or used for purposes outside the scope of this book. CRSP data element names are trademarked, and the development of any product or service link to CRSP data will require the permission of CRSP (www.crsp.uchicago.edu). The CRSP data zip file scherer.martin.crspdata.zip contains a number of CRSP data sets in S-PLUS data.dump format files. Relative price change returns for twenty stocks are contained in each of the following files: microcap.ts.sdd (Monthly returns, 1997 2001) smallcap.ts.sdd (Monthly returns, 1997 2001) midcap.ts.sdd (Monthly returns, 1997 2001) largecap.ts.sdd (Monthly returns, 1997 2001) Each of the above files contains market returns (defined as the portfolio of market-cap-weighted AMEX, NYEX, and Nasdaq returns), and returns on the 90-day T-bill. In addition, the mid-cap returns file midcapd.ts.sdd (Daily returns, 2000 2001) contains the daily stock returns and market returns. We also include the following file containing monthly returns for three stocks from CRSP: returns.three.ts.sdd (Monthly returns, 02/28/91 12/29/95) We note that there are a few data sets appearing in examples in the book that are not distributed with the book. Readers are encouraged to substitute a CRSP data set or other data set of their choice in such cases. Using the Scripts and Data Under Microsoft Windows, we recommend using the scripts and data as follows. First, create an empty project folder for the scripts with a name of your choice, (e.g., PortOpt), and unzip the file scherer.martin.scripts.v1.zip in that folder. Next, create a project folder for the data sets (e.g., named DataForPortOpt), and attach it below the project folder for the scripts. Unzip the file scherer.martin.crspdata.zip in that folder. You should then run the script
Preface xiii load.returns.ssc by opening it in S-PLUS and clicking on the Run button. This will load all the above data sets for the book, as well as the functions panel.superpose.ts. and seriesplot, which are extended versions of similar functions in the S+FinMetrics package. Now you can run scripts in your project folder by clicking on a script to open it and clicking the Run button. Acknowledgments Special thanks go to Chris Green for his painstaking work in producing this book in both early stages and in the final stage of clean-up for delivery to Springer. Chris did so many things with great care, including code checks and improvements, careful editing, indexing, and final formatting in MS Word. We could not have delivered the book without his extensive help. Leonard Kannepell provided a tremendous amount of indispensable help in the production of book as delivered to Springer for copy editing, enduring many painful crashes of Microsoft Word in the process, and his help is deeply appreciated. Eric Aldrich provided appreciated editing on a portion of the book. Any errors not caught by these individuals are as always the sole responsibility of the authors. We thank Heiko Bailer for the script multi.start.function.ssc in which he implemented the classical Stambaugh method for estimating the mean and covariance for unequal histories of returns, as well as a robust version of the Stambaugh method for dealing with outliers. Heiko produced the unequal histories examples in Sections 6.8 and 6.9. He also provided an improved version of the time series plotting function seriesplot, and added the nice horizontal axes values for risk and return in Figure 6.48 that we wish we had used in other such plots in the book. Alan Myers at the Chicago Center for Research in Security Prices kindly made the arrangement that allowed us to provide a sample of CRSP data for purchasers of the book, an aspect that we feel is very beneficial to the learning process. We are grateful to Insightful Corporation for its cooperation in making it possible to deliver the book with S-PLUS software to enrich the value of the book, and for hosting the authors scripts and the CRSP data sets on their web site. John Kimmel at Springer was a constant source of help and support throughout the publication process, for which we are warmly appreciative. Chapter 6 could not have been written without the research contributions to the S-PLUS Robust Library by Alfio Marazzi and Victor Yohai as primary consultants, and by Ricardo Maronna, David Rocke, Peter Rousseeuw, and Ruben Zamar, as well as the software development efforts of Kjell Konis, Matias Salibian-Barrera, and Jeff Wang. Chapter 7 could not have been written without the initial leadership of Yihui Zhan and the extensive research and development efforts of Alejandro Murua in producing the S+Bayes Library.
xiv Preface John Tukey encouraged Doug Martin to enter the field of statistics and facilitated this process by arranging Doug s initial consulting contract with the Bell Laboratories Mathematics and Statistics Research Center, an engagement that spanned ten years. Without these events S-PLUS would not exist today. Bernd Scherer thanks his family for always encouraging his academic interests and in particular Katja Goebel for her patient understanding and unconditional support. Finally, untold thanks to our families and friends for putting up with our time away from them during the many hours we devoted to working on this book.
http://www.springer.com/978-0-387-21016-2