An Example: Asset Allocation with Investment Funds


Assets and Funds

To see the power of matrix operations, we consider an important example -- the choice of a portfolio of investment funds designed to achieve a desired asset allocation.

Assume that an Analyst has identified three major asset classes:

   DomBds:  Domestic Bonds
   DomStx:  Domestic Stocks
   ForStx:  Foreign Stocks

Three Funds are available for investment:


After considerable work, the Analyst has estimated the exposures of each fund to each of the three asset classes. For present purposes, think of these as the funds' allocations of money among the asset classes. The results of the analysis are summarized in matrix A:

             FundA   FundB   FundC
    DomBds    0.60    0.20    0.00
    DomStx    0.40    0.50    0.30
    ForStx    0.00    0.30    0.70 

Thus FundA has 60% of its money in Domestic Bonds and 40% in Domestic Stocks; Fund B has 20% in Domestic Bonds, 50% in Domestic Stocks, and 30% in Foreign Stocks, etc..

The Current Portfolio

At the moment, the Investor has 20% of her money invested in FundA, 30% in FundB and 50% in FundC. This is shown in vector x:

    FundA    0.20
    FundB    0.30
    FundC    0.50

The Current Allocation

What is the Investor's current allocation among the three major asset classes? The answer can be found by simply multiplying matrix A by vector x. The required MATLAB statement is:

    b = A*x

This provides the result:

    DomBds    0.18
    DomStx    0.38
    ForStx    0.44

Thus her portfolio has 18% in Domestic Bonds, 38% in Domestic Stocks and 44% in Foreign Stocks.

Note the dimensions associated with this calculation:

    A {assets*funds) * x (funds*1) ===> b {assets*1}

The inner dimensions are the same, as they must be. And the dimensions of the result are, as usual, the outer dimensions of the two operands.

Obtaining a Desired Allocation

What if the Analyst, after conferring with the Investor, decided that it would be better to allocate the assets differently, with 15% in Domestic Bonds, 35% in Domestic Stocks and 50% in Foreign Stocks? How should money be divided among the investment funds to achieve this goal?

To begin, create vector bb {assets*1}, with the desired allocation:

    DomBds    0.15
    DomStx    0.35
    ForStx    0.50

We seek a new vector of fund investments that will provide this allocation. Let the former be xx {funds*1}. We want the following to hold:

    A*xx = bb

To solve this set of equations requires only the MATLAB statement:

   xx = inv(A)*bb

or the equivalent operation in Excel (or another system).

The required investments are given in xx. In table form:

    FundA    0.20
    FundB    0.15
    FundC    0.65

The Investor should put 20% of her assets in FundA, 15% in FundB and 65% in FundC.

Finding Alternative Allocations

What if the Analyst wished to present two different allocations among asset classes to the Investor? The procedure described above could be repeated with different values in vector bb. But there is an even simpler approach.

First, include all allocations of interest in a matrix, with one column per desired mix. In this case, BBB {assets*mixes} is:

              Mix1    Mix2
    DomBds    0.15    0.15
    DomStx    0.35    0.40
    ForStx    0.50    0.45

It is tempting to simply substitute this matrix for the vector bb used in the previous case. In fact, this is a temptation to which one can and should succumb, for it will provide the desired answers.

The MATLAB statement:

   XXX = inv(A)*BBB

will produce the following, in table form:

             Mix1    Mix2
    FundA    0.20    0.10
    FundB    0.15    0.45
    FundC    0.65    0.45

Why does this work? Recall that matrix multiplication can be regarded as a series of multiplications of the first matrix (here, inv(A)) by the adjoining column vectors in the second matrix (here, BBB). Not surprisingly, each column in the result (XXX) is the solution to a simpler problem in which only the corresponding column of BBB is utilized.

What about the dimensions? To answer this question we need to know the dimensions of inv(A). Recall that A is {assets*funds}. It follows that its inverse is {funds*assets} (it is, after all, inverted). Thus:

     inv(A) {funds*assets} * BBB {assets*mixes} ===>  XXX {funds*mixes}

as characterized above.

Finding Pure Asset Plays

In this example the only vehicles available for direct investment are the three investment funds. If one wishes to invest in asset classes, it must be done via such funds. We have shown how to find the set of fund allocations required to achieve any desired asset allocation. One particularly interesting set of the latter includes the three possible pure asset plays.

Consider the following set of mixes, contained in matrix BBBB:

              Mix1    Mix2    Mix3
    DomBds    1.00    0.00    0.00
    DomStx    0.00    1.00    0.00
    ForStx    0.00    0.00    1.00

Mix1 represents allocation of all one's assets to Domestic Bonds, Mix2 to Domestic Stocks, and Mix3 to Foreign Stocks. Each is a "pure asset play". For example, an Investor with Mix1 will be totally unaffected by the performance of Domestic Stocks and Foreign Stocks -- only the returns from Domestic Bonds will matter.

To find the allocations among investment funds required to achieve each of these mixes, we simply repeat the procedure used in the previous case. Letting matrix XXXX represent the desired results:

   XXXX = inv(A)*BBBB

which gives:

           DomBds  DomStx  ForStx
    FundA    2.60   -1.40    0.60
    FundB   -2.80    4.20   -1.80
    FundC    1.20   -1.80    2.20

Thus one wishing to create a pure Domestic Bond play would place an amount equal to 260% of her money in FundA and 120% in FundC. To help finance these investments, she would take a negative position in Fund B with an amount equal to 280% of her money.

Could this be done in practice? Possibly, if the investment funds' shares were traded and could be "sold short". Some closed-end fund shares might be used in this manner, but in all likelihood such an extreme strategy would be infeasible or at least costly. To deal with such real-world aspects requires more complex problem formulations and solution procedures, which will be discussed in due course..

However simplistic, this example does illustrate an important point. Look again at matrix BBBB. It is, in fact, a {3*3} identity matrix (which can be created in MATLAB with the expression eye(3)).. Thus XXXX is the product of the inverse of A times an identity matrix. But this must be the inverse of A! Hence, each column in the inverse of A shows the allocation of money among funds that will provide a pure asset play. As will be seen, this relationship can be applied in both normative and positive applications.