Daniel,
If it were me, I would take a look at the model. e.g.,
terms(~(species/site) * sex)
And I would try to determine what the expected mean squares (EMS) is for each term. I would then make sure my F-values were calculated with respect to the EMS (choose the right denominator). This is pretty simple for single interactions in mixed models (i.e., one nested factor). If A is fixed and B is random, then F values are calculated as F for A = MSA/MSAB, F for B = MSB/MSE, and F for AB = MSAB/MSE. Once there is a three way interaction, things get interesting.
I found this via a quick search. It is from Jorge Dubcovsky, a plant scientist at UC-Davis. I believe these are notes from an experimental design course.
If you follow the logic to the point where he discusses three-way interactions, you will see that “what to do?” becomes less straightforward. The simplest answer appears to be if you have a single fixed effect, calculate F by dividing by MS for a two-way interaction including the fixed effect with the random effect. If you have a two-way interaction between fixed effects, divide by the MS for the three-way interaction (like I did in the example). But there is another example with adding the MS for two-way interactions and subtracting the MS for the three-way interaction. I’ll cite exactly what Dubcovsky said in this document: "In factorial experiments with three or more factors, at least one of which is a random factor, and certain other, more complex designs, there are frequently no exact test statistics for certain effects in the models.” In other words, you have strayed into territory where there is no single correct approach.
If I were in your shoes, I would be inclined (mostly by ease in approach and interpretation) to calculate F values as
species: MS species / MS species:site:sex (probably easiest) or MS species / MS species:site
site: MS site/ MSE
sex: MS sex / MS species:site:sex
species:sex: MS species:sex / MS species:site:sex
species:site:sex: MS species:site:sex / MSE
Note that all random effects are divided by MSE, all fixed effects by the MS for the highest interaction.
The important thing is that you have to do this across all random permutations and recalculate effects sizes and p-values. This is not easy, but it can be done.
Again, I hope this demonstrates the increased complexity with more than a single two-way interaction and why nested.update has only a “primitive” approach (say compared to proc MIXED in SAS or lmer in R, which both are designed for univariate data analysis).
Mike
PS I have visualized a future new function or modification of nested.update where users can use the function and indicate the EMS with something like,
error = c(“species:site:sex”, “Residual”, “species:site:sex”, “species:site:sex”, “Residual”)
as an argument, for example, with the terms I used above. This would only appeal to advanced users who can envision what the EMS should be, and it is not a trivial programming hurdle. Maybe when I get a sabbatical…