首页 > 解决方案 > 矩阵接近奇异或严重缩放的投资组合排序

问题描述

我正在尝试对 3 个大小的投资组合进行排序并执行 2 阶段 Fama Macbeth 回归,其中 LHS 的超额投资组合回报和 RHS 的 FF3 因子。

问题是我从 2 阶段回归中收到一条错误消息,指出“矩阵接近奇异或缩放不良。结果可能不准确”。如果我只使用一些随机数或我的实际数据,我会得到这个错误,所以我怀疑我对投资组合进行排序的方式存在错误。

我在代码的最后一行得到了错误。具体来说,在“XSReg”中。这是“XSReg”的链接:http ://www.julianthimme.de/code

有人可能会看到我在哪里弄乱了投资组合排序吗?

下面的代码只使用了一些随机数据

clear all 
clc
%% Setting up data
RET=[1 1 1 1; 2 2 2 2; 2 2 2 2; 3 3 3 3;3.5 3.3 3.4 3.6];
MEQ=[100 150 200 300;100 150 200 300;100 150 200 300;100 150 200 300;10 150 250 100];
SMB=[10; 4; 4; 5;6];
HML=[2; 3; 4; -1;-2];
market_ret=[10; 4; 4; 5;6];
rf=[0.10; 0.4; 0.4; 0.5;0.6];
T=length(RET);
nAss=size(RET,2);


%%Calculating breakpoints
nPort=3; %Nr of portfolios
Breakpoint=NaN(T,nPort-1);
for i=1:T; %Setting the breakpoints
    Breakpoint(i,:)=  quantile(MEQ(i,:),nPort-1);
end


%%Assigning returns & market equity to matrixes based on breakpoints
h_meq=NaN(T,nAss);
m_meq=NaN(T,nAss);
l_meq=NaN(T,nAss);
h_ret=NaN(T,nAss);
m_ret=NaN(T,nAss);
l_ret=NaN(T,nAss);
for i=1:T;
    for k=1:nAss;
    if MEQ(i,k)>=Breakpoint(i,2);
       h_meq(i,k)=MEQ(i,k);
       h_ret(i,k)=RET(i,k);
    end
    if MEQ(i,k)<Breakpoint(i,2) & MEQ(i,k)>Breakpoint(i,1);
       m_meq(i,k)=MEQ(i,k);
       m_ret(i,k)=RET(i,k);
    end
    if MEQ(i,k)<=Breakpoint(i,1);
      l_meq(i,k)=MEQ(i,k);
      l_ret(i,k)=RET(i,k);
    end
end
end

%%Calculating the weighted return
for i=1:T
    for k=1:nAss;
        w_ret_h(i,k)=h_ret(i,k)*(h_meq(i,k)/nansum(h_meq(i,k)));
        w_ret_m(i,k)=m_ret(i,k)*(m_meq(i,k)/nansum(m_meq(i,k)));
        w_ret_l(i,k)=l_ret(i,k)*(l_meq(i,k)/nansum(l_meq(i,k)));
    end
end


%%Summing up to get portfolio returns
VWport=NaN(T,nPort);
for i=1:T
    VWport(i,1)=nansum(w_ret_l(i,:));
    VWport(i,2)=nansum(w_ret_m(i,:));
    VWport(i,3)=nansum(w_ret_h(i,:));
end
ExcessVWport=VWport-rf;

%%2stage Fama Macbeth regression
factors=[excessmkt SMB HML]; 
returns=ExcessVWport;
[lambda, tlambda, R2adj, RMSE, alpha, talpha, beta, tbeta, GRS, pval, vcv]=XSReg(returns, factors, 1, 1, [], 2, 'HACC_B');

标签: matlabsortingmatrixregressionfinance

解决方案


推荐阅读