📄 prt_eqs.m
字号:
function prt_eqs(results,vnames,fid)
% PURPOSE: Prints output from mutliple equation regressions
% (thsls,sur)
%---------------------------------------------------
% USAGE: prt_eqs(results,vnames,fid)
% Where: results = a structure returned by:
% thsls,sur
% vnames = an optional vector of variable names
% fid = file-id for printing results to a file
% (defaults to the MATLAB command window)
%---------------------------------------------------
% e.g. vnames = ['y ',
% 'x1 ', NOTE: fixed width
% 'x2 ', like all MATLAB
% 'cterm'];
% e.g. fid = fopen('ols.out','wr');
% --------------------------------------------------
% SEE ALSO: prt, plt, plt_reg(results)
%---------------------------------------------------
% written by:
% James P. LeSage, Dept of Economics
% University of Toledo
% 2801 W. Bancroft St,
% Toledo, OH 43606
% jpl@jpl.econ.utoledo.edu
if nargin < 1; error('wrong # of arguments to prt_eqs'); end;
if nargin > 3; error('wrong # of arguments to prt_eqs'); end;
nflag = 0;
if nargin == 1; fid = 1; end;
if nargin == 2; nflag = 1; fid = 1; end;
if nargin == 3; nflag = 1; end;
% --------------------------------------------------------
% error check for a structure input
if ~isstruct(results)
error('prt_eqs requires a regression results structure');
end;
nobs = results(1).nobs;
neqs = results(1).neqs;
k=0;
for i=1:neqs;
k = k + results(i).nvar;
end;
cnt = 1;
cntn = 1;
eqname = [];
for neqn=1:neqs;
nvar = results(neqn).nvar;
% Make up generic variable names
Vname = [];
for i=1:nvar
Vname{i} = str2mat(['variable ',num2str(i)]);
end;
if (nflag == 1) % the user supplied variable names
[tst_n junk] = size(vnames);
if tst_n ~= k+neqs;
fprintf(fid,'Wrong # of variable names in prt_eqs -- check vnames argument \n');
fprintf(fid,'will use generic variable names \n');
nflag = 0;
else,
Vname = [];
for i=1:nvar
Vname{i} = vnames(cntn+i,:);
end;
end;
end; % end of nflag issue
switch results(1).meth
case {'thsls'} % <=================== thsls regressions
fprintf(fid,'\n');
fprintf(fid,'Three Stage Least-squares Estimates -- Equation %3d \n',neqn);
if (nflag == 1)
fprintf(fid,'Dependent Variable = %16s \n',vnames(cntn,:));
end;
fprintf(fid,'R-squared = %9.4f \n',results(neqn).rsqr);
fprintf(fid,'Rbar-squared = %9.4f \n',results(neqn).rbar);
fprintf(fid,'sigma^2 = %9.4f \n',results(neqn).sige);
fprintf(fid,'Durbin-Watson = %9.4f \n',results(neqn).dw);
fprintf(fid,'Nobs, Nvars = %6d,%6d \n',results(1).nobs,results(neqn).nvar);
fprintf(fid,'***************************************************************\n');
% -------- end of thsls case
case {'sur'} % <=================== sur regressions
fprintf(fid,'\n');
fprintf(fid,'Seemingly Unrelated Regression -- Equation %3d \n',neqn);
if (nflag == 1)
fprintf(fid,'Dependent Variable = %16s \n',vnames(cntn,:));
end;
fprintf(fid,'System R-sqr = %9.4f \n',results(neqs).srsqr);
fprintf(fid,'R-squared = %9.4f \n',results(neqn).rsqr);
fprintf(fid,'Rbar-squared = %9.4f \n',results(neqn).rbar);
fprintf(fid,'sigma^2 = %9.4f \n',results(neqn).sige);
fprintf(fid,'Durbin-Watson = %9.4f \n',results(neqn).dw);
fprintf(fid,'Nobs, Nvars = %6d,%6d \n',results(1).nobs,results(neqn).nvar);
fprintf(fid,'***************************************************************\n');
% -------- end of sur case
otherwise
error('structure unknown to prt_eqs');
end;
tmp = [results(neqn).beta results(neqn).tstat results(neqn).tprob];
% print out results
vstring = 'Variable';
bstring = 'Coefficient';
tstring = 't-statistic';
pstring = 't-probability';
cnames = strvcat(bstring,tstring,pstring);
rnames = vstring;
for i=1:nvar
rnames = strvcat(rnames,Vname{i});
end;
fmt = '%16.6f';
in.fid = fid;
in.fmt = fmt;
in.cnames = cnames;
in.rnames = rnames;
mprint(tmp,in);
if nflag == 1
eqname{neqn} = vnames(cntn,:);
end;
cntn = cntn+nvar+1;
cnt = cnt+1;
end; % end of loop over equations
% print cross-equation correlation structure
sig = results(1).sigma;
fprintf(fid,'Cross-equation sig(i,j) estimates \n');
cnames = [];
for i=1:neqs;
if nflag == 0
cnames = [cnames
'eq ' num2str(i)];
else
cnames = [cnames
eqname{i}];
end;
end;
cnames = strvcat(cnames);
fmt = '%9.4f';
rnames = strvcat('equation',cnames);
ins.fmt = fmt;
ins.cnames = cnames;
ins.rnames = rnames;
ins.fid = fid;
mprint(sig,ins);
fprintf(fid,'\n');
ccor = results(1).ccor;
ins.fmt = '%9.4f';
fprintf(fid,'Cross-equation correlations \n');
mprint(ccor,ins);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -