Matlab版本之间的差异

时间:2013-12-23 21:01:31

标签: matlab

我一直在实施这篇论文:

http://www.tandfonline.com/doi/abs/10.1080/03610918.2011.575506#.UrijOLS_UhI

如果有人要求,我可以发送副本。

我认为我的实施是正确的,但我得到了与论文中给出的答案截然不同的答案:

我的结果
     B0 0.0470
     B1 2.1635
     B2 1.1560
     B3 0.7451
     B4 0.4931

纸上的结果
     B0 0.1228
     B1 2.1630
     B2 1.1552
     B3 0.7444
     B4 0.4922

正如您所看到的那样,B0是关闭的,而剩余的Beta值仅对小数位有效,这是不够的。是否可以区分使用的Matlab版本的差异?我使用R2011a,作者使用Matlab 7.0?

function [b_LRRE]=LRRE(y,x)

[n, p]=size(x);

dim=1;

b=x\y;

sig_ols_sq=((y-x*b)'*(y-x*b))/(n-p);



econFlag=0;
[U,sigma,V] = svd(x,econFlag);



d=zeros(p,1);
d=diag(d);


alpha=V'*b;
Delta=sigma.^2;
I=ones(p,1);
I=diag(I);


for jj=1:50


for ii=1:p

d(ii,ii)=(Delta(ii,ii)*(alpha(ii)^2-sig_ols_sq))/(sig_ols_sq+Delta(ii,ii)*alpha(ii)^2);


end

A=pinv(Delta+I)*(Delta+d);
b_LRRE=V*A*V'*b;

alpha=V'*b_LRRE;

end


end

这是数据

 78.5   1   7   26  6   60
 74.3   1   1   29  15  52
 104.3  1   11  56  8   20
 87.6   1   11  31  8   47
 95.9   1   7   52  6   33
 109.2  1   11  55  9   22
 102.7  1   3   71  17  6
 72.5   1   1   31  22  44
 93.1   1   2   54  18  22
 115.9  1   21  47  4   26
 83.8   1   1   40  23  34
 113.3  1   11  66  9   12
 109.4  1   10  68  8   12

0 个答案:

没有答案