Can anyone help me calculating the average covariance of return?
4 views (last 30 days)
Show older comments
- Hi everyone. I'm trying to convert this formula into MatLab code:
where :
Fcvc is a target matrix used for shrinking the sample covariance matrix of return towards their average variance and average covariance, in order to obtain a better estimator. The topic is fromt De Nard paper "Oops! I Shrunk the Sample Covariance Matrix Again: Blockbuster Meets Shrinkage"
I don't know how to compute the average covariance (average of off-diagonal entries of a simmetric matrix), can anyone help me?
0 Comments
Answers (1)
William Rose
on 27 Oct 2022
Edited: William Rose
on 27 Oct 2022
[Edit: change the name of the initial matrix; it should not be Fcvc, it should be S. Add code to construct Fcvc using the which we calculate.]
You can just write a nested for loop (i,j) that does the calculation:
%Make a 4x4 covariance matrix
N=4; S=eye(N); %identity matrix
for i=1:N,
for j=i+1:N
S(i,j)=-1+2*rand(1,1);
S(j,i)=S(i,j);
end
end
S=10*S %multiply by some arbitray constant
That looks like a reasonable covariance matrix: it is positive along the diagonal, and the absolute value of off-diagonal element are less than the diagoonal, and it is symmetric.
Now compute and :
siibar=sum(sum(S))/N^2;
sijbar=0;
for i=1:N
for j=i+1:N
sijbar=sijbar+S(i,j);
end
end
sijbar=sijbar/((N^2-N)/2);
fprintf('siibar=%.4f, sijbar=%.4f\n',siibar,sijbar)
Those values look reasonable.
Use siibar and sijbar to make Fcvc
Fcvc=sijbar*(ones(N)-eye(N))+siibar*eye(N)
That looks good.
2 Comments
William Rose
on 27 Oct 2022
You may note that when calculating sijbar = , I added up the values on one side of the diagonal, then divided by (N^2-N)/2. In the formula you quoted, they added up the values on both sides of the diagonal and divided by (N^2-N). Since the matrix is symmetric (covariance matrices are alway ssymmetric), the result is the same for these two different ways of doing it.
See Also
Categories
Find more on Financial Toolbox 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!