Subgroup Analysis
The Subgroup Analysis section runs a meta-analysis separately within each subgroup of studies and formally tests whether the subgroups differ. It answers questions like "Does the effect differ between drug-A trials and drug-B trials?" or "Does the effect depend on participant age group?"
It adds a formal test for between-subgroup heterogeneity (Q-between) on top of the standard Main Analysis workflow.
What you need
Same per-study inputs as Main Analysis, plus a subgroup label for each study. For example: name, subgroup, and measure-specific data (means/SDs, 2x2 cells, etc.).
Supported effect measures
All 15 from Main Analysis:
Mean Difference, Standardized Mean Difference, Paired Means, Single Mean, Risk Difference, Odds Ratio, Peto Odds Ratio, Risk Ratio, Hazard Ratio, Incidence Rate Ratio, Proportions/Prevalence, Correlation Coefficient, AUC-ROC, Diagnostic Test Accuracy, Generic Inverse Variance.
The workflow
| Step | What you do |
|---|---|
| 1. Select analysis type | Choose one of 15 effect measures |
| 2. Enter study data with subgroup labels | Include the subgroup each study belongs to |
| 3. Calculate | Engine runs per-subgroup meta-analysis and between-group test |
Statistical methods
Per-subgroup analysis
Within each subgroup, the standard meta-analysis runs -- fixed-effect and random-effects pooled estimates, weights, and heterogeneity statistics (Q, df, p, I-squared, tau-squared) restricted to that subgroup.
Partitioning the total Q
Q_total = Q_within + Q_between
Q_within = sum of Q values within each subgroup
Q_between = Q_total - Q_within
Within-subgroup Q is variation among studies of the same subgroup. Between-subgroup Q is variation explained by the subgroup distinction.
Between-subgroup heterogeneity test
| Statistic | Formula |
|---|---|
| Q_between | max(0, Q_total - Q_within) |
| df_between | number of subgroups - 1 |
| p-value | From chi-squared distribution |
| I-squared_between | max(0, (Q_between - df) / Q_between * 100)% |
A small p-value indicates pooled effects differ across subgroups -- the subgroup variable modifies the effect.
Within-subgroup heterogeneity test
| Statistic | Formula |
|---|---|
| Q_within | sum of per-subgroup Q values |
| df_within | number of studies - number of subgroups |
| p-value | From chi-squared distribution |
| I-squared_within | max(0, (Q_within - df) / Q_within * 100)% |
Large Q_within signals unexplained heterogeneity inside subgroups -- the subgroup variable alone does not account for all variability.
Outputs
| Output | Contents |
|---|---|
| Per-subgroup pooled effects | Fixed and random estimates, SE, 95% CI, z, p, Q, I-squared, tau-squared per subgroup |
| Overall pooled effect | Fixed and random estimates across all studies |
| Q_between test | Q_between, df, p, I-squared_between |
| Q_within test | Q_within, df, p, I-squared_within |
| Subgroup forest plot | Studies grouped by subgroup, pooled diamond per subgroup, overall diamond |
| Per-subgroup diagnostics | Publication-bias tests and sensitivity analysis within subgroups |
Interpreting the result
| Finding | Reading |
|---|---|
| Significant Q_between (p < 0.05) with meaningful effect differences | Subgroup variable modifies the effect -- report subgroup-specific estimates |
| Non-significant Q_between (p >= 0.05) | No formal evidence subgroups differ -- overall pooled estimate is appropriate |
| Significant Q_within (p < 0.05) | Substantial heterogeneity remains inside subgroups -- consider meta-regression |
Subgroup analysis is hypothesis-generating unless subgroups were pre-specified in the review protocol. Post-hoc findings based on few studies per subgroup should be reported cautiously.