v4: corrected bug in prior_draw.m (inv-gamma2)
reindented priordens.m git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1816 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
1e096f3dee
commit
8b841cda0b
|
@ -115,7 +115,7 @@ for i = 1:npar
|
||||||
end
|
end
|
||||||
case 4% INV-GAMMA1 distribution
|
case 4% INV-GAMMA1 distribution
|
||||||
while condition
|
while condition
|
||||||
tmp = sqrt(1/gamma_draw(p2(i)/2,1/p1(i),0));
|
tmp = sqrt(1/gamma_draw(p2(i)/2,2/p1(i),0));
|
||||||
if tmp >= bounds(i,1) && tmp <= bounds(i,2)
|
if tmp >= bounds(i,1) && tmp <= bounds(i,2)
|
||||||
pdraw(i) = tmp;
|
pdraw(i) = tmp;
|
||||||
break
|
break
|
||||||
|
@ -123,7 +123,7 @@ for i = 1:npar
|
||||||
end
|
end
|
||||||
case 6% INV-GAMMA2 distribution
|
case 6% INV-GAMMA2 distribution
|
||||||
while condition
|
while condition
|
||||||
tmp = 1/gamma_draw(p2(i)/2,1/p1(i),0);
|
tmp = 1/gamma_draw(p2(i)/2,2/p1(i),0);
|
||||||
if tmp >= bounds(i,1) && tmp <= bounds(i,2)
|
if tmp >= bounds(i,1) && tmp <= bounds(i,2)
|
||||||
pdraw(i) = tmp;
|
pdraw(i) = tmp;
|
||||||
break
|
break
|
||||||
|
|
|
@ -31,28 +31,28 @@ nprio = length(pshape);
|
||||||
|
|
||||||
i = 1;
|
i = 1;
|
||||||
while i <= nprio;
|
while i <= nprio;
|
||||||
a = 0;
|
a = 0;
|
||||||
b = 0;
|
b = 0;
|
||||||
if pshape(i) == 1; % (generalized) BETA Prior
|
if pshape(i) == 1; % (generalized) BETA Prior
|
||||||
mu = (p1(i)-p3(i))/(p4(i)-p3(i));
|
mu = (p1(i)-p3(i))/(p4(i)-p3(i));
|
||||||
stdd = p2(i)/(p4(i)-p3(i));
|
stdd = p2(i)/(p4(i)-p3(i));
|
||||||
a = (1-mu)*mu^2/stdd^2 - mu;
|
a = (1-mu)*mu^2/stdd^2 - mu;
|
||||||
b = a*(1/mu - 1);
|
b = a*(1/mu - 1);
|
||||||
lnprior = lnprior + lpdfgbeta(para(i),a,b,p3(i),p4(i)) ;
|
lnprior = lnprior + lpdfgbeta(para(i),a,b,p3(i),p4(i)) ;
|
||||||
elseif pshape(i) == 2; % GAMMA PRIOR
|
elseif pshape(i) == 2; % GAMMA PRIOR
|
||||||
b = p2(i)^2/(p1(i)-p3(i));
|
b = p2(i)^2/(p1(i)-p3(i));
|
||||||
a = (p1(i)-p3(i))/b;
|
a = (p1(i)-p3(i))/b;
|
||||||
lnprior = lnprior + lpdfgam(para(i)-p3(i),a,b);
|
lnprior = lnprior + lpdfgam(para(i)-p3(i),a,b);
|
||||||
elseif pshape(i) == 3; % GAUSSIAN PRIOR
|
elseif pshape(i) == 3; % GAUSSIAN PRIOR
|
||||||
lnprior = lnprior + lpdfnorm(para(i),p1(i),p2(i));
|
lnprior = lnprior + lpdfnorm(para(i),p1(i),p2(i));
|
||||||
elseif pshape(i) == 4; % INVGAMMA1 PRIOR
|
elseif pshape(i) == 4; % INVGAMMA1 PRIOR
|
||||||
lnprior = lnprior + lpdfig1(para(i),p1(i),p2(i));
|
lnprior = lnprior + lpdfig1(para(i),p1(i),p2(i));
|
||||||
elseif pshape(i) == 5; % UNIFORM PRIOR
|
elseif pshape(i) == 5; % UNIFORM PRIOR
|
||||||
lnprior = lnprior + log(1/(p2(i)-p1(i)));
|
lnprior = lnprior + log(1/(p2(i)-p1(i)));
|
||||||
elseif pshape(i) == 6; % INVGAMMA2 PRIOR
|
elseif pshape(i) == 6; % INVGAMMA2 PRIOR
|
||||||
lnprior = lnprior + lpdfig2(para(i),p1(i),p2(i));
|
lnprior = lnprior + lpdfig2(para(i),p1(i),p2(i));
|
||||||
end;
|
end;
|
||||||
i = i+1;
|
i = i+1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
% 10/11/03 MJ adapted from an earlier version in GAUSS by F. Schorfheide
|
% 10/11/03 MJ adapted from an earlier version in GAUSS by F. Schorfheide
|
||||||
|
|
Loading…
Reference in New Issue