% Procedura OUTPUT2SLS
% ********************
% YDEP ... vektor zavisle promenne
% XIND ... matice nezavisle promennych
% XPRE ... matice predeterminovaných proměnných
% BETA ... vektor regresnich koeficientu
%  
  YDEP=YPOZ; 
  XIND=XPOZ;
  XPRD=XPRE;
  NOB1=NOBD-1;
 
% ODHAD REGRESNICH KOEFICIENTU METODOU 2SLS [BPAR]
  XMAT=XPRD'*XPRD;
  INVX=inv(XMAT);
  INMA=XPRD*INVX*XPRD';
  INMB=XIND'*INMA*XIND;
  INXX=inv(INMB);
  INXY=XPOZ'*INMA*YPOZ;
  BETA=INXX*INXY;

% VYROVNANE HODNOTY [YVYR]
  YVYR=XIND*BETA;

% ODHADNUTA REZIDUA [URTR] A SOUCET JEJICH CTVERCU [UR2TR]
  URTR=YDEP-YVYR;
  UR2TR=0;
  for I = 1:NOBD,
   UR2TR=UR2TR+URTR(I)*URTR(I);
  end

% ODHAD REZIDUALNIHO ROZPTYLU [SIGMA2]
  SIG2=UR2TR/(NOBD-1);
  SIGT=sqrt(SIG2);
  
% SMERODATNE ODCHYLKY PARAMETRU [SBET] A T-STATISTIKY [TBET]
  DIAX=diag(INXX);
  SBET=SIGT*sqrt(DIAX);
   for J = 1:KPRO;
    TBET(J)=BETA(J)/SBET(J);
   end
   
% ZOBRAZENI MEZIVYSLEDKU [parametry]
  disp('   regresni parametry')
  disp([BETA'])
  disp('   smerodatne odchylky parametru')
  disp([SBET'])
  disp('   t-statistiky parametru')
  disp([TBET]) 

% KOEFICIENT DETERMINACE [R2]
  YPR=mean(YDEP);
  YDEV=YDEP-YPR;
  YDEV2=YDEV'*YDEV;
  R2=1.-UR2TR/YDEV2;

% DURBIN-WATSONUV KOEFICIENT [DW]
   for I = 1:NOB1,
    URTRD(I)=URTR(I+1)-URTR(I);
   end
   URTRD2=URTRD*URTRD';
  DW=URTRD2/UR2TR;

% von NEUMANNUV POMER [VN]
  VN=DW*NOBD/(NOBD-KPRO);

% ZOBRAZENI MEZIVYSLEDKU [vystiznost modelu]
  disp('   rezidualni chyba  koef.determinace')
  disp([   SIGT                 R2])

% ZOBRAZENI CHARAKTERISTIK PRIPADNE AUTOKORELACE REZIDUI
  disp('   Durbin-Watson  von Neumannuv pomer')
  disp([   DW                   VN])
  UREZ2SLS=URTR;
  
% GRAF pozorovanych,vyrovnanych a rezidualnich hodnot [YPOZ,YVYR,UREZ]
  figure
  plot(T,YPOZ,T,YVYR,T,UREZ)
  legend('pozorovane','vyrovnane','rezidua')
  title ('2SLS : pozorovane a vyrovnane hodnoty, rezidua rovnice')
%  pause
  return
