I was thrilled to see the new moment-matching approach to importance sampling in
loo, and it helped me a lot when working on a series of models so far. However, when I apply this to the Poisson hurdle model described below, it says: “Error in validate_ll(log_ratios) : All input values must be finite.” However, the pointwise log-likelihoods of the model are all finite. Trying
reloo() on the same model results in
NaN for the elpd estimate.
Here are the data and the code:
pconstr.csv (1.2 KB)
d <- read.csv('pconstr.csv', stringsAsFactors = T) m <- brm(bf(Count ~ ConstraintType + L2 + (1|Language), hu ~ ConstraintType + L2 + (1|Language)), family = hurdle_poisson(), prior = c(prior(student_t(5, 0, 1), class = b), prior(cauchy(0,1), class = sd)), data = d, chains = 4, cores = 4, iter = 2000, warmup = 1000, save_all_pars = T, control = list(adapt_delta = .99)) loo(m, moment_match = T) # error message any(!is.finite(log_lik(m))) # FALSE loo(m, reloo = T) # NaN
I have also tried the same model with more regularizing priors on the intercept and/or the predictors, without the varying intercept, without the L2 predictor, without the ConstraintType predictor, with deviation instead of treatment coding, without predictors on the hurdle, and with negative-binomial instead of poisson likelihoods. The error persists. It also persists when I throw out data at predictor levels that induce high std. errors, or when I exclude a third of the 0s in the data.
I’d be grateful for any suggestions.
- Operating System: macOS 10.15.6
- R version: 4.0.2
- brms Version: 2.13.5
- loo Version: 2.3.1