本帖最后由 xiaowu55 于 2016-3-25 22:30 编辑
flag_go_on=1;
num_of_loop=0;
a = [];%存储剔除的变量下标
xx = 1:k;%存储最原始的变量下标,如果有5个变量x,则存储1,2,3,4,5
while flag_go_on
cij=inv(X'*X);
cii=diag(cij);
F_fenweidian_1=finv(1-F_alpha,1,n-k-1);
ci=sqrt(cii(2:end)*Se_square*F_fenweidian_1/(n-k-1));
format_str='%15.4f';
for ii=1:k-1
format_str=[format_str '%13.4f'];
end
fprintf(['\r第%d次检验:\rcii: ' format_str '%13.4f\r ci: ' ...
format_str '\rβi:' format_str '%13.4f'],num_of_loop+1,cii,ci,beta_mao)
if ~all(abs(beta_mao(2:end))>ci')
flag_go_on=1;
beta_1tok=beta_mao;
beta_1tok(1)=[];
fi_xin=beta_1tok.^2./cii(1:end-1)';
min_fi=min(fi_xin);
beta_index=find(fi_xin==min_fi)+1;
% 这样就可以输出正确的下标了
index_xx = xx(beta_inde