I am running a hurdle model using brms with the following code
# prior est for hurdle
sum(combin2$PA.y == 0) / length(combin$PA.y) # 0's occur 0.78
log(.22 / (1-.22))
# prior est for outcome
log(mean(subset(combin2, PA.y > 0)$PA.y))
priors <- c(
prior(normal(0, 1)),
prior(normal(0, 1), dpar = "hu"), # Priors for regression coefficients
prior(normal(-1.2, 0.25), class = "Intercept", dpar = "hu"), # Prior for the hurdle intercept
prior(normal(7, 0.25), class = "Intercept") , # Prior for the outcome intercept
)
fit <- brm(bf(PA.y ~ BB + K + BABIP + ISO + GB + SwStr + wRC + Spd,
hu ~ BB + K + BABIP + ISO + GB + SwStr + wRC + Spd),
data = combin2,
family = hurdle_negbinomial(),
prior = priors,
chains = 4,
iter = 2000)
print(fit)
I am getting mostly reasonable coefficients, however the hu_intercept coefficient is estimated to be 1.31, whereas the prior I set for it was N(-1.2,0.25). The mean of -1.2 was chosen because the PA.y column has 77% 0’s, and log(.23 / (1-.23)) = is -1.2. I guess my question is that I am surprised that when I specify a prior to be fairly tight around -1.2, that the final result is 1.31, and it makes me think that I am specifying something wrong in the brms code.
Thanks!
Data:
hurdle1.csv (359.4 KB)