rvlenth / emmeans

Estimated marginal means
https://rvlenth.github.io/emmeans/
358 stars 31 forks source link

[Question] How to name the "mvt" method in a paper? How is usually cited in literature? #394

Closed adrianolszewski closed 1 year ago

adrianolszewski commented 1 year ago

Dear Professor,

I would like to ask about the "mvt" method, more specifically - about some literature on the approach. Did you use or could you recommend any text describing this one precisely? Does this method have any specific name? There are lots of methods mentioned in Bretz and others. I need to refer to this mcp method somehow and I'm wondering how. "mvt" doesn't tell much.

One told me it looks like the Westfall extended version of the Shaffer-Royen single-step approach based on the multivariate t distribution (?) Westfall, Peter H.; Tobias, Randall D., (2007) Multiple Testing of General Contrasts: Truncated Closure and the Extended Shaffer-Royan, Journal of the American Statistical Association, DOI: 10.1198/016214506000001338, https://www.researchgate.net/publication/243103573_Multiple_Testing_of_General_Contrasts

I guess it's the "single-step" described here: https://cran.r-project.org/web/packages/multcomp/vignettes/generalsiminf.pdf but not "tukey" or "dunnett" in general. Actually, I use it in a single-arm observational study assessing changes from baseline at subsequent timepoints (only within-time comparisons), making a sequence of dependent comparisons, not just Dunnett "independent vs. control" or Tukey's "all pairwise".

The multcomp package specifies:

""single-step"implements adjusted p values based on the joint normal or t distribution of the linear function, and "Shaffer"and "Westfall"implement logically constraint multiplicity adjustments (Shaffer, 1986; Westfall, 1997)."

But when I test mutually dependent samples (data repeated over time, so the changes are also dependent), they actually impose some logically constraints. Or did I confuse it all?

Could you, please, guide me how to name this method, when referring to it in a publication?

( just for an illustration what I do )

> update(emg, infer = c(FALSE, TRUE), adjust="mvt")
 T    emmean    SE  df z.ratio p.value
 T1  -0.317 0.133 Inf  -2.390  0.0718
 T2  -0.633 0.136 Inf  -4.640  <.0001
 T3  -0.719 0.178 Inf  -4.030  0.0004
.... (more)

Covariance estimate used: vbeta 
P value adjustment: mvt method for 6 tests 

> update(emg, infer = c(FALSE, TRUE), adjust="holm")
 T    emmean    SE  df z.ratio p.value
 T1  -0.317 0.133 Inf  -2.390  0.0167
 T2  -0.633 0.136 Inf  -4.640  <.0001
 T3  -0.719 0.178 Inf  -4.030  0.0001
.... (more)

Covariance estimate used: vbeta P value adjustment: holm method for 6 tests 

By the way, interesting situation, Holm resulted in lower "penalty" - usually, as I observed, mvt more powerful.

(But it doesn't matter much - it's an exploratory study, not a confirmatory one and the estimated difference didn't even reach the practical significance level for T1)

rvlenth commented 1 year ago

The "mvt" method uses the function mvtnorm::pmvt(), so you can find further documentation in the mvtnorm package. But basically, it is like ptukey() in that we look at the distribution of the maximum of a set of $t$ ratios having a given correlation structure. In fact, when we have pairwise comparisons, homogeneous variances, and equal sample sizes, the "mvt" method is the same as the "tukey" method (with slight discrepancies due to simulation error in pmvt()).

And, as documented in emmeans (see ? summary.emmGrid), it is the same as the default 1-step method used in summary.glht() -- not as modified by Westfall or others.