diff --git a/R/bmr.R b/R/bmr.R index 3d84496309aa8023c99c1c3128e27fe027f6eb34..5b8d8199188d9519fa9228f769a14b181d1471d3 100644 --- a/R/bmr.R +++ b/R/bmr.R @@ -386,10 +386,14 @@ bmr.default <- function(y, sigma, labels = names(y), } logdens <- log(sum(exp(log(support$weight) + logdens))) } else { # joint density of (tau,beta) - cm <- conditionalmoments(tau=tau) - logdens <- (taulogpostdens(tau) - + mvtnorm::dmvnorm(x=beta[idx], mean=cm$mean[idx], - sigma=cm$covariance[idx,idx,drop=FALSE], log=TRUE)) + if (tau>=0) { + cm <- conditionalmoments(tau=tau) + logdens <- (taulogpostdens(tau) + + mvtnorm::dmvnorm(x=beta[idx], mean=cm$mean[idx], + sigma=cm$covariance[idx,idx,drop=FALSE], log=TRUE)) + } else { + logdens <- -Inf + } } return(logdens) }