I am facing a really puzzling issue. I am analysing data of employees' absentism because of illness during four months with a negative binomial GLMM with the employees' department as a random effect. My predictors are sex, age, income group (factor with four levels), status group (civil servants vs. employees) and the position (superior vs. non-superior). I want to present the results to people who are absolutely unfamiliar with multivariate statistics and therefore estimate regression coefficients for all levels of the factor variables so I decided to use weighted effect coding rather than dummy coding.
The grand mean of the sample is
> mean(df$WorkingDaysIll) [1] 9.567867
The estimates of the GLMM negative binomial regression with weighted effect coded variables are
> Model1.6 <- glmer.nb(WorkingDaysIll ~ 1 + sex + age_scaled + incomegroup + statusgroup + position + (1 | department), df) > summary(Model1.6)$coefficients Estimate (Intercept) 2.1072362 sexF 0.1342055 age_scaled 0.2605714 incomegroup0101 0.6820038 incomegroup0102 0.1950740 incomegroup0201 -0.1159360 statusgroup 0.3243721 superiorNsup 0.1376719
So the intercept of the model is 2.1072, but
> exp(summary(Modell1.6)$coefficients[1,1]) [1] 8.225477
8.2255 days is relatively far away from the sample grand mean of 9.5679 days.
The mean of the predicted values is relatively close to the grand mean of the sample:
> mean(fitted(Model1.6)) [1] 9.511731
If I only include sex as a predictor the intercept is closer to the grand mean:
> summary(Modell1.1)$coefficients[,1]
(Intercept) SexF
2.2333826 0.1790173
> exp(summary(Modell1.1)$coefficients[,1])
(Intercept) SexF
9.331377 1.196041
The more predictors I include, the smaller the intercept and the bigger the difference to the observed grand mean becomes. However if I run Model1.6 as an ordinary regression I get
> Model1.6lmer <- lmer(WorkingDaysIll ~ 1 + sex + age_scaled + incomegroup + statusgroup + position + (1 | department), df) > summary(Modell1.6lmer)$coefficients Estimate (Intercept) 9.5722 sexF 1.2784 age_scaled 2.1945 incomegroup0101 7.6714 incomegroup0102 1.8612 incomegroup0201 -1.5037 statusgroup 3.2919 superiorNsup 0.9916
The intercept is very close to the sample grand mean of 9.5679 what seems ok to me and could differ slightly because the relationship between age and WorkingDaysIll could be a bit too far away from being linear. It is interesting that the ordinary regression gets a more accurate estimate of the intercept than the negative binomial although the latter describes the data better (the dependent variable is a negative binomial distributed count variable and the deviance is smaller 2268.3 against 2911.9 if I run Model1.6lmer with log-likelihood optimitisation). The results are equal even if I use other functions for negative binomial such as glmmTMB or mixed_model from package GLMMadaptive.
How do I have to interpret the difference between regression intercept and sample grand mean? Is weighted effect coding not reliable for negative binomial regressions (although I do not know any reason why this could be the case), is that a normal behaviour, is the model against my supposition not well specified or do I oversee anything?
Thanks for help!