About minimizing variance of a mimicking portfolio

1 view (last 30 days)
I have been working on an assignment and encountered the following problem: I have one-factor model for returns (say CAPM). I regress the returns of fifteen companies on market returns (my factor) and obtain 15x1 vector of betas. My task is to create a 15x1 vector of weights thetaprime that is the mimicking portfolio of the factor. For this vector of weights to be the mimicking portfolios, I need the following conditions:
1. sum(thetaprime) = 1
2. thetaprime*beta' = 1
3. The variance of the resulting mimicking portfolio (constructed with the thetaprime components) to be the minimum variance possible and the variance is given by:
variance_mimicking = thetaprime*SIGMA*thetaprime' (where SIGMA is a 15x15 variance-covariance symmetric matrix that I have calculated)
I am doing the following steps:
1. N = null([ones(15,1) beta].').';
2.thetaprime = thetaa + randn(1,13)*N;
in this way I can generate infinitely many vectors of thetaprime that satisfy conditions 1) and 2) above. When I substitute thetaprime in the formula for the variance, I get the same variance every time independently of the variables in thetaprime which does not make sense for me. I expectted different result for variance for different values of thetaprime that I can minimize with an optimization routine in order to find one unique value for thetaprime. Any suggestions?
Thank you very much in advance!
  2 Comments
Matt J
Matt J on 3 Mar 2013
Don't you mean
thetaa + N*randn(13,1)
You want a random linear combination of the columns of N, I think.
N =B>=>2
N =B>=>2 on 3 Mar 2013
Even if I do it in this way, I get the same problem in the end. Values of thetaprime do vary,but the variance is still constant.

Sign in to comment.

Answers (2)

Matt J
Matt J on 3 Mar 2013
Edited: Matt J on 3 Mar 2013
The only reason I can think of why that would happen is if
Aeq=[ones(15,1) beta]
is in the row space of sigma, or equivalently that null(SIGMA) contains null(Aeq). A simple test would be to check whether
SIGMA*N=0
Incidentally, though, you do know that QUADPROG is the more standard way to solve these kinds of problems, right? Do you not have the Optimization Toolbox?
  12 Comments
N =B>=>2
N =B>=>2 on 3 Mar 2013
This is a bit strange. The assignment asks for an uniqie solution for thetaprime and economic interpretation of its components (the magnitude of loadings on different stocks and their relative importance in the portfolio).
Matt J
Matt J on 3 Mar 2013
You should re-examine your SIGMA and how it was generated. It does not admit a unique solution.

Sign in to comment.


Matt J
Matt J on 3 Mar 2013
Edited: Matt J on 3 Mar 2013
Another thing I'll point out is that the problem is small enough to be solved analytically, and you've already done most of the work.
L=sqrtm(SIGMA);
dtheta = -thetaa*L/N*L;
thetaprime=thetaa+dtheta;

Categories

Find more on Financial Data Analytics in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!