Atlas
statminds
Effect Size (Factorial Variance Model)The underlying model family class (e.g. GLM, linear model, categorical matrix, log-linear).Parametric ReferenceStatistical methods that assume a specific probability distribution family (typically normal).12-stage workflow

Partial Eta-Squared (ηp²)

The engine for Unique-Variance Discovery. Partial η² audits the proportion of variance 'stolen' from the error pool by a specific factor, reveal the pure influence of an intervention while ignoring secondary noise.

Model familyEffect Size (Factorial Variance Model)
Hypothesisdescriptive
AliasesFactorial η² · Partial Variance Index · Post-Adjustment Effect Size
G1
Unique Signal Audit
Isolate the specific predictive power of one factor while mathematically 'blocking out' other variables.
G2
Error-Pool Discovery
Determine what percentage of the 'Unexplained' variance is captured by your primary treatment effect.
G3
Interaction Precision Strike
Quantify the magnitude of synergistic interactions in complex, multi-factor ANOVA grids.
Visual Overview Dashboard
1

What is it?

Partial Eta-Squared (ηp²) is designed to mathematically isolate and quantify the magnitude of an observed outcome or model factor, independently of sample size.

The engine for Unique-Variance Discovery. Partial η² audits the proportion of variance 'stolen' from the error pool by a specific factor, reveal the pure influence of an intervention while ignoring secondary noise.

2

Goals & Indications

  • Unique Signal Audit: Isolate the specific predictive power of one factor while mathematically 'blocking out' other variables.
  • Error-Pool Discovery: Determine what percentage of the 'Unexplained' variance is captured by your primary treatment effect.
  • Interaction Precision Strike: Quantify the magnitude of synergistic interactions in complex, multi-factor ANOVA grids.
3

Core Idea Diagram

Eta-squared denominator includes SS other factorsPartial Eta-squared denominator excludes SS other factors
4

Claims tested

H₀: H₀: Partial effect size = 0 (the factor explains no variance after removing other effects)
Hₐ: Hₐ: Partial effect size > 0 (the factor explains unique variance controlling for other factors)
5

How it works

  1. Obtain Factor Sum of Squares (SS_factor) and Residual Sum of Squares (SS_error).
  2. Remove other model factor variances from the denominator calculation.
  3. Calculate partial explained variance: partial eta² = SS_factor / (SS_factor + SS_error).
  4. Evaluate factor impact controlling for other covariates.
6

Assumptions

Valid factorial or repeated measures ANOVA conducted: ηp² requires multi-factor design
Continuous outcome variable: DV measured on continuous scale
Independence of observations: No clustering unless modeled as within-subjects factor
7

Important Note

ηp² is SPSS and most statistical software default for ANOVA. It quantifies proportion of variance attributable to a factor AFTER partialling out other factors. Unlike η², ηp² is comparable across studies with different numbers of factors. Always report with factorial ANOVA results.

8

Worked Example

Factor SSError SSOther SSη² vs ηₚ²
20.050.030.020.0% vs 28.6%
Interactive Sandbox

Denominator Exclusion Laboratory

Slide the other factor sum of squares. Watch how Partial Eta-squared ignores other factors, representing a larger “partial” effect than standard Eta-squared.

Factor of Interest SS (SS_factor)30
Error/Residual SS (SS_error)50
Other Factors SS (SS_other)40
Denominator Contrast
Partial η² (ηₚ²): 37.5%
Eta-squared (η²): 25.0%
Partial Inflation: 1.50x
Comparison of Denominator SS
Standard η² Denominator:SS=120Partial ηₚ² Denominator:SS=80Other Factor SS is excluded from the denominator in ηₚ²
The 12-Stage Precision Workflow
01Unique Parity
Hypotheses
We test if the factor captures a non-zero slice of the *remaining* variance after all other factors have taken their piece.
02Fixed Effects
Assumptions
Ensuring the model correctly identifies 'Partial' variance—most powerful in fixed-effect experimental designs.
03Inflation Risk
Diagnostics
Checking if ηp² is significantly larger than η²—a signal that other predictors are 'Soaking Up' noise and magnifying the target effect.
04focus
Measuring the unique impact of FlowMotion while mathematically neutralizing the variance from Participant Age and Gender.
05Partial Omega-sq
Alternatives
Knowing when to switch to Partial Omega-squared (ωp²) if you need a less biased estimate for small clinical samples.
06The F-Link
Significance
Understanding that ηp² is derived directly from the F-statistic and the degrees of freedom: ηp² = (F*df_h) / (F*df_h + df_e).
07The Magnitude Cap
Effect Size
Interpreting values: .01 (Small), .06 (Medium), .14 (Large)—benchmarks that define the weight of your discovery.
08Precision Target
Sample Size
Calculating the N required to ensure that even subtle unique effects aren't lost in the 'Residual Noise'.
09The Unique Statement
Reporting
Reporting ηp² explicitly to allow readers to compare variable strengths across complex factorial tables.
10Effectsize / eta_p Logic
Software
Executing 'eta_squared(partial = TRUE)' commands, ensuring the algorithm uses the partial sum of squares formula.
11focus
The fatal error of claiming that ηp² values sum to 100%—they frequently exceed the total variance because they are 'Partial' by definition.
12focus
Tracing the model back to the mid-century refinement of effect size for multivariate and factorial experimental designs.
01Hypothesis test logic

Hypotheses

Pragmatic null and alternative hypotheses defined in mathematical notation.

A hypothesis is a question sharpened to a point. Ambiguity is the enemy of inference.
Logic Core
Null · H₀

H₀: Partial effect size = 0 (the factor explains no variance after removing other effects)

Alternative · Hₐ

Hₐ: Partial effect size > 0 (the factor explains unique variance controlling for other factors)

Why it matters descriptive

ηp² is SPSS and most statistical software default for ANOVA. It quantifies proportion of variance attributable to a factor AFTER partialling out other factors. Unlike η², ηp² is comparable across studies with different numbers of factors. Always report with factorial ANOVA results.

02Model diagnostics

Assumptions

The core mathematical criteria needed to ensure that statistical testing remains unbiased and valid.

Build your analysis on rock, not sand. Verify the mathematical foundation before building the model.
Integrity Shield
7
Assumptions
4
Critical / High Severity
How to check
Quick
Verify ANOVA has 2+ factors, interactions, or within-subjects factors. ηp² computed from SS values controlling for other effects
Rigorous
Review ANOVA design matrix; confirm Type II or Type III SS used (accounts for other factors). Check that ηp² ≥ η² for all effects (mathematical requirement)
If violated
If one-way ANOVA → use η² or ω² instead (ηp² = η² in one-way, but η² is more interpretable). If simple regression → use R² or sr² (semi-partial). ηp² is specifically for multifactor designs where 'controlling for other effects' is meaningful
eta squaredomega squared
How to check
Quick
Confirm variable type; variance-based effect sizes require continuous DV with meaningful variance
Rigorous
Verify measurement scale is truly interval/ratio; check adequate range (not artificially restricted or ceiling/floor effects)
If violated
If ordinal DV → use rank-based effect sizes (rank epsilon-squared from Friedman test for repeated measures). If binary DV → use odds ratio, risk ratio. If categorical → use Cramér's V or Cohen's w. ηp² assumes continuous variance structure
cramers v
How to check
Quick
Design review; verify no unmodeled dependencies. If repeated measures, confirm proper within-subjects specification in ANOVA
Rigorous
ICC analysis for between-subjects factors. For repeated measures, verify subject factor properly included and sphericity tested
If violated
If unmodeled clustering → use multilevel models and report R²_marginal. If repeated measures not specified → rerun as RM-ANOVA with proper within-subjects factors (ηp² partials out subject variance). Standard ηp² assumes independence for between-subjects factors
intraclass correlation
How to check
Quick
Q-Q plots of residuals; visual inspection for severe skewness or heavy tails
Rigorous
Shapiro-Wilk test on residuals; check skewness and kurtosis values; residual histograms by cell
If violated
ηp² reasonably robust to moderate non-normality with adequate n (n ≥ 20 per cell). If severe violation: (1) Transform DV and recompute; (2) Bootstrap CI for ηp²; (3) Use rank-based ANOVA (Friedman, Aligned Rank Transform); (4) Robust ANOVA with trimmed means
How to check
Quick
Between-subjects: Levene's test (p > .05). Repeated measures: Mauchly's sphericity test (p > .05). Boxplots show similar spread
Rigorous
Brown-Forsythe test; residual plots; variance ratios (largest/smallest < 3). For RM: epsilon corrections (Greenhouse-Geisser, Huynh-Feldt)
If violated
Between-subjects heteroscedasticity: (1) Welch's ANOVA with generalized η²; (2) Transform DV; (3) Use robust standard errors. Repeated measures sphericity violation: (1) Apply epsilon correction (ε < .75 → G-G, ε > .75 → H-F); (2) Multivariate approach (MANOVA). ηp² interpretation unchanged but F-test validity affected
How to check
Quick
Boxplots by cell; standardized residuals |z| > 3 flagged; leverage plots
Rigorous
Cook's distance, DFFITS, influence diagnostics; multivariate outlier detection in factorial designs
If violated
Outliers inflate SS_error, deflating ηp² (opposite of η²). Solutions: (1) Sensitivity analysis: ηp² with/without outliers; (2) Robust ANOVA with 20% trimmed means; (3) Winsorize extreme values; (4) Transform if outliers due to skewness. Report transparency: 'ηp²=.18 (full data), .22 (outliers removed)'
How to check
Quick
Verify design has 2+ factors, covariates, or within-subjects components. ηp² should differ from η² (if same, single-factor design)
Rigorous
Compare ηp² to η² for each effect. ηp² > η² confirms other variance removed. If ηp² = η², only one factor in model (use η² instead)
If violated
If truly one-factor design (ηp² = η²): Report η² for clarity ('η²=.12, proportion of TOTAL variance'). Reserve ηp² for designs where 'controlling for other factors' has substantive meaning. Using ηp² in one-way ANOVA is technically correct but conceptually confusing
eta squaredomega squared
03Residual Forensics

Diagnostics

Checking residual plots and indices to examine model deviations and ensure standard error integrity.

Trust, but verify. The outliers often hold more truth than the averages.
System Health
Essential checks
  1. ANOVA assumption checks (Levene's, Mauchly's sphericity, Q-Q plots)
  2. Calculate ηp² for each main effect and interaction separately
  3. Compare ηp² across factors to identify largest effects
  4. Verify ηp² ≥ η² for all effects (mathematical requirement)
Recommended checks
  1. Bootstrap 95% CI for ηp² (addresses sampling variability)
  2. Compare η² vs ηp² side-by-side to show difference
  3. Convert to Cohen's f for power analysis: f = √(ηp²/(1-ηp²))
  4. Apply Cohen's benchmarks: .01 small, .06 medium, .14 large
  5. Check for interaction effects before interpreting main effects
  6. Sensitivity analysis: effect size with/without outliers
  7. Visualization: interaction plots with effect size annotations
04Live Instances

Applied Minds

Review concrete study examples, data layout guidelines, and copy executable syntax scripts.

Theory is the map. Practice is the terrain. Simulation bridges the gap.
Applied Wisdom
Example 01

2×3 Factorial ANOVA - Diet (2 levels) × Exercise (3 levels) on Weight Loss

Research question: Do diet type and exercise frequency interact to affect weight loss? Design: 2×3 factorial between-subjects (Diet: Low-carb vs Low-fat × Exercise: None, Moderate, Intense). N=120 (n=20 per cell). Outcome: Weight loss in kg over 12 weeks. Compute ηp² for main effects and interaction. Compare to η² to show why ηp² preferred in factorial designs.

Design2×3 factorial between-subjects
Total n120
Outcome ScaleWeight loss (kg, continuous)
# Partial eta-squared in 2×3 factorial ANOVA
library(effectsize)
library(tidyverse)
library(ggplot2)

set.seed(2025)

# Generate factorial design data
# True effects: Diet main effect (low-carb better), Exercise main effect (more = better),
# Interaction: low-carb benefits more from intense exercise
data <- expand.grid(
  diet = c("LowCarb", "LowFat"),
  exercise = c("None", "Moderate", "Intense"),
  rep = 1:20
) %>%
  mutate(
    # Population means for each cell
    weight_loss = case_when(
      diet == "LowCarb" & exercise == "None" ~ rnorm(20, 3.5, 1.8),
      diet == "LowCarb" & exercise == "Moderate" ~ rnorm(20, 6.2, 2.0),
      diet == "LowCarb" & exercise == "Intense" ~ rnorm(20, 9.8, 2.2),  # Interaction: big boost
      diet == "LowFat" & exercise == "None" ~ rnorm(20, 2.8, 1.7),
      diet == "LowFat" & exercise == "Moderate" ~ rnorm(20, 5.0, 1.9),
      diet == "LowFat" & exercise == "Intense" ~ rnorm(20, 6.5, 2.0)   # Smaller boost
    )
  )

# Descriptive statistics
cat("=== Cell Means(n=20 per cell) ===", "\n")
data %>%
  group_by(diet, exercise) %>%
  summarise(M = mean(weight_loss), SD = sd(weight_loss), .groups='drop') %>%
  print()

# Two-way ANOVA
model <- aov(weight_loss ~ diet * exercise, data=data)
anova_table <- summary(model)[[1]]
print(anova_table)

# Manual calculation of η² and ηp²
cat("\n=== Manual Calculation of Effect Sizes ===", "\n")

# Extract SS values
SS_diet <- anova_table["diet", "Sum Sq"]
SS_exercise <- anova_table["exercise", "Sum Sq"]
SS_interaction <- anova_table["diet:exercise", "Sum Sq"]
SS_error <- anova_table["Residuals", "Sum Sq"]
SS_total <- SS_diet + SS_exercise + SS_interaction + SS_error

df_diet <- anova_table["diet", "Df"]
df_exercise <- anova_table["exercise", "Df"]
df_interaction <- anova_table["diet:exercise", "Df"]
MS_error <- anova_table["Residuals", "Mean Sq"]

# η² (proportion of TOTAL variance)
eta_sq_diet <- SS_diet / SS_total
eta_sq_exercise <- SS_exercise / SS_total
eta_sq_interaction <- SS_interaction / SS_total
eta_sq_sum <- eta_sq_diet + eta_sq_exercise + eta_sq_interaction

cat("\n--- Regular η² (proportion of TOTAL variance) ---\n")
cat(sprintf("η²_Diet = %.3f (%.1f%%)\n", eta_sq_diet, eta_sq_diet*100))
cat(sprintf("η²_Exercise = %.3f (%.1f%%)\n", eta_sq_exercise, eta_sq_exercise*100))
cat(sprintf("η²_Interaction = %.3f (%.1f%%)\n", eta_sq_interaction, eta_sq_interaction*100))
cat(sprintf("Sum of η² = %.3f (sums to < 1.0, excludes error)\n", eta_sq_sum))

# ηp² (proportion of ERROR variance after removing other effects)
partial_eta_sq_diet <- SS_diet / (SS_diet + SS_error)
partial_eta_sq_exercise <- SS_exercise / (SS_exercise + SS_error)
partial_eta_sq_interaction <- SS_interaction / (SS_interaction + SS_error)
partial_eta_sq_sum <- partial_eta_sq_diet + partial_eta_sq_exercise + partial_eta_sq_interaction

cat("\n--- Partial ηp² (proportion of variance after removing OTHER factors) ---\n")
cat(sprintf("ηp²_Diet = %.3f (%.1f%% of Diet+Error variance)\n", 
            partial_eta_sq_diet, partial_eta_sq_diet*100))
cat(sprintf("ηp²_Exercise = %.3f (%.1f%% of Exercise+Error variance)\n", 
            partial_eta_sq_exercise, partial_eta_sq_exercise*100))
cat(sprintf("ηp²_Interaction = %.3f (%.1f%% of Interaction+Error variance)\n", 
            partial_eta_sq_interaction, partial_eta_sq_interaction*100))
cat(sprintf("Sum of ηp² = %.3f (CAN EXCEED 1.0! Not additive!)\n", partial_eta_sq_sum))

cat("\n--- KEY DIFFERENCE ---\n")
cat("ηp² > η² because denominator excludes variance from OTHER factors\n")
cat(sprintf("Diet: ηp²=%.3f vs η²=%.3f (ratio: %.2f)\n", 
            partial_eta_sq_diet, eta_sq_diet, partial_eta_sq_diet/eta_sq_diet))
cat(sprintf("Exercise: ηp²=%.3f vs η²=%.3f (ratio: %.2f)\n", 
            partial_eta_sq_exercise, eta_sq_exercise, partial_eta_sq_exercise/eta_sq_exercise))

# Using effectsize package (recommended)
cat("\n=== effectsize Package(Recommended) ===", "\n")
cat("\n--- η² ---\n")
print(eta_squared(model, partial=FALSE))

cat("\n--- ηp² ---\n")
print(eta_squared(model, partial=TRUE))

cat("\n--- ω² (less biased) ---\n")
print(omega_squared(model))

# Interpretation with Cohen's benchmarks
cat("\n=== Interpretation(Cohen 1988 benchmarks) ===", "\n")
cat("Small: .01, Medium: .06, Large: .14\n\n")

interpret_effect <- function(value, name) {
  magnitude <- ifelse(value >= .14, "LARGE",
                     ifelse(value >= .06, "Medium", "Small"))
  cat(sprintf("%s: ηp²=%.3f → %s effect\n", name, value, magnitude))
}

interpret_effect(partial_eta_sq_diet, "Diet")
interpret_effect(partial_eta_sq_exercise, "Exercise")
interpret_effect(partial_eta_sq_interaction, "Diet×Exercise")

# Convert to Cohen's f for power analysis
cat("\n=== Conversion to Cohen's f(for G*Power) ===", "\n")
f_diet <- sqrt(partial_eta_sq_diet / (1 - partial_eta_sq_diet))
f_exercise <- sqrt(partial_eta_sq_exercise / (1 - partial_eta_sq_exercise))
f_interaction <- sqrt(partial_eta_sq_interaction / (1 - partial_eta_sq_interaction))

cat(sprintf("Diet: f = %.3f\n", f_diet))
cat(sprintf("Exercise: f = %.3f\n", f_exercise))
cat(sprintf("Interaction: f = %.3f\n", f_interaction))
cat("Cohen's f benchmarks: .10 small, .25 medium, .40 large\n")

# Bootstrap CI for ηp² (Diet effect)
cat("\n=== Bootstrap 95% CI for ηp² (Diet) ===", "\n")
library(boot)

boot_partial_eta_diet <- function(data, indices) {
  d <- data[indices, ]
  model <- aov(weight_loss ~ diet * exercise, data=d)
  SS <- summary(model)[[1]][, "Sum Sq"]
  SS_diet <- SS[1]
  SS_error <- SS[4]
  SS_diet / (SS_diet + SS_error)
}

boot_results <- boot(data, boot_partial_eta_diet, R=1000)
boot_ci <- boot.ci(boot_results, type="perc")
cat(sprintf("ηp²_Diet = %.3f, 95%% CI [%.3f, %.3f]\n",
            partial_eta_sq_diet, boot_ci$percent[4], boot_ci$percent[5]))

# Visualization: Interaction plot with effect sizes
cat("\n=== Creating Interaction Plot ===", "\n")

means_plot <- data %>%
  group_by(diet, exercise) %>%
  summarise(M = mean(weight_loss), 
            SE = sd(weight_loss)/sqrt(n()), 
            .groups='drop') %>%
  mutate(exercise = factor(exercise, levels=c("None", "Moderate", "Intense")))

p1 <- ggplot(means_plot, aes(x=exercise, y=M, color=diet, group=diet)) +
  geom_line(linewidth=1.3) +
  geom_point(size=4) +
  geom_errorbar(aes(ymin=M-SE, ymax=M+SE), width=0.15, linewidth=1) +
  labs(title="Diet × Exercise Interaction on Weight Loss",
       subtitle=sprintf("ηp²(Interaction)=%.3f (LARGE effect)", partial_eta_sq_interaction),
       x="Exercise Frequency", y="Weight Loss(kg)",
       color="Diet Type") +
  theme_classic(base_size=14) +
  theme(legend.position="top")

print(p1)

# Effect size comparison plot
effect_data <- data.frame(
  Factor = rep(c("Diet", "Exercise", "Interaction"), 2),
  Type = rep(c("η²", "ηp²"), each=3),
  Value = c(eta_sq_diet, eta_sq_exercise, eta_sq_interaction,
            partial_eta_sq_diet, partial_eta_sq_exercise, partial_eta_sq_interaction)
)

p2 <- ggplot(effect_data, aes(x=Factor, y=Value, fill=Type)) +
  geom_bar(stat="identity", position="dodge", width=0.7) +
  geom_hline(yintercept=0.01, linetype="dashed", color="gray50", alpha=0.7) +
  geom_hline(yintercept=0.06, linetype="dashed", color="orange", alpha=0.7) +
  geom_hline(yintercept=0.14, linestyle="dashed", color="red", alpha=0.7) +
  annotate("text", x=3.3, y=0.01, label="Small", hjust=0, size=3) +
  annotate("text", x=3.3, y=0.06, label="Medium", hjust=0, size=3) +
  annotate("text", x=3.3, y=0.14, label="Large", hjust=0, size=3) +
  labs(title="η² vs ηp²: Why ηp² is Larger",
       subtitle="ηp² removes other factor variance from denominator",
       y="Effect Size", fill="Metric") +
  theme_classic(base_size=14) +
  coord_cartesian(xlim=c(0.5, 3.8))

print(p2)

# APA-style results
cat("\n=== APA-Style Results ===", "\n")
cat(sprintf(
  "A 2×3 factorial ANOVA revealed significant main effects of diet, F(%d, %d) = %.2f, p < .001, ηp² = %.2f (large), and exercise, F(%d, %d) = %.2f, p < .001, ηp² = %.2f (large), as well as a significant Diet×Exercise interaction, F(%d, %d) = %.2f, p < .001, ηp² = %.2f (large). The interaction indicated that low-carb diets benefited more from intense exercise(M=%.1f kg) compared to low-fat diets(M=%.1f kg), while differences were smaller at moderate exercise levels. Partial eta-squared values indicate that diet, exercise, and their interaction each explained substantial unique variance in weight loss after controlling for other factors in the model.\n",
  df_diet, anova_table["Residuals", "Df"],
  anova_table["diet", "F value"], partial_eta_sq_diet,
  df_exercise, anova_table["Residuals", "Df"],
  anova_table["exercise", "F value"], partial_eta_sq_exercise,
  df_interaction, anova_table["Residuals", "Df"],
  anova_table["diet:exercise", "F value"], partial_eta_sq_interaction,
  means_plot %>% filter(diet=="LowCarb", exercise=="Intense") %>% pull(M),
  means_plot %>% filter(diet=="LowFat", exercise=="Intense") %>% pull(M)
))
Interpretation Blueprint

Diet: F(1,114)=28.5, p<.001, ηp²=.20 (large); Exercise: F(2,114)=52.3, p<.001, ηp²=.48 (large); Interaction: F(2,114)=12.7, p<.001, ηp²=.18 (large). All three effects show large effect sizes. The interaction reveals that low-carb diets benefit disproportionately from intense exercise (M=9.8 kg) compared to low-fat diets (M=6.5 kg), suggesting diet type moderates exercise effectiveness. ηp² values exceed η² values because partial eta-squared removes other factor variance from the denominator, providing a standardized metric comparable across studies with different factorial designs.

05Tactical Pivots

Alternatives

Structured fallback pathways for choosing alternative tests when normality or slopes requirements fail.

When the path is blocked, pivot. Rigor is not rigidity; it is the intelligent adaptation to reality.
Adaptive Strategy
Measurement Precision Ladder Ideal · Factorial Continuous Matrix
Ratio
Maintain Partial η². Isolate the unique variance of treatment signals in complex designs.
Peak Signal
Interval
Ideal for ANOVA Grids. Ensure every factor captures a unique, non-overlapping slice of the pie.
Standard Precision
Ordinal / Nominal
Abandon ηp². Use non-parametric rank-partitioning or categorical association metrics.
Information Suicide
Temporal Trajectory Audit Static Factorial Snapshot
Static Grid
Cross-sectional audit.
Stay with Partial η². Quantify unique influence after neutralizing secondary factors.
Repeated Profile
Trajectory variance.
Maintain ηp². The required standard for reporting within-subject temporal effects.
Adaptive Technical Safeguards · adaptive safeguards
sample size bias
  • Partial Omega-Squared (ωp²) — The mandatory pivot for small factorial samples to ensure unbiased discovery.
across design comparison
  • Generalized Eta-Squared (ηG²) — Use this index to compare effects across different experimental structures (e.g., between-subjects vs. mixed).
multicollinearity between factors
  • Type III SS Strike — Use the sequential sum of squares to protect the partial variance calculation.
06Adjusted Comparisons

Post-hoc

Group mean comparisons and correction controls (e.g. Tukey HSD, Bonferroni) to protect against Family-Wise Error Rates.

The omnibus test opens the door; post-hoc analysis explores the room.
Forensic Detail
Adjusted Comparisons
  • Compare with partial omega-squared (less biased)
  • Compare with generalized eta-squared for repeated measures
  • Bootstrap confidence intervals
  • Note: partial eta-squared values are typically larger than eta-squared
  • Convert to Cohen's f for power analysis: f = sqrt(partial_eta² / (1 - partial_eta²))
Interpretation Guidelines

Partial eta-squared measures effect size controlling for other factors. Post-hoc tests are not applicable.

07Standardized scale impact

Effect Size

Understanding effect sizes (e.g., Cohen's d, Partial Eta-Squared) and clinical impact benchmarks.

Significance is noise. Magnitude is the signal. Measure the impact, not just the probability.
Impact Magnitude

Proportion of variance explained by factor AFTER removing other effects. Small: .01, Medium: .06, Large: .14 (Cohen, 1988). Standard for factorial/RM ANOVA.

Proportion of TOTAL variance explained. Use in one-way ANOVA. ηp² ≥ η² always in multifactor designs.

Less biased partial effect size. Adjusts ηp² for sampling error. RECOMMENDED for population inference in factorial designs.

Comparable across studies with different designs. Adjusts for manipulated vs measured factors.

Conversion: f = √(ηp² / (1 - ηp²)). Used for power analysis in G*Power. f = .10 small, .25 medium, .40 large.

Recommended Metric: partial_eta_squared (ηp²) is the standard for factorial and repeated measures ANOVA. For population inference, consider partial omega-squared (ωp²). Always report with 95% CI.
Small
0.2
Medium
0.5
Large
0.8
0.50
partial_eta_squared (ηp²) is the standard for factorial and repeated measures ANOVA. For population inference, consider partial omega-squared (ωp²). Always report with 95% CI.
Recommended Measure
5
Available Metrics
ReportUse partial_eta_squared (ηp²) is the standard for factorial and repeated measures ANOVA. For population inference, consider partial omega-squared (ωp²). Always report with 95% CI. to represent clinical impact magnitude.
08Statistical Power

Sample Size

Guidelines for minimum sample requirements and power analysis parameters.

An underpowered study is an ethical failure. Respect the data by collecting enough of it.
Power Protocol
Floor Requirements

The 'Unique Signal' Minimum: A minimum of 20 participants per individual cell is essential. Partial η² depends on the 'Residual' pool—if noise is high, the unique signal becomes invisible.

Effect SizeParametersRequired n
Small Effectηp² = .01 (Small)n ≈ 800 total
Medium Effectηp² = .06 (Medium)n ≈ 130 total
Large Effectηp² = .14 (Large)n ≈ 50 total
Key considerations

The 'Inflation Paradox': ηp² is often much larger than η² because it ignores the variance owned by other predictors. Reporting both is elite—it proves your predictor is strong both 'Globally' and 'Uniquely'.

G*Power StrategyBenchmark: F-tests → ANOVA (Partial Variance). Parameters: ηp², Number of covariates, α = .05, Power = .80. Note: Adding high-fidelity covariates increases ηp² by shrinking the 'Error Pool'.
09APA narrative blueprint

Reporting

How to compile statistical results into publication prose matching APA and journal style guides.

Data does not speak for itself. It requires a translator. Be clear, be precise, be honest.
Narrative Arc
Worked APA paragraph example
A 2×2 factorial ANOVA revealed a significant main effect of training type on skill scores, F(1, 76) = 42.50, p < .001, ηp² = .36, 95% CI [.20, .48], indicating a large effect. Enhanced training (M = 76.0, SD = 11.5) outperformed standard training (M = 63.5, SD = 12.8). The main effect of feedback type was not significant, F(1, 76) = 3.80, p = .054, ηp² = .05. The Training × Feedback interaction was significant, F(1, 76) = 8.20, p = .005, ηp² = .10, indicating that enhanced training benefited more from immediate feedback.
Reusable template

A factorial/repeated measures/mixed ANOVA revealed a significant/non-significant main effect of Factor/interaction, F(df_effect, df_error) = X.XX, p = .XXX, ηp² = .XX, 95% CI .XX, .XX, indicating a small/medium/large effect. The factor explained approximately X% of the variance in DV after controlling for other factors.

Essential statistics to report
  • F-statistic with degrees of freedom
  • p-value
  • Partial eta-squared (ηp²) for each effect
  • 95% confidence interval (bootstrap preferred)
  • Effect size interpretation (small/medium/large with Cohen's benchmarks)
  • Descriptive statistics per cell (M, SD, n)
  • Interaction effects should be reported before main effects when significant
10Exhibit Builder

Manuscript Lab

Copy standard summary tables and forensic reporting grids to outline analysis details.

Table 1: Partial Eta-Squared for Factorial ANOVA
FactorPartial η²Interpretation95% CI
Treatment.18Large Effect[.08, .28]
Severity.24Large Effect[.14, .34]
Treatment × Severity.08Medium Effect[.01, .15]
Note. Reporting proportion of variance uniquely explained by each factor. Interpreted via Cohen (1988).
Treatment (.18)Powerful Independent Variable. 18% of the 'remaining' variance was captured by the treatment factor.
Header glossary

The 'Slice of the Pie'. Represents the proportion of variance in the outcome that is uniquely owned by the factor, AFTER removing variance from other factors.

The Stability Range. If the CI does not cross zero, the effect is robust across the population.

11Algorithmic Logic

Command Center

Syntax libraries and function parameters for executing calculations in stats packages.

Code is the modern laboratory. Clean execution ensures reproducible discovery.
Execution Engine
# 1. Extract ηp² from ANOVA object
effectsize::eta_squared(anova_model, partial = TRUE)

# 2. Extract Generalized Eta-Squared (GES)
# Preferred for Repeated Measures designs
effectsize::eta_squared(anova_model, generalized = TRUE)
Library stack
R
effectsizelsr
Python
pingouin
Elite Forensic Strike

Partial Eta-Squared is often 'Inflated'—it adds up to more than 100% across factors. Always consider reporting 'Generalized Eta-Squared' (GES) for more realistic variance partitioning.

# Model Performance Dashboard
performance::model_performance(anova_model)
12The Over-adjustment Trap

Common Mistakes

Analytical caveats and corrections to maintain modeling integrity.

Wisdom is learning from the failures of others. Anticipate the error before it occurs.
Defensive Logic
Why it's wrong
ηp² and η² have DIFFERENT denominators. η² = SS_effect / SS_total (includes all variance). ηp² = SS_effect / (SS_effect + SS_error) (excludes other factor variance). In factorial ANOVA, ηp² > η² always. Example: η²_Diet=.10 but ηp²_Diet=.18 in same analysis. Reporting wrong metric misleads readers.
The correction
In factorial/RM-ANOVA, report ηp² (standard convention). Explicitly state: 'We report partial eta-squared (ηp²), which quantifies variance explained after removing other factors.' Include formula in supplementary materials if space allows. NEVER use η² and ηp² interchangeably in text.
Why it's wrong
η² deflated in factorial designs because SS_total includes variance from ALL factors. More factors → larger SS_total → smaller η² for each factor. η² not comparable across studies with different numbers of factors. SPSS, SAS, jamovi report ηp² by default; reporting η² inconsistent with output.
The correction
ALWAYS use ηp² in factorial/RM-ANOVA (2+ factors). Reserve η² for one-way ANOVA or when total variance explained is research question. Report: 'ηp²=.18 (proportion of Diet+Error variance)' not 'η²=.10 (proportion of total variance)' in factorial designs.
Why it's wrong
ηp² depends on what's in the model. Study A (2-factor) ηp²_Diet=.15 vs Study B (4-factor + 3 covariates) ηp²_Diet=.22 NOT directly comparable—more covariates inflate ηp² by removing variance from error term. ηp² is design-dependent.
The correction
For cross-study comparison: (1) Report generalized η² (adjusts for design); (2) Convert to Cohen's d or f (standardized); (3) Provide correlation or regression coefficients. State: 'ηp² not directly comparable across designs; we report Cohen's f=.40 for meta-analysis.' Use ηp² within-study only.
Why it's wrong
Readers assume different defaults (SPSS users expect ηp², R users might see η²). Ambiguity prevents replication and meta-analysis. 'Effect size η²=.12' could be η² or ηp²—values differ substantially. Lack of transparency violates reporting standards (APA 7th, JARS).
The correction
ALWAYS specify: 'partial eta-squared (ηp²=.18)' or 'eta-squared (η²=.10)'. Include subscript 'p' to disambiguate. In tables, label column 'ηp²' not just 'η²'. Report software used: 'ηp² computed via SPSS GLM' or 'η² via effectsize::eta_squared(partial=FALSE)'.
Why it's wrong
ηp²=.20 does NOT mean '20% of total outcome variance explained.' It means '20% of DIET+ERROR variance explained by diet, ignoring exercise.' Total variance explained requires summing η² values (which don't add up neatly in factorial designs due to overlap). ηp² answers different question than R².
The correction
State: 'ηp²_Diet=.20 indicates diet explains 20% of variance after removing exercise and interaction effects' NOT 'diet explains 20% of total variance.' For total variance, report R² from regression model or use η² (noting it's biased in multifactor designs). ηp² is factor-specific partial metric.
Why it's wrong
ηp² values CAN sum to >1.0 because denominators differ across factors. ηp²_A uses SS_A + SS_error, ηp²_B uses SS_B + SS_error (shared SS_error counted twice). Example: ηp²_Diet=.20, ηp²_Exercise=.48, ηp²_Interaction=.18 → sum=.86 (appears reasonable) OR could sum to 1.2 (mathematically valid, not an error).
The correction
NEVER sum ηp² values. Each ηp² is independent partial metric. Report individually: 'Diet ηp²=.20, Exercise ηp²=.48, Interaction ηp²=.18.' If total variance needed, use η² (sum < 1.0 excluding error) or R² from regression. State: 'ηp² values not additive due to overlapping error variance in denominators.'
Why it's wrong
Cohen's benchmarks (.01/.06/.14) based on one-way ANOVA. In factorial designs with strong main effects, interaction ηp²=.05 can be meaningful (smaller than main effects but theoretically important). Context matters: interaction effect sizes typically smaller than main effects, but still consequential.
The correction
Apply benchmarks flexibly. For interactions, ηp²=.05-.10 often meaningful even if 'small' by Cohen's standards. Report: 'Interaction ηp²=.08, medium by Cohen but notable given large main effects (ηp²>.20).' Compare effect sizes within study, not rigidly to benchmarks. Contextualize: field norms, prior research, practical significance.
Why it's wrong
Significant interaction (ηp²_AxB=.12, p<.001) means main effects are CONDITIONAL—effect of A depends on level of B. Reporting 'main effect of A, ηp²=.25' without interaction misleads readers into thinking A's effect is uniform. Interaction supersedes main effects.
The correction
When interaction significant: (1) Report all effects (main + interaction); (2) Decompose interaction with simple effects or contrasts; (3) Plot interaction; (4) Interpret main effects cautiously: 'Main effect of Diet (ηp²=.20) qualified by Diet×Exercise interaction (ηp²=.12), indicating diet effectiveness varies by exercise level.' Interaction takes priority.
Why it's wrong
Sphericity violation (Mauchly's p<.05) inflates Type I error for F-test, compromising ηp² interpretation. Uncorrected F-test → biased p-value → unclear if ηp² reflects real effect or sphericity artifact. ηp² magnitude unaffected but statistical inference invalid.
The correction
For RM-ANOVA: (1) Test sphericity (Mauchly's); (2) If violated (p<.05), apply Greenhouse-Geisser (ε<.75) or Huynh-Feldt (ε>.75) correction to F-test; (3) Report: 'F(1.85, 214.3)=28.5, p<.001, ηp²=.20, Greenhouse-Geisser corrected.' ηp² itself doesn't need correction, but inference does. Multivariate approach (MANOVA) alternative.
Why it's wrong
Largest ηp² (e.g., Exercise ηp²=.48) might be theoretically trivial (exercise always helps), while smaller interaction (ηp²=.12) reveals novel mechanism (diet moderates exercise). Effect size ≠ importance. Interactions often most interesting findings even if ηp² smaller than main effects.
The correction
Interpret ALL significant effects, not just largest ηp². Prioritize by theory: 'Though Exercise showed largest effect (ηp²=.48), the Diet×Exercise interaction (ηp²=.12) is theoretically critical, revealing low-carb diets uniquely benefit from intense exercise.' Plot interactions, conduct simple effects tests. Small ηp² interactions can be high-impact findings.
Why it's wrong
ηp² = variance explained after REMOVING other effects (partial correlation). Semi-partial r² = UNIQUE variance explained by factor (increment in R²). In regression: ηp² > sr². Example: ηp²_A=.20 (20% of A+error), sr²_A=.05 (5% unique variance after accounting for B). Different metrics, different interpretations.
The correction
ηp² appropriate for ANOVA framework (factorial, RM). For unique variance contributions, use semi-partial r² or ΔR² from hierarchical regression. State: 'We report ηp² (standard for ANOVA), which quantifies partial variance. For unique variance, see regression analysis in supplementary materials (sr²).' Don't conflate partial vs unique variance.
13Academic Lineage

References

Scholarly lineage and citation keys grounding the statistical framework.

We stand on the shoulders of giants. Honor the source of the method.
Academic Lineage
[1]
Richardson, J. T. E. (2011). Eta squared and partial eta squared as measures of effect size in educational research. Educational Research Review, 6(2), 135-147.
Comprehensive tutorial on η² vs ηp² in ANOVA, calculation, interpretation, and when to use each. Discusses bias and comparability across designs. Essential reading.
doi: 10.1016/j.edurev.2010.12.001
[2]
Lakens, D. (2013). Calculating and reporting effect sizes to facilitate cumulative science: A practical primer for t-tests and ANOVAs. Frontiers in Psychology, 4, 863.
Practical guide to effect size computation in R and SPSS. Includes worked examples, code, and recommendations for factorial ANOVA. Open access.
doi: 10.3389/fpsyg.2013.00863
[3]
Cohen, J. (1988). Statistical Power Analysis for the Behavioral Sciences (2nd ed.). Lawrence Erlbaum Associates.
Seminal source for effect size benchmarks (.01/.06/.14) and conversion formulas (ηp² to Cohen's f). Foundation for power analysis in G*Power and other software.
[4]
Olejnik, S., & Algina, J. (2003). Generalized eta and omega squared statistics: Measures of effect size for some common research designs. Psychological Methods, 8(4), 434-447.
Advanced paper on generalized effect sizes for complex designs (repeated measures, mixed models, ANCOVA). Addresses comparability issues with ηp² across studies.
doi: 10.1037/1082-989X.8.4.434
[5]
Pierce, C. A., Block, R. A., & Aguinis, H. (2004). Cautionary note on reporting eta-squared values from multifactor ANOVA designs. Educational and Psychological Measurement, 64(6), 916-924.
Critical examination of ηp² interpretation and common mistakes. Discusses why ηp² values can sum to >1.0 and implications for meta-analysis. Highly cited.
doi: 10.1177/0013164404264848
[6]
American Psychological Association. (2020). Publication Manual of the American Psychological Association (7th ed.).
APA standards for reporting effect sizes. Recommends reporting effect size with CI for all inferential tests. Specifies ηp² as appropriate for factorial ANOVA (Section 6.32).
Partial variance is a spotlight. It allows you to see the signal clearly by turning off the lights of every other variable. Use it to find the truth that stands alone.
The Interpretive Rigor Directive
statminds · PartialMind reference · v2.2 · updated 2026-01-1715 of 15 sections