I am performing a logistic mixed effects regression on some data I have. There are 201 participants answering a question over 6 time points. The model includes 4 fixed effects: X1, X2, X3, and Time. It also includes a random intercept and a random slope for time, under grouping variable id.
I am interested in the marginal effect of time on the response y. Since I have a random slope, I am using package GLMMadaptive that allows specification of a mixed effects model (thus allowing specification of a random slope) and then allows estimation of the marginal effect as well.
I know in general the conditional and marginal effects can be quite different. However, when I run the code the differences are surprisingly(?) large. For example, whereas the conditional OR for a 1 unit change in time is over 13% increase, the corresponding marginal OR is less than 1% increase. Although I understand why the estimates usually differ, I find such large difference heavily unintuitive. It is very odd that for each specific person the estimated likelihood of yes will increase between the first and last (6th) time point by around ~85%, whereas the corresponding average population likelihood will increase by less than 5%.
Can someone point me to an explanation? What can be the source of such large discrepancy?
Here is my code. First the conditional estimates:
library(GLMMadaptive) mm = mixed_model(fixed = Y ~ X1 + X2 + X3 + time, random = ~1+time|id, family = "binomial", data = dat ) summary(mm) Call: mixed_model(fixed = Y ~ X1 + X2 + X3 + time, random = ~1 + time | id, data = dat, family = "binomial") Data Descriptives: Number of Observations: 1206 Number of Groups: 201 Model: family: binomial link: logit Fit statistics: log.Lik AIC BIC -1259 2533 2560 Random effects covariance matrix: StdDev Corr (Intercept) 13.3281 time 1.2752 -0.4208 Fixed effects: Estimate Std.Err z-value p-value (Intercept) -11.497 0.7559 -15.211 <0.0001 X1 0.475 0.1377 3.452 0.0006 X2 0.334 0.0868 3.849 0.0001 X3 0.194 0.2026 0.958 0.34 time 0.123 0.0640 1.925 0.05 Integration: method: adaptive Gauss-Hermite quadrature rule quadrature points: 11 Optimization: method: hybrid EM and quasi-Newton converged: TRUE
And the marginal effects:
marginal_coefs(mm, std_errors = TRUE) Estimate Std.Err z-value p-value (Intercept) -1.4855 0.1595 -9.313 <0.0001 X1 0.0629 0.0195 3.220 0.001 X2 0.0454 0.0118 3.844 0.0001 X3 0.0245 0.0271 0.904 0.366 time 0.0089 0.0147 0.602 0.547