How to conduct and report pairwise comparisons with estimated marginal means? I have two mouse strains (C57 and CBA) that are exposed to a treatment with three levels (suum, lumb or control). My dependent variable is immune cell counts and the model is a negative binomial with an interaction e.g.
NB.Eos <-  glm.nb(Eosinophils_total ~ Strain * Species, data = Liver_PMNC)
I then run some customized comparisons and calculate the estimated marginal means.
# Pairwise comparisons:
C57_ctrl <- c(1, 0, 0, 0, 0, 0)
C57_lumb <- c(0, 1, 0, 0, 0, 0)
C57_suum <- c(0, 0, 1, 0, 0, 0)
CBA_ctrl <- c(0, 0, 0, 1, 0, 0)
CBA_lumb <- c(0, 0, 0, 0, 1, 0)
CBA_suum <- c(0, 0, 0, 0, 0, 1)



emm.total.Eos = emmeans(NB.Eos, ~ Species * Strain, type = 'response')
contrast(
  emm.total.Eos,
  method = list(
    'C57_ctrl vs C57_lumb' = C57_ctrl - C57_lumb,
    'C57_ctrl vs C57_suum' = C57_ctrl - C57_suum,
    'CBA_ctrl vs CBA_lumb' = CBA_ctrl - CBA_lumb,
    'CBA_ctrl vs CBA_suum' = CBA_ctrl - CBA_suum,
    'C57_ctrl vs CBA_ctrl' = C57_ctrl - CBA_ctrl,
    'C57_suum vs CBA_suum' = C57_suum - CBA_suum,
    'C57_lumb vs CBA_lumb' = C57_lumb - CBA_lumb
  ),
  adjust = 'bonf'
)

Some of my models don't have an interaction e.g. different immune cell type as a response (e.g. NB.Eos <-  glm.nb(Basophils_total ~ Strain + Species, data = Liver_PMNC)). So I have two questions:


*

*Where there is no interaction should I simply switch my * for a + throughout?

*What statistic do I report for the interactions that these p-values are associated with? 


Sample data are available here
 A: You have worked far harder than needed to get these contrasts. Examining these, note that these are all what is known as simple contrasts: comparisons of one factor while holding the other fixed. The first 2 are Dunnett-style comparisons of Species at Strain=C57, the next two are the same at CBA, and the last three are comparisons of Strain at each species. (BTW, in the context of rthe question and the names of the levels, why is it Species, not Treatment?)
In addition, your manual construction of contrasts depends very much on getting the order of results exactly the same as are computed by emmeans. It is safer to use the tools available to specify the needed contrasts using factor names.
So here are the first 4 contrasts:
con1 <- contrast(emm.total.Eos, "trt.vs.ctrl1", by = "Strain")

and the last 3:
con2 <- contrast(emm.total.Eos, "trt.vs.ctrl1", by = "Species")

So if you want to collect these and adjust as one family of 7 contrasts, do:
summary(con1 + con2, type = "response", adjust = "bonferroni")

BTW, here is a speedier way to get these results:
rbind(contrast(emm.total.Eos, "trt.vs.ctrl1", simple = "each", 
               type = "resp", adj = "bonf"))

In answer to Q.1, if you don't have an interaction in the model, that implies that the 1st and 3rd contrasts are identical, the 2nd and 4th are identical, and the 5th, 6th, and 7th are identical. So there are only 3 different contrasts. For those additive models, you should do:
conI = contrast(emmeans(model, "Species"), "trt.vs.ctrl1")
conII = contrast(emmeans(model, "Strain"), "trt.vs.ctrl1")
summary(conI + conII, type = "response", adj = "bonf")

That will give you a set of 3 contrasts, adjusted as one family.
You might consider using the "mvt" adjustment; it is "exact" in a sense, rather than conservative.
I'm not certain what you are asking in Q.2. But I think you will see in this example t ratios with Inf degrees of freedom -- which means they are really z tests. Those are what I would report. (Note: because link function is the log, the contrasts will back-transform to ratios. However, the t statistics are computed before back-transforming.)
