Priors on predicted shape parameter(s) in mixed zinb model

I played with this a bit and found that the following model runs well

prior = c(
  prior(student_t(3,0,10), class = Intercept, dpar = shape),
  prior(student_t(3,0,10), class = b, dpar = shape))
fit10p.nb <- brm(bf(cars95 ~ age*year + mort + bwev + prevsire , shape ~ year),  data=c95data, 
                 family=zero_inflated_negbinomial(),prior= prior,  
                 iter=1000, warmup=500, chains=4,
                 control = list(adapt_delta = 0.8))

The changes I made are: the priors are less informative, I removed the grouping of age on id and I lowered adapt_delta to 0.8. I incidentally reduced to number of iterations to save time. The results were

 Family: zero_inflated_negbinomial 
  Links: mu = log; shape = log; zi = identity 
Formula: cars95 ~ age * year + mort + bwev + prevsire 
         shape ~ year
   Data: c95data (Number of observations: 220) 
Samples: 4 chains, each with iter = 1000; warmup = 500; thin = 1;
         total post-warmup samples = 2000

Population-Level Effects: 
                Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
Intercept          -2.30      1.17    -4.76    -0.13 1.01      871     1237
shape_Intercept     2.89      2.13    -0.29     7.79 1.00     1181      643
age                 0.78      0.45    -0.02     1.76 1.01      838      880
year               -0.00      0.19    -0.37     0.40 1.00     1091     1267
mort1               0.22      0.78    -1.34     1.78 1.00     2048      995
bwev1              -1.09      0.60    -2.40     0.01 1.00     1987     1238
prevsire1           0.61      0.43    -0.26     1.44 1.00     1485     1354
age:year           -0.06      0.06    -0.19     0.07 1.01      875      823
shape_year         -0.56      0.29    -1.22    -0.09 1.00     1296      842

Family Specific Parameters: 
   Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
zi     0.16      0.12     0.01     0.43 1.00      909      808

I suppose removing the (age | id) term is the key, though I have not done much more than is shown above. Looking at the data in c95data with the table function in R

table(c95data$id, c95data$cars95)

shows that almost two thirds of the id values appear only with zero counts of cars95 making defining a coefficient for age difficult and not very meaningful.

2 Likes