# Post-hoc test results from GLMM seem to contradict lsmeans estimates

I've conducted a GLMM on some zero-inflated pollinator count data using the glmmadmb() function. Here is the model, in which the counts are in the variable Total, fixed effects include mean temperature (Mean_temp), treatment (Trt), and an offset covariate which is number of floral units (FU), and the random effects include survey visit (Visit) and plot name (PlotCode):

fvs.glmm5 <- glmmadmb(Total ~ Mean_temp + Trt + (1|Visit)+
(1|PlotCode)+offset(log(FU)), data= fvs, family = "nbinom2",
zeroInflation=TRUE)


Here is the summary of the results:

> summary(fvs.glmm5)

Call:
glmmadmb(formula = Total ~ Mean_temp + Trt + (1 | Visit) + (1 |
PlotCode) + offset(log(FU)), data = fvs, family = "nbinom2",
zeroInflation = TRUE)

AIC: 643.5

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept)  -5.4376     0.6622   -8.21  < 2e-16 ***
Mean_temp     0.0991     0.0244    4.07  4.7e-05 ***
TrtF          0.4249     0.2680    1.59   0.1129
TrtM          0.3914     0.2612    1.50   0.1341
TrtX          0.7958     0.2533    3.14   0.0017 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Number of observations: total=260, Visit=7, PlotCode=40
Random effect variance(s):
Group=Visit
Variance StdDev
(Intercept)   0.7657  0.875
Group=PlotCode
Variance    StdDev
(Intercept) 1.126e-07 0.0003356

Negative binomial dispersion parameter: 2.5862 (std. err.: 0.79003)
Zero-inflation: 1.0247e-06  (std. err.:  0.00019615 )

Log-likelihood: -312.757
Warning message:
In .local(x, sigma, ...) :
'sigma' and 'rdig' arguments are present for compatibility only:
ignored


The question I have is how to make sense of the results of the post-hoc tests. When I run the following code, I get results which suggest that treatment C is significantly different from treatment X, but that there are no other significant differences between treatments:

#post-hoc tests to see where differences lie
>fvs.ls = lsmeans(fvs.glmm5,
pairwise ~ Trt,
type="response")
>fvs.ls
$lsmeans Trt response SE df asymp.LCL asymp.UCL C 0.5008787 0.4152155 NA 0.09865259 2.543061 F 0.7660764 0.6596800 NA 0.14167383 4.142424 M 0.7408063 0.6431391 NA 0.13512157 4.061483 X 1.1100113 0.9612614 NA 0.20332621 6.059844 Confidence level used: 0.95 Intervals are back-transformed from the log scale$contrasts
contrast response.ratio        SE df z.ratio p.value
C - F         0.6538234 0.1752378 NA  -1.585  0.3869
C - M         0.6761265 0.1766245 NA  -1.498  0.4385
C - X         0.4512375 0.1143120 NA  -3.141  0.0091
F - M         1.0341117 0.3965509 NA   0.087  0.9998
F - X         0.6901519 0.2453648 NA  -1.043  0.7240
M - X         0.6673862 0.2421148 NA  -1.115  0.6805

P value adjustment: tukey method for comparing a family of 4 estimates
Tests are performed on the log scale


The treatment pairwise comparisons seem to make sense until you look at the values for the predicted least-square means and the confidence intervals around those values. If treatment C is truly significantly different from treatment X, then why are the confidence intervals around the estimated means for these two treatments so heavily overlapping?

Any help with making sense of these seemingly contradictory results would be much appreciated!

Because it is a mixed model, I.e., there is more than one source of variation. Apparently, treatment is a within-Visit and/or within-plotCode factor. Accordingly, the variance of the LSMs includes between-visits and between-plotcodes variations, while (all or some of) those variations cancel out when comparing them.
• You might try plot(lsmeans(...), comparisons = TRUE). This adds comparison arrows to the plot that are valid for use in judging comparisons. – rvl Oct 12 '17 at 13:40