📄 prt_mess.m
字号:
function prt_mess(results,vnames,fid)% PURPOSE: Prints output using MESS models results structures%---------------------------------------------------% USAGE: prt_mess(results,vnames,fid)% Where: results = a structure returned by a mess regression % vnames = an optional vector of variable names% fid = optional file-id for printing results to a file% (defaults to the MATLAB command window)%--------------------------------------------------- % NOTES: e.g. vnames = strvcat('y','const','x1','x2');% e.g. fid = fopen('ols.out','wr');% use prt_mess(results,[],fid) to print to a file with no vnames % --------------------------------------------------% RETURNS: nothing, just prints the mess model results% --------------------------------------------------% SEE ALSO: prt, plt%--------------------------------------------------- % written by:% James P. LeSage, Dept of Economics% University of Toledo% 2801 W. Bancroft St,% Toledo, OH 43606% jpl@jpl.econ.utoledo.eduif ~isstruct(results) error('prt_mess requires structure argument');elseif nargin == 1 nflag = 0; fid = 1;elseif nargin == 2 fid = 1; nflag = 1;elseif nargin == 3 nflag = 0; [vsize junk] = size(vnames); % user may supply a blank argument if vsize > 0 nflag = 1; end;else error('Wrong # of arguments to prt_mess');end;switch results.methcase {'mess'} % <=================== mess modelnobs = results.nobs;nvar = results.nvar;% special handling of vnamesVname = 'Variable';if results.xflag == 1 for i=1:2*(nvar-1)+1; tmp = ['variable ',num2str(i)]; Vname = strvcat(Vname,tmp); end;% add spatial rho parameter nameVname = strvcat(Vname,'alpha');else for i=1:nvar; tmp = ['variable ',num2str(i)]; Vname = strvcat(Vname,tmp); end;% add spatial rho parameter nameVname = strvcat(Vname,'alpha');end;if (nflag == 1) % the user supplied variable names if results.xflag == 1 Vname = 'Variable'; [tst_n nsize] = size(vnames); if tst_n ~= nvar+1 fprintf(fid,'Wrong # of variable names in prt_mess -- check vnames argument \n'); nflag = 0; fprintf(fid,'will use generic variable names \n'); else for i=1:nvar Vname = strvcat(Vname,vnames(i+1,:)); end; for i=2:nvar Vname = strvcat(Vname,['W-' vnames(i+1,:)]); end; % add spatial rho parameter name Vname = strvcat(Vname,'alpha'); end; % end of if-else else Vname = 'Variable'; [tst_n nsize] = size(vnames); if tst_n ~= nvar+1 fprintf(fid,'Wrong # of variable names in prt_mess -- check vnames argument \n'); nflag = 0; fprintf(fid,'will use generic variable names \n'); else for i=1:nvar Vname = strvcat(Vname,vnames(i+1,:)); end; % add spatial rho parameter name Vname = strvcat(Vname,'alpha'); end; % end of if-else end; end; % end of nflag issuefprintf(fid,'\n');fprintf(fid,'Matrix Exponential Spatial Specification Model\n');if (nflag == 1)fprintf(fid,'Dependent Variable = %16s \n',vnames(1,:));end;fprintf(fid,'R-squared = %9.4f \n',results.rsqr);fprintf(fid,'Rbar-squared = %9.4f \n',results.rbar);fprintf(fid,'sigma^2 = %9.4f \n',results.sige);fprintf(fid,'log-likelihood = %16.8g \n',results.lik);fprintf(fid,'Nobs, Nvars = %6d,%6d \n',results.nobs,results.nvar);fprintf(fid,'# of neighbors = %6d \n',results.neigh);fprintf(fid,'rho value used = %9.4f \n',results.rho);fprintf(fid,'q value used = %6d \n',results.q);% print timing informationfprintf(fid,'total time in secs = %9.4f \n',results.time);if results.htime ~= 0fprintf(fid,'time for hessian = %9.4f \n',results.htime);end;if results.ntime ~= 0fprintf(fid,'time for neighbors = %9.4f \n',results.ntime);end;if results.xflag == 0fprintf(fid,'No spatially lagged X variables \n');end;fprintf(fid,'***************************************************************\n');bout = [results.bhat results.alpha];if results.hflag == 1% now print coefficient estimates, t-statistics and probabilitiestout = norm_prb(results.tstat); % find asymptotic z (normal) probabilitiestmp = [bout results.tstat tout]; % matrix to be printed% column labels for printing resultsbstring = 'Coefficient'; tstring = 'Asymptot t-stat'; pstring = 'z-probability';cnames = strvcat(bstring,tstring,pstring);in.cnames = cnames;in.rnames = Vname;in.fmt = '%16.6f';in.fid = fid;mprint(tmp,in);else % we don't have t-statisticstmp = [bout ];bstring = 'Coefficient'; ;cnames = strvcat(bstring);in.cnames = cnames;in.rnames = Vname;in.fmt = '%16.6f';in.fid = fid;mprint(tmp,in);end;return; % <=================== end of mess casecase {'mess_g'} % <=================== mess_g modelnobs = results.nobs;nvar = results.nvar;% special handling of vnamesVname = 'Variable';if results.xflag == 1 for i=1:2*(nvar-1)+1; tmp = ['variable ',num2str(i)]; Vname = strvcat(Vname,tmp); end;% add spatial rho parameter nameVname = strvcat(Vname,'alpha');else for i=1:nvar; tmp = ['variable ',num2str(i)]; Vname = strvcat(Vname,tmp); end;% add spatial rho parameter nameVname = strvcat(Vname,'alpha');end;if (nflag == 1) % the user supplied variable names if results.xflag == 1 Vname = 'Variable'; [tst_n nsize] = size(vnames); if tst_n ~= nvar+1 fprintf(fid,'Wrong # of variable names in prt_mess -- check vnames argument \n'); nflag = 0; fprintf(fid,'will use generic variable names \n'); else for i=1:nvar Vname = strvcat(Vname,vnames(i+1,:)); end; for i=2:nvar Vname = strvcat(Vname,['W-' vnames(i+1,:)]); end; % add spatial rho parameter name Vname = strvcat(Vname,'alpha'); end; % end of if-else else Vname = 'Variable'; [tst_n nsize] = size(vnames); if tst_n ~= nvar+1 fprintf(fid,'Wrong # of variable names in prt_mess -- check vnames argument \n'); nflag = 0; fprintf(fid,'will use generic variable names \n'); else for i=1:nvar Vname = strvcat(Vname,vnames(i+1,:)); end; % add spatial rho parameter name Vname = strvcat(Vname,'alpha'); end; % end of if-else end; end; % end of nflag issue% find posterior meanstmp1 = mean(results.bdraw);pout = mean(results.adraw);bout = [tmp1' pout];y = results.y;sige = mean(results.sdraw);tmp1 = std(results.bdraw);tmp2 = std(results.adraw);bstd = [tmp1' tmp2];if strcmp(results.tflag,'tstat') tstat = bout./bstd; % find t-stat marginal probabilities tout = tdis_prb(tstat,results.nobs); results.tstat = bout./bstd; % trick for printing belowelse % find plevels draws = [results.bdraw results.adraw]; [junk kk] = size(draws); for i=1:kk; if bout(i,1) > 0 cnt = find(draws(:,i) > 0); tout(i,1) = 1 - (length(cnt)/(results.ndraw-results.nomit)); else cnt = find(draws(:,i) < 0); tout(i,1) = 1 - (length(cnt)/(results.ndraw-results.nomit)); end; % end of if - else end; % end of for loopend; fprintf(fid,'\n');fprintf(fid,'Bayesian Matrix Exponential Spatial Specification\n');fprintf(fid,'rho and # neighbors fixed apriori\n');if (nflag == 1)fprintf(fid,'Dependent Variable = %16s \n',vnames(1,:));end;fprintf(fid,'R-squared = %9.4f \n',results.rsqr);fprintf(fid,'Rbar-squared = %9.4f \n',results.rbar);fprintf(fid,'sigma^2 = %9.4f \n',results.smean);fprintf(fid,'Nobs, Nvars = %6d,%6d \n',results.nobs,results.nvar);fprintf(fid,'# of neighbors = %6d \n',results.neigh);fprintf(fid,'rho value used = %9.4f \n',results.rho);fprintf(fid,'q value used = %6d \n',results.q);fprintf(fid,'ndraws,nomit = %6d,%6d \n',results.ndraw,results.nomit);fprintf(fid,'acceptance rate = %9.4f \n',results.accept);% print timing informationfprintf(fid,'total time in secs = %9.4f \n',results.time);if results.stime ~= 0fprintf(fid,'time for sampling = %9.4f \n',results.stime);end;if results.ntime ~= 0fprintf(fid,'time for neighbors = %9.4f \n',results.ntime);end;if results.xflag == 0fprintf(fid,'No spatially lagged X variables \n');end;fprintf(fid,'***************************************************************\n');vstring = 'Variable';bstring = 'Prior Mean';tstring = 'Std Deviation';tmp = [results.bprior results.bpstd]; tmp = [tmp results.palpha sqrt(results.acov)];cnames = strvcat(bstring,tstring);rnames = vstring;pin.fmt = '%16.6f';pin.fid = fid;pin.cnames = cnames;pin.rnames = strvcat(rnames,Vname(2:end,:));mprint(tmp,pin);fprintf(fid,'***************************************************************\n');fprintf(fid,' Posterior Estimates \n'); if strcmp(results.tflag,'tstat')% now print coefficient estimates, t-statistics and probabilitiestout = norm_prb(results.tstat); % find asymptotic z (normal) probabilities tmp = [bout results.tstat tout]; % matrix to be printed% column labels for printing resultsbstring = 'Coefficient'; tstring = 'Asymptot t-stat'; pstring = 'z-probability';cnames = strvcat(bstring,tstring,pstring);in.cnames = cnames;in.rnames = Vname;in.fmt = '%16.6f';in.fid = fid;mprint(tmp,in); else % use p-levels for Bayesian resultstmp = [bout bstd tout]; % matrix to be printed% column labels for printing resultsbstring = 'Coefficient'; tstring = 'std deviation'; pstring = 'P-level';cnames = strvcat(bstring,tstring,pstring);in.cnames = cnames;in.rnames = Vname;in.fmt = '%16.6f';in.fid = fid;mprint(tmp,in);end;return; % <=================== end of mess_g casecase {'messt_g'} % <=================== messt_g modelnobs = results.nobs;nvar = results.nvar;% special handling of vnamesVname = 'Variable';if results.xflag == 1 for i=1:2*(nvar-1)+1; tmp = ['variable ',num2str(i)]; Vname = strvcat(Vname,tmp); end;% add spatial rho parameter nameVname = strvcat(Vname,'alpha');else for i=1:nvar; tmp = ['variable ',num2str(i)]; Vname = strvcat(Vname,tmp); end;% add spatial rho parameter nameVname = strvcat(Vname,'alpha');end;if (nflag == 1) % the user supplied variable names if results.xflag == 1 Vname = 'Variable'; [tst_n nsize] = size(vnames); if tst_n ~= nvar+1 fprintf(fid,'Wrong # of variable names in prt_mess -- check vnames argument \n'); nflag = 0; fprintf(fid,'will use generic variable names \n'); else for i=1:nvar Vname = strvcat(Vname,vnames(i+1,:)); end; for i=2:nvar Vname = strvcat(Vname,['W-' vnames(i+1,:)]); end; % add spatial rho parameter name Vname = strvcat(Vname,'alpha'); end; % end of if-else else Vname = 'Variable'; [tst_n nsize] = size(vnames); if tst_n ~= nvar+1 fprintf(fid,'Wrong # of variable names in prt_mess -- check vnames argument \n'); nflag = 0; fprintf(fid,'will use generic variable names \n'); else for i=1:nvar Vname = strvcat(Vname,vnames(i+1,:)); end; % add spatial rho parameter name Vname = strvcat(Vname,'alpha'); end; % end of if-else end; end; % end of nflag issue% find posterior meanstmp1 = mean(results.bdraw);pout = mean(results.adraw);bout = [tmp1' pout];y = results.y;sige = mean(results.sdraw);tmp1 = std(results.bdraw);tmp2 = std(results.adraw);bstd = [tmp1' tmp2];if strcmp(results.tflag,'tstat') tstat = bout./bstd; % find t-stat marginal probabilities tout = tdis_prb(tstat,results.nobs); results.tstat = bout./bstd; % trick for printing belowelse % find plevels
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -