228 lines
12 KiB
HTML
228 lines
12 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"http://www.w3.org/TR/REC-html40/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Description of PosteriorSmoother</title>
|
|
<meta name="keywords" content="PosteriorSmoother">
|
|
<meta name="description" content="stephane.adjemian@ens.fr [09-25-2005]">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="generator" content="m2html © 2003 Guillaume Flandin">
|
|
<meta name="robots" content="index, follow">
|
|
<link type="text/css" rel="stylesheet" href="../m2html.css">
|
|
</head>
|
|
<body>
|
|
<a name="_top"></a>
|
|
<div><a href="../index.html">Home</a> > <a href="index.html">.</a> > PosteriorSmoother.m</div>
|
|
|
|
<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png"> Master index</a></td>
|
|
<td align="right"><a href="index.html">Index for . <img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
|
|
|
|
<h1>PosteriorSmoother
|
|
</h1>
|
|
|
|
<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="box"><strong>stephane.adjemian@ens.fr [09-25-2005]</strong></div>
|
|
|
|
<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="box"><strong>function PosteriorSmoother(Y,gend, type) </strong></div>
|
|
|
|
<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="fragment"><pre class="comment"> stephane.adjemian@ens.fr [09-25-2005]</pre></div>
|
|
|
|
<!-- crossreference -->
|
|
<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
This function calls:
|
|
<ul style="list-style-image:url(../matlabicon.gif)">
|
|
<li><a href="CheckPath.html" class="code" title="function DirectoryName = CheckPath(type)">CheckPath</a> 06-03-2005</li><li><a href="DsgeSmoother.html" class="code" title="function [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK] = DsgeSmoother(xparam1,gend,Y)">DsgeSmoother</a> stephane.adjemian@cepremap.cnrs.fr [09-07-2004]</li><li><a href="GetOneDraw.html" class="code" title="function [xparams, logpost] = GetOneDraw(type)">GetOneDraw</a> stephane.adjemian@ens.fr [09-25-2005]</li><li><a href="resol.html" class="code" title="function [dr,info]=resol(ys,check_flag)">resol</a> Copyright (C) 2001 Michel Juillard</li><li><a href="set_all_parameters.html" class="code" title="function set_all_parameters(xparam1)">set_all_parameters</a> </li></ul>
|
|
This function is called by:
|
|
<ul style="list-style-image:url(../matlabicon.gif)">
|
|
</ul>
|
|
<!-- crossreference -->
|
|
|
|
|
|
<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
|
<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function PosteriorSmoother(Y,gend, type)</a>
|
|
0002 <span class="comment">% stephane.adjemian@ens.fr [09-25-2005]</span>
|
|
0003 <span class="keyword">global</span> options_ estim_params_ oo_ M_
|
|
0004
|
|
0005 nvx = estim_params_.nvx;
|
|
0006 nvn = estim_params_.nvn;
|
|
0007 ncx = estim_params_.ncx;
|
|
0008 ncn = estim_params_.ncn;
|
|
0009 np = estim_params_.np ;
|
|
0010 npar = nvx+nvn+ncx+ncn+np;
|
|
0011 offset = npar-np;
|
|
0012 naK = length(options_.filter_step_ahead);
|
|
0013 <span class="comment">%%</span>
|
|
0014 MaxNumberOfPlotPerFigure = 4;<span class="comment">% The square root must be an integer!</span>
|
|
0015 MaxNumberOfBytes=options_.MaxNumberOfBytes;
|
|
0016 endo_nbr=M_.endo_nbr;
|
|
0017 exo_nbr=M_.exo_nbr;
|
|
0018 nvobs = size(options_.varobs,1);
|
|
0019 nn = sqrt(MaxNumberOfPlotPerFigure);
|
|
0020 <span class="comment">%%</span>
|
|
0021 <a href="CheckPath.html" class="code" title="function DirectoryName = CheckPath(type)">CheckPath</a>(<span class="string">'Plots/'</span>);
|
|
0022 DirectoryName = <a href="CheckPath.html" class="code" title="function DirectoryName = CheckPath(type)">CheckPath</a>(<span class="string">'metropolis'</span>);
|
|
0023 load([ DirectoryName <span class="string">'/'</span> M_.fname <span class="string">'_mh_history'</span>])
|
|
0024 FirstMhFile = record.KeepedDraws.FirstMhFile;
|
|
0025 FirstLine = record.KeepedDraws.FirstLine;
|
|
0026 TotalNumberOfMhFiles = sum(record.MhDraws(:,2)); LastMhFile = TotalNumberOfMhFiles;
|
|
0027 TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
|
|
0028 NumberOfDraws = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
|
|
0029 clear record;
|
|
0030 MAX_nruns = ceil(options_.MaxNumberOfBytes/(npar+2)/8);
|
|
0031 MAX_nsmoo = ceil(MaxNumberOfBytes/((endo_nbr)*gend)/8);
|
|
0032 MAX_ninno = ceil(MaxNumberOfBytes/(exo_nbr*gend)/8);
|
|
0033 MAX_nerro = ceil(MaxNumberOfBytes/(size(options_.varobs,1)*gend)/8);
|
|
0034 MAX_naK = ceil(MaxNumberOfBytes/(size(options_.varobs,1)*length(options_.filter_step_ahead)*gend)/8);
|
|
0035 <span class="comment">%%</span>
|
|
0036 B = round(0.25*NumberOfDraws);
|
|
0037 <span class="comment">%%</span>
|
|
0038 varlist = options_.varlist;
|
|
0039 <span class="keyword">if</span> isempty(varlist)
|
|
0040 varlist = M_.endo_names;
|
|
0041 SelecVariables = transpose(1:M_.endo_nbr);
|
|
0042 nvar = M_.endo_nbr;
|
|
0043 <span class="keyword">else</span>
|
|
0044 nvar = size(varlist,1);
|
|
0045 SelecVariables = [];
|
|
0046 <span class="keyword">for</span> i=1:nvar
|
|
0047 <span class="keyword">if</span> ~isempty(strmatch(varlist(i,:),M_.endo_names,<span class="string">'exact'</span>))
|
|
0048 SelecVariables = [SelecVariables;strmatch(varlist(i,:),M_.endo_names,<span class="string">'exact'</span>)];
|
|
0049 <span class="keyword">end</span>
|
|
0050 <span class="keyword">end</span>
|
|
0051 <span class="keyword">end</span>
|
|
0052
|
|
0053 irun1 = 1;
|
|
0054 irun2 = 1;
|
|
0055 irun3 = 1;
|
|
0056 irun4 = 1;
|
|
0057 irun5 = 1;
|
|
0058 ifil1 = 1;
|
|
0059 ifil2 = 1;
|
|
0060 ifil3 = 1;
|
|
0061 ifil4 = 1;
|
|
0062 ifil5 = 1;
|
|
0063 h = waitbar(0,<span class="string">'Bayesian smoother...'</span>);
|
|
0064 <span class="keyword">if</span> B <= MAX_nruns
|
|
0065 stock_param = zeros(B, npar);
|
|
0066 stock_logpo = zeros(B,1);
|
|
0067 stock_ys = zeros(B,endo_nbr);
|
|
0068 <span class="keyword">else</span>
|
|
0069 stock_param = zeros(MAX_nruns, npar);
|
|
0070 stock_logpo = zeros(MAX_nruns,1);
|
|
0071 stock_ys = zeros(MAX_nruns,endo_nbr);
|
|
0072 <span class="keyword">end</span>
|
|
0073 <span class="keyword">if</span> options_.smoother
|
|
0074 <span class="keyword">if</span> B <= MAX_nsmoo
|
|
0075 stock_smooth = zeros(endo_nbr,gend,B);
|
|
0076 <span class="keyword">else</span>
|
|
0077 stock_smooth = zeros(endo_nbr,gend,MAX_nsmoo);
|
|
0078 <span class="keyword">end</span>
|
|
0079 <span class="keyword">if</span> B <= MAX_ninno
|
|
0080 stock_innov = zeros(exo_nbr,gend,B);
|
|
0081 <span class="keyword">else</span>
|
|
0082 stock_innov = zeros(exo_nbr,gend,MAX_ninno);
|
|
0083 <span class="keyword">end</span>
|
|
0084 <span class="keyword">if</span> nvn & B <= MAX_nerro
|
|
0085 stock_error = zeros(nvobs,gend,B);
|
|
0086 <span class="keyword">else</span> nvn & B > MAX_nerro
|
|
0087 stock_error = zeros(nvobs,gend,MAX_nerro);
|
|
0088 <span class="keyword">end</span>
|
|
0089 <span class="keyword">end</span>
|
|
0090 <span class="keyword">if</span> options_.filter_step_ahead ~= 0
|
|
0091 <span class="keyword">if</span> B <= MAX_naK
|
|
0092 stock_filter = zeros(naK,endo_nbr,gend+options_.filter_step_ahead(end),B);
|
|
0093 <span class="keyword">else</span>
|
|
0094 stock_filter = zeros(naK,endo_nbr,gend+options_.filter_step_ahead(end),MAX_naK);
|
|
0095 <span class="keyword">end</span>
|
|
0096 <span class="keyword">end</span>
|
|
0097 <span class="keyword">for</span> b=1:B
|
|
0098 <span class="comment">%deep = GetOneDraw(NumberOfDraws,FirstMhFile,LastMhFile,FirstLine,MAX_nruns,DirectoryName);</span>
|
|
0099 [deep, logpo] = <a href="GetOneDraw.html" class="code" title="function [xparams, logpost] = GetOneDraw(type)">GetOneDraw</a>(type);
|
|
0100 <a href="set_all_parameters.html" class="code" title="function set_all_parameters(xparam1)">set_all_parameters</a>(deep);
|
|
0101 dr = <a href="resol.html" class="code" title="function [dr,info]=resol(ys,check_flag)">resol</a>(oo_.steady_state,0);
|
|
0102 [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK] = <a href="DsgeSmoother.html" class="code" title="function [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK] = DsgeSmoother(xparam1,gend,Y)">DsgeSmoother</a>(deep,gend,Y);
|
|
0103
|
|
0104 stock_smooth(:,:,irun1) = alphahat(1:endo_nbr,:);
|
|
0105 <span class="keyword">if</span> nvx
|
|
0106 stock_innov(:,:,irun2) = etahat;
|
|
0107 <span class="keyword">end</span>
|
|
0108 <span class="keyword">if</span> nvn
|
|
0109 stock_error(:,:,irun3) = epsilonhat;
|
|
0110 <span class="keyword">end</span>
|
|
0111 <span class="keyword">if</span> naK
|
|
0112 stock_filter(:,:,:,irun4) = aK(options_.filter_step_ahead,1:endo_nbr,:);
|
|
0113 <span class="keyword">end</span>
|
|
0114 stock_param(irun5,:) = deep;
|
|
0115 stock_logpo(irun5,1) = logpo;
|
|
0116 stock_ys(irun5,:) = SteadyState';
|
|
0117
|
|
0118 irun1 = irun1 + 1;
|
|
0119 irun2 = irun2 + 1;
|
|
0120 irun3 = irun3 + 1;
|
|
0121 irun4 = irun4 + 1;
|
|
0122 irun5 = irun5 + 1;
|
|
0123
|
|
0124 <span class="keyword">if</span> irun1 > MAX_nsmoo | b == B
|
|
0125 <span class="keyword">if</span> b == B
|
|
0126 stock_smooth = stock_smooth(:,:,1:irun1-1);
|
|
0127 <span class="keyword">end</span>
|
|
0128 stock = stock_smooth;
|
|
0129 save([DirectoryName <span class="string">'/'</span> M_.fname <span class="string">'_smooth'</span> int2str(ifil1)],<span class="string">'stock'</span>);
|
|
0130 ifil1 = ifil1 + 1;
|
|
0131 irun1 = 1;
|
|
0132 <span class="keyword">end</span>
|
|
0133
|
|
0134 <span class="keyword">if</span> nvx & (irun2 > MAX_ninno | b == B)
|
|
0135 <span class="keyword">if</span> b == B
|
|
0136 stock_innov = stock_innov(:,:,1:irun2-1);
|
|
0137 <span class="keyword">end</span>
|
|
0138 stock = stock_innov;
|
|
0139 save([DirectoryName <span class="string">'/'</span> M_.fname <span class="string">'_inno'</span> int2str(ifil2)],<span class="string">'stock'</span>);
|
|
0140 ifil2 = ifil2 + 1;
|
|
0141 irun2 = 1;
|
|
0142 <span class="keyword">end</span>
|
|
0143
|
|
0144 <span class="keyword">if</span> nvn & (irun3 > MAX_error | b == B)
|
|
0145 <span class="keyword">if</span> b == B
|
|
0146 stock_error = stock_error(:,:,1:irun3-1);
|
|
0147 <span class="keyword">end</span>
|
|
0148 stock = stock_error;
|
|
0149 save([DirectoryName <span class="string">'/'</span> M_.fname <span class="string">'_error'</span> int2str(ifil3)],<span class="string">'stock'</span>);
|
|
0150 ifil3 = ifil3 + 1;
|
|
0151 irun3 = 1;
|
|
0152 <span class="keyword">end</span>
|
|
0153
|
|
0154 <span class="keyword">if</span> naK & (irun4 > MAX_naK | b == B)
|
|
0155 <span class="keyword">if</span> b == B
|
|
0156 stock_filter = stock_filter(:,:,:,1:irun4-1);
|
|
0157 <span class="keyword">end</span>
|
|
0158 stock = stock_filter;
|
|
0159 save([DirectoryName <span class="string">'/'</span> M_.fname <span class="string">'_filter'</span> int2str(ifil4)],<span class="string">'stock'</span>);
|
|
0160 ifil4 = ifil4 + 1;
|
|
0161 irun4 = 1;
|
|
0162 <span class="keyword">end</span>
|
|
0163
|
|
0164 <span class="keyword">if</span> irun5 > MAX_nruns | b == B
|
|
0165 <span class="keyword">if</span> b == B
|
|
0166 stock_param = stock_param(1:irun5-1,:);
|
|
0167 stock_logpo = stock_logpo(1:irun5-1,1);
|
|
0168 stock_ys = stock_ys(1:irun5-1,:);
|
|
0169 <span class="keyword">end</span>
|
|
0170 stock = stock_param;
|
|
0171 save([DirectoryName <span class="string">'/'</span> M_.fname <span class="string">'_param'</span> int2str(ifil5)],<span class="string">'stock'</span>,<span class="string">'stock_logpo'</span>,<span class="string">'stock_ys'</span>);
|
|
0172 ifil5 = ifil5 + 1;
|
|
0173 irun5 = 1;
|
|
0174 <span class="keyword">end</span>
|
|
0175
|
|
0176 waitbar(b/B,h);
|
|
0177 <span class="keyword">end</span>
|
|
0178 close(h)
|
|
0179
|
|
0180 stock_gend=gend;
|
|
0181 stock_data=Y;
|
|
0182 save([DirectoryName <span class="string">'/'</span> M_.fname <span class="string">'_data'</span>],<span class="string">'stock_gend'</span>,<span class="string">'stock_data'</span>);</pre></div>
|
|
<hr><address>Generated on Fri 16-Jun-2006 09:09:06 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> © 2003</address>
|
|
</body>
|
|
</html> |