Hi,
I am analyzing survival of individuals (binary response) in relation to three predictors, two of which have to raised to an exponent. I had previously posted about this nonlinear model here. This is the model I set up:
fit_1 = brm(
bf(status ~ b0 + b1 * var1^c1 + b2 * var2^c2 + b3*var3,
b0 ~ 1 + (1|g)
b1 ~ 1 + (1|g),
b2 ~ 1 + (1|g),
c1 ~ 1 ,
c2 ~ 1 ,
nl = TRUE)
While working through models of different complexity, I also set up this model:
fit_2 = brm(
bf(status ~ b0 + b1 * var1 + b2 * var2 + b3*var3,
b0 ~ 1 + (1|g)
b1 ~ 1 + (1|g),
b2 ~ 1 + (1|g),
b3 ~ 1 + (1|g),
nl = TRUE)
Now, fit_2 should be same as this:
fit_3 = brm(status ~ var1+ var2 + var3 +
(1+ var1+ var2 + var3 | g),
family=bernoulli, data = data,
chains = 4, iter = 2000, warmup = 1000, cores = 4, thin = 2)
However, fit_2 and fit_3 give very different parameter estimates, which I found surprising. For example:
> fixef(fit_1)
Estimate Est.Error Q2.5 Q97.5
b0_Intercept 0.55315545 0.2764453 0.01718413 1.1042612
b1_Intercept 0.06040814 0.0726198 -0.08236811 0.2103593
b2_Intercept -0.13928427 0.2540105 -0.64212694 0.3650797
b3_Intercept 0.80389800 0.2513916 0.30919201 1.3099177
c1_Intercept -1.63763565 0.9386900 -3.55646061 0.2719193
c2_Intercept -0.99848071 2.2785871 -5.83316607 2.8979777
> fixef(fit_2)
Estimate Est.Error Q2.5 Q97.5
b0_Intercept 0.51183385 0.28255293 -0.03478977 1.0704994
b1_Intercept 0.04841162 0.07470821 -0.09886431 0.1956527
b2_Intercept -0.03542412 0.24820811 -0.51505618 0.4612422
b3_Intercept 0.84898955 0.23663168 0.38540498 1.3049237
> fixef(fit_3)
Estimate Est.Error Q2.5 Q97.5
Intercept -0.6652988 0.60257372 -1.87421760 0.4653411
var1 -6.3638288 3.90875670 -15.13751383 0.5118952
var2 0.7459177 0.99294856 -1.21309907 2.7805406
var3 0.1471336 0.06510745 0.03026837 0.2862436
Why are the estimates for 2 and 3 so different? All models had converged, with decent behavior in PP checks. However, the nonlinear model was quite sensitive to prior specification. It looks like the nonlinear formulation in general is doing something different. I checked the stan code for the two models and there seems to be no difference except in the generated quantities, but I cannot figure out how or why that should create such different estimates.
I would greatly appreciate help with this issue.
Thanks,
Meghna
Side question: I was also wondering whether linear and nonlinear formulations of the same data can be compared using LOO-IC?