pg-multivariatelisted
Install: claude install-skill Exekiel179/pingouin-psych-stats
# PG Multivariate
Use when several continuous dependent variables are compared together (a mean-vector / profile question), rather than one outcome at a time.
## Load
Read:
- `../../references/supervision-gates.md`
- `../../references/pingouin-api-quickref.md`
- `../../references/apa-output-template.md` if writing results.
## Decision Rules
- Compare one group's mean vector to a reference (one-sample) -> `pg.multivariate_ttest(X)`.
- Compare mean vectors of two independent groups -> `pg.multivariate_ttest(X, Y)`.
- Paired multivariate comparison (same participants) -> `pg.multivariate_ttest(X, Y, paired=True)`.
- Check equal covariance matrices across groups (assumption) -> `pg.box_m(data, dvs, group)`.
- Check multivariate normality (assumption) -> `pg.multivariate_normality(X)`.
## Required Inputs
- Two or more continuous dependent variables (the outcome vector).
- Grouping column for the two-sample test and Box's M.
- Whether the comparison is one-sample, independent, or paired.
- `X`/`Y` are arrays or frames of shape (n, k); drop rows with missing DVs first.
## Code Patterns
Hotelling's T-squared, two independent groups:
```python
X = df.loc[df["group"].eq("A"), ["v1", "v2", "v3"]].to_numpy()
Y = df.loc[df["group"].eq("B"), ["v1", "v2", "v3"]].to_numpy()
res = pg.multivariate_ttest(X, Y).round(3)
pg.print_table(res)
```
One-sample (mean vector vs zero; subtract a reference first if needed):
```python
res = pg.multivariate_ttest(df[["v1", "v2", "v3"]].to_numpy