⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prt_mess.m

📁 计量工具箱
💻 M
📖 第 1 页 / 共 4 页
字号:
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 + -