dynare/matlab/doc/priordens.html

99 lines
6.6 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 priordens</title>
<meta name="keywords" content="priordens">
<meta name="description" content="This procedure computes a prior density for">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="m2html &copy; 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> &gt; <a href="index.html">.</a> &gt; priordens.m</div>
<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td>
<td align="right"><a href="index.html">Index for .&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
<h1>priordens
</h1>
<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="box"><strong>This procedure computes a prior density for</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 lnprior = priordens(para, pshape, p1, p2, p3, p4) </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"> This procedure computes a prior density for
the structural parameters of the DSGE models
pshape: 0 is point mass, both para and p2 are ignored
1 is BETA(mean,stdd)
2 is GAMMA(mean,stdd)
3 is NORMAL(mean,stdd)
4 is INVGAMMA(s^2,nu)
5 is UNIFORM [p3,p4]</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="lpdfgam.html" class="code" title="function ldens = lpdfgam(x,a,b);">lpdfgam</a> log GAMMA PDF</li><li><a href="lpdfgbeta.html" class="code" title="function ldens = lpdfgbeta(x,a,b,aa,bb);">lpdfgbeta</a> log (generalized) BETA PDF</li><li><a href="lpdfig1.html" class="code" title="function ldens = lpdfig1(x,s,nu)">lpdfig1</a> log INVERSE GAMMA (type 1)</li><li><a href="lpdfig2.html" class="code" title="function ldens = lpdfig2(x,s,nu)">lpdfig2</a> log INVERSE GAMMA (type 2)</li><li><a href="lpdfnorm.html" class="code" title="function f = lpdfnorm(x,m,s)">lpdfnorm</a> LPDFNORM The log of the normal density function</li></ul>
This function is called by:
<ul style="list-style-image:url(../matlabicon.gif)">
<li><a href="DsgeLikelihood.html" class="code" title="function [fval,cost_flag,ys,trend_coeff,info] = DsgeLikelihood(xparam1,gend,data)">DsgeLikelihood</a> stephane.adjemian@cepremap.cnrs.fr [09-07-2004]</li><li><a href="filt_mc_.html" class="code" title="function [rmse_MC, ixx] = filt_mc_(vvarvecm, loadSA, pfilt, alpha, alpha2, OutDir, istart, alphaPC)">filt_mc_</a> copyright Marco Ratto 2006</li></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 lnprior = priordens(para, pshape, p1, p2, p3, p4)</a>
0002 <span class="comment">% This procedure computes a prior density for</span>
0003 <span class="comment">% the structural parameters of the DSGE models</span>
0004 <span class="comment">% pshape: 0 is point mass, both para and p2 are ignored</span>
0005 <span class="comment">% 1 is BETA(mean,stdd)</span>
0006 <span class="comment">% 2 is GAMMA(mean,stdd)</span>
0007 <span class="comment">% 3 is NORMAL(mean,stdd)</span>
0008 <span class="comment">% 4 is INVGAMMA(s^2,nu)</span>
0009 <span class="comment">% 5 is UNIFORM [p3,p4]</span>
0010
0011 lnprior = 0;
0012 nprio = length(pshape);
0013
0014 i = 1;
0015 <span class="keyword">while</span> i &lt;= nprio;
0016 a = 0;
0017 b = 0;
0018 <span class="keyword">if</span> pshape(i) == 1; <span class="comment">% (generalized) BETA Prior</span>
0019 mu = (p1(i)-p3(i))/(p4(i)-p3(i));
0020 stdd = p2(i)/(p4(i)-p3(i));
0021 a = (1-mu)*mu^2/stdd^2 - mu;
0022 b = a*(1/mu - 1);
0023 lnprior = lnprior + <a href="lpdfgbeta.html" class="code" title="function ldens = lpdfgbeta(x,a,b,aa,bb);">lpdfgbeta</a>(para(i),a,b,p3(i),p4(i)) ;
0024 <span class="keyword">elseif</span> pshape(i) == 2; <span class="comment">% GAMMA PRIOR</span>
0025 b = p2(i)^2/(p1(i)-p3(i));
0026 a = (p1(i)-p3(i))/b;
0027 lnprior = lnprior + <a href="lpdfgam.html" class="code" title="function ldens = lpdfgam(x,a,b);">lpdfgam</a>(para(i)-p3(i),a,b);
0028 <span class="keyword">elseif</span> pshape(i) == 3; <span class="comment">% GAUSSIAN PRIOR</span>
0029 lnprior = lnprior + <a href="lpdfnorm.html" class="code" title="function f = lpdfnorm(x,m,s)">lpdfnorm</a>(para(i),p1(i),p2(i));
0030 <span class="keyword">elseif</span> pshape(i) == 4; <span class="comment">% INVGAMMA1 PRIOR</span>
0031 lnprior = lnprior + <a href="lpdfig1.html" class="code" title="function ldens = lpdfig1(x,s,nu)">lpdfig1</a>(para(i),p1(i),p2(i));
0032 <span class="keyword">elseif</span> pshape(i) == 5; <span class="comment">% UNIFORM PRIOR</span>
0033 lnprior = lnprior + log(1/(p2(i)-p1(i)));
0034 <span class="keyword">elseif</span> pshape(i) == 6; <span class="comment">% INVGAMMA2 PRIOR</span>
0035 lnprior = lnprior + <a href="lpdfig2.html" class="code" title="function ldens = lpdfig2(x,s,nu)">lpdfig2</a>(para(i),p1(i),p2(i));
0036 <span class="keyword">end</span>;
0037 i = i+1;
0038 <span class="keyword">end</span>;
0039
0040 <span class="comment">% 10/11/03 MJ adapted from an earlier version in GAUSS by F. Schorfheide</span>
0041 <span class="comment">% and translated to Matlab by R. Wouters</span>
0042 <span class="comment">% 11/18/03 MJ adopted M.Ratto's suggestion for inverse gamma</span>
0043 <span class="comment">% changed order of input parameters</span>
0044 <span class="comment">% 01/16/04 MJ added invgamma2</span>
0045 <span class="comment">% for invgamma p2 is now standard error</span>
0046 <span class="comment">% 16/02/04 SA changed beta prior call</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> &copy; 2003</address>
</body>
</html>