[R-sig-ME] Emmeans Effectsizes and Equivalence Tests
Lenth, Russell V
ru@@e||-|enth @end|ng |rom u|ow@@edu
Fri Feb 4 21:51:21 CET 2022
I will answer the part about equivalence tests.
If you do not specify a side, you *do* obtain a two-sided test of equivalence. As documented in the help page for 'summary.emmGrid' (in the section on noninferiority, nonsuperiority, and equivalence, the test statistic is
t = (|estimate - null| - delta) / SE
and that the P value is the left-tailed probability. This is equivalent to the TOST method because the absolute value in there makes it test the less significant of the two tests. You can confirm this by looking at the separate cases where estimate < null and estimate > null.
Here’s another set of emmeans-related problems or uncertainties. I’m using a beta-bionomial model to analyze a set of correctly vs. incorrectly given answers in a psychological experiment. Although the first is more a statistical question, i’ll give it a try here. Guess there should be some experts for all of this among you.
To compare experimental conditions, i defined some custom emmeans contrasts (using contrast(method = list(c(…))). For beta-binomial GLMs, emmeans calculates comparisons on the logit scale, thus provides logs of odds ratios. Additionally i’m using the eff_size() function to determine standardized mean differences (with sigma = stats::sigma(model), edf = df.residual(model)). This should give me Cohen’s d as calculated via d = b/σ. However, i’m a little confused since on the internet i’ve also seen the formula d = b × √3/𝜋 to convert logits to Cohen’s d. So how comes this contradiction? And in general i wonder which makes more sense in this case, reporting OR, or d, or both of them?
For the analysis i also need equivalence tests, and i’m using two one-sided tests for that via emmeans::contrast(delta = 0.3 * stats::sigma(model)), in order to classify all differences with less than a small effectsize (d = 0.3) as equal (using the Cohen’s d to logits conversion formula used by emmeans itself). I found that suggestion somewhere, but in case you’re having different suggestions, please let me know. However, i can’t implement the „equivalence“ side argument since the output always states that p values are left-tailed, not two-sided. I’ve been playing around with placing the side argument within contrast() or summary(), also with method „pairwise“ instead of my custom contrasts, but it won’t work. In the emmeans vignette on p. 70 it says „The misc slot in object may contain default values for by, calc, infer, level, adjust, type, null, side, and delta“, which might be the reason. But i don’t arrive to change anything about that using the update method as suggested. Does anyone know a solution?
Thanks a lot for helping out!
More information about the R-sig-mixed-models