|
[ Home | GAUSS | GAUSS Engine | GAUSS Apps | 3rd Party Apps | Keywords Index ]
Constrained Optimization MT Overview | New Features | Threading | Structures | COMT solves the Nonlinear Programming problem, subject to general constraints on the parameters - linear or nonlinear, equality or inequality, using the Sequential Quadratic Programming method in combination with several descent methods selectable by the user:
COMT is fast and can handle large, time-consuming problems because it takes advantage of the speed and number-crunching capabilities of GAUSS. It is thus ideal for large scale Monte Carlo or bootstrap simulations.
Example A Markowitz mean/variance portfolio allocation analysis on a thousand or more securities would be an example of a large scale problem CO could handle (about 20 minutes on a 133 Mhz Pentium-based PC). CO also contains a special technique for semi-definite problems, and thus it will solve the Markowitz portfolio allocation problem for a thousand stocks even when the covariance matrix is computed on fewer observations than there are securities. Because CO handles general nonlinear functions and constraints, it can solve a more general problem than the Markowitz problem. The efficient frontier is essentially a quadratic programming problem where the Markowitz Mean/Variance portfolio allocation model is solved for a range of expected portfolio returns which are then plotted against the portfolio risk measured as the standard deviation:
where l
is a conformable vector of ones, and where This model is solved for
and the
efficient frontier is the plot of
on the
horizontal axis. The portfolio weights in Because of CO's ability to handle nonlinear constraints, more elaborate models may be considered. For example, this model frequently concentrates the allocation into a minority of the securities. To spread out the allocation one could solve the problem subject to a maximum variance for the weights, i.e., subject to
where This
data was taken from from Harry S. Marmer and F.K. Louis Ng, "Mean-Semivariance
Analysis of Option-Based Strategies: A Total Asset Mix Perspective", Financial
Analysts Journal, May-June 1993. An unconstrained
analysis produced the results below: It can
be observed that the optimal portfolio weights are highly concentrated in T-bills.
Now let
us constrain w´w to be less than, say, .8. We then get: The
constraint does indeed spread out the weights across the categories, in particular
stocks seem to receive more emphasis.
Efficient portfolio for these analyses
We see there that the constrained portfolio is riskier everywhere than the unconstrained
portfolio given a particular portfolio return. In summary,
CO is well-suited for a variety of financial applications from the ordinary to
the highly sophisticated, and the speed of GAUSS makes large and time-consuming
problems feasible. CO is an
advanced GAUSS Application and comes as GAUSS source code. GAUSS Applications
are modules written in GAUSS for performing specific modeling and analysis tasks.
They are designed to minimize or eliminate the need for user programming while
maintaining flexibility for non-standard problems. Platform: Windows, LINUX, solaris, and Mac. New Features Threading in COMT Example We ran a time trial of a covariance-structure model on a quad-core machine. As is the case for most real world problems, not all sections of the code are able to be run in parallel. Therefore, the theoretical limit for speed increase is much less than (single-threaded execution time)/(number of cores). Even so, the execution time of our program was cut dramatically: Single-threaded execution time: 35.42 minutes That is a nearly 300% speed increase! COMT uses the DS and PV structures that are available in the GAUSS Run-Time Library. The DS Structure The DS structure is completely flexible, allowing you to pass anything you can think of into your procedure. There is a member of the structure for every GAUSS data type. The PV Structure The PV structure revolutionizes how you pass the parameters into the procedure. No longer do you have to struggle to get the parameter vector into matrices for calculating the function and its derivatives, trying to remember, or figure out, which parameter is where in the vector. If your log-likelihood uses matrices or arrays,you can store them directly into the PV structure and remove them as matrices or arrays with the parameters already plugged into them. The PV structure can handle matrices and arrays in which some of their elements are fixed and some free. It remembers the fixed parameters and knows where to plug in the current values of the free parameters. It can also handle symmetric matrices in which parameters below the diagonal are repeated above the diagonal. Platform: Windows, LINUX, solaris, and Mac. |