Home > . > prior_bounds.m

prior_bounds

PURPOSE ^

SYNOPSIS ^

function bounds = prior_bounds(bayestopt)

DESCRIPTION ^

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function bounds = prior_bounds(bayestopt)
0002 global options_
0003 
0004 pshape = bayestopt.pshape;
0005 pmean = bayestopt.pmean;
0006 p2 = bayestopt.p2;
0007 p3 = bayestopt.p3;
0008 p4 = bayestopt.p4;
0009 
0010 n = length(pmean);
0011 bounds = zeros(n,2);
0012 
0013 for i=1:n
0014     switch pshape(i)
0015         case 1
0016             mu = (pmean(i)-p3(i))/(p4(i)-p3(i));
0017             stdd = p2(i)/(p4(i)-p3(i));
0018             A = (1-mu)*mu^2/stdd^2 - mu;
0019             B = A*(1/mu - 1);
0020             bounds(i,1) = qbeta(options_.prior_trunc,A,B)*(p4(i)-p3(i))+p3(i);
0021             bounds(i,2) = qbeta(1-options_.prior_trunc,A,B)*(p4(i)-p3(i))+p3(i);
0022         case 2
0023             b = p2(i)^2/(pmean(i)-p3(i));
0024             a = (pmean(i)-p3(i))/b;
0025             bounds(i,1) = mj_qgamma(options_.prior_trunc,a)*b+p3(i);
0026             bounds(i,2) = mj_qgamma(1-options_.prior_trunc,a)*b+p3(i);
0027         case 3
0028             bounds(i,1) = qnorm(options_.prior_trunc,pmean(i),p2(i));
0029             bounds(i,2) = qnorm(1-options_.prior_trunc,pmean(i),p2(i));
0030         case 4
0031             nu = p2(i);
0032             mu = pmean(i);
0033             beta = ( gamma( (nu-1)/2 ) / mu / gamma( nu/2 ) )^2;
0034             a=2/beta;
0035             bounds(i,1) = 1/sqrt(mj_qgamma(1-options_.prior_trunc,p2(i)/2)*beta);
0036             bounds(i,2) = 1/sqrt(mj_qgamma(options_.prior_trunc,p2(i)/2)*beta);
0037         case 5
0038             bounds(i,1) = p3(i);
0039             bounds(i,2) = p4(i);
0040         otherwise
0041             bounds(i,1) = -Inf;
0042             bounds(i,2) = Inf;
0043     end
0044 end

Generated on Fri 16-Jun-2006 09:09:06 by m2html © 2003