From 87fc09863d21c0a49973e1f4d34d569b7091566d Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Fri, 10 Mar 2017 15:16:33 +0100 Subject: [PATCH] Add warning if prior has an asymptote Can happen with beta and gamma distribution. Closes #1401 --- matlab/set_prior.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/matlab/set_prior.m b/matlab/set_prior.m index c6898b413..4c9e60411 100644 --- a/matlab/set_prior.m +++ b/matlab/set_prior.m @@ -169,6 +169,9 @@ k1 = find(isnan(bayestopt_.p4(k))); bayestopt_.p4(k(k1)) = ones(length(k1),1); for i=1:length(k) [bayestopt_.p6(k(i)), bayestopt_.p7(k(i))] = beta_specification(bayestopt_.p1(k(i)), bayestopt_.p2(k(i))^2, bayestopt_.p3(k(i)), bayestopt_.p4(k(i)), bayestopt_.name{k(i)}); + if bayestopt_.p6(k(i))<1 || bayestopt_.p7(k(i))<1 + fprintf('Prior distribution for parameter %s has unbounded density!\n',bayestopt_.name{k(i)}) + end m = compute_prior_mode([ bayestopt_.p6(k(i)) , bayestopt_.p7(k(i)) , bayestopt_.p3(k(i)) , bayestopt_.p4(k(i)) ],1); if length(m)==1 bayestopt_.p5(k(i)) = m; @@ -186,6 +189,9 @@ bayestopt_.p3(k(k1)) = zeros(length(k1),1); bayestopt_.p4(k(k2)) = Inf(length(k2),1); for i=1:length(k) [bayestopt_.p6(k(i)), bayestopt_.p7(k(i))] = gamma_specification(bayestopt_.p1(k(i)), bayestopt_.p2(k(i))^2, bayestopt_.p3(k(i)), bayestopt_.name{k(i)}); + if bayestopt_.p6(k(i))<1 + fprintf('Prior distribution for parameter %s has unbounded density!\n',bayestopt_.name{k(i)}) + end bayestopt_.p5(k(i)) = compute_prior_mode([ bayestopt_.p6(k(i)) , bayestopt_.p7(k(i)) , bayestopt_.p3(k(i)) ], 2) ; end