Hotelling's T² (multivariate two-group)

Coming soon

Multivariate

This test is implemented and is currently going through StatMinds’ production verification: every statistic is independently checked against a trusted reference (scipy / R), locked with regression tests, and the screen is exercised across assumption-met/violated and significant/non-significant scenarios before it opens up.

See what’s live now

Multivariate extension of the independent-samples t-test.

Tests equality of population mean vectors across 2 independent groups when p ≥ 2 continuous DVs are observed on each subject. Returns a single omnibus p-value via T² = n₁n₂/(n₁+n₂) · (x̄₁−x̄₂)ᵀS⁻¹(x̄₁−x̄₂) referred to F(p, N−p−1). Univariate follow-up tests with Bonferroni correction localise the effect to specific DVs. Pre-checks multivariate normality (Mardia's test), homogeneity of covariance (Box's M), and outliers in p-dimensional space (Mahalanobis distance with MAD-Z fallback when within-group covariance is itself outlier-contaminated).

Worked example

Do two groups differ across several outcomes jointly?

Two groups were compared on three correlated outcomes at once with Hotelling's T² — the multivariate two-group t-test.

Result

The groups differed on the combined outcomes, T² = 13.6, F(3, 76) = 4.4, p = .007.

How you'd report it (APA)

A Hotelling's T² test showed the two groups differed significantly on the combined outcomes, F(3, 76) = 4.4, p = .007.

Try it yourself: Load this ready-made sample and follow the run above.

When to use it

  • Two independent groups with p ≥ 2 continuous DVs
    An RCT compares a new antihypertensive vs placebo (n = 30 each) on three blood-pressure metrics (systolic, diastolic, mean arterial).
  • Neuroimaging multivariate ROI contrast
    Schizophrenia vs healthy controls (n = 25 each) on 5 frontal-lobe ROI volumes.

When NOT to — use instead

Hypotheses

H₀: the population mean vectors of the two groups are equal — μ₁ = μ₂ (all p components).
Hₐ: at least one mean component differs between the two groups.

Parameter tested: mean vector difference μ₁ − μ₂

Assumptions (and what to do if they fail)

Per-group multivariate normality of the DVs.medium

Check: Check per-DV Shapiro-Wilk in each group.

If violated: Hotelling's T² is fairly robust to mild MVN violations with equal-ish n; severe non-normality inflates Type I error.

The two groups share a common covariance matrix (Box's M test).high

Check: Report Box's M χ² and p.

If violated: Heterogeneous covariance matrices inflate Type I error, especially with unequal group sizes.

Ready to run a Hotelling's T² (multivariate two-group) on your own data?

Guided setup, automatic assumption checks, effect sizes, figures and an APA write-up.

Run this test →