This calculator performs the Games-Howell post-hoc test, a robust alternative to Tukey's HSD when your data violates the assumption of equal variances (homogeneity of variance). Unlike Tukey's HSD, the Games-Howell test doesn't require equal variances or equal sample sizes, making it ideal for real-world data where these conditions are rarely perfectly met.
💡 When to Use Games-Howell: Use this test when Levene's test or similar variance tests indicate unequal variances across groups. If variances are equal, use ourTukey's HSD Test Calculatorinstead for slightly more power. The Games-Howell test is particularly valuable when group sizes are unequal.
Ready to analyze your groups with unequal variances? or to see how it works, or upload your own data to discover which groups truly differ.
The Games-Howell Test is a post-hoc test used after ANOVA to determine which specific groups differ from each other when the assumption of equal variances is violated. It's particularly robust when group sizes are unequal and doesn't require equal variances across groups.
Test Statistic:
Where:
Degrees of Freedom (Welch-Satterthwaite):
Use games_howell_test() function from rstatix package or oneway() from userfriendlyscience package.
library(tidyverse)
library(rstatix)
# sample data with unequal variances
data <- tibble(
group = rep(c("A", "B", "C"), each = 10),
values = c(
rnorm(10, mean = 25, sd = 3), # Group A: small variance
rnorm(10, mean = 50, sd = 2), # Group B: large variance
rnorm(10, mean = 32, sd = 5) # Group C: medium variance
)
) |>
mutate(group = as.factor(group))
# Check for homogeneity of variance (should be violated for Games-Howell)
car::leveneTest(values ~ group, data = data)
games_howell_test(data, values ~ group)Use posthoc_gameshowell() function from scikit_posthocs package.
import pandas as pd
import numpy as np
from scipy import stats
from scikit_posthocs import posthoc_gameshowell
# Sample data with unequal variances
np.random.seed(42)
group_A = np.random.normal(25, 3, 10) # Small variance
group_B = np.random.normal(40, 8, 10) # Large variance
group_C = np.random.normal(32, 5, 10) # Medium variance
# Create DataFrame
data = pd.DataFrame({
'values': np.concatenate([group_A, group_B, group_C]),
'group': ['A']*10 + ['B']*10 + ['C']*10
})
# Check for homogeneity of variance (should be violated)
from scipy.stats import levene
stat, p = levene(group_A, group_B, group_C)
print(f"Levene's test: W = {stat:.4f}, p = {p:.4f}")
# Perform Games-Howell test
gh_result = posthoc_gameshowell(data, val_col='values', group_col='group')
print("\nGames-Howell Test Results:")
print(gh_result)This calculator performs the Games-Howell post-hoc test, a robust alternative to Tukey's HSD when your data violates the assumption of equal variances (homogeneity of variance). Unlike Tukey's HSD, the Games-Howell test doesn't require equal variances or equal sample sizes, making it ideal for real-world data where these conditions are rarely perfectly met.
💡 When to Use Games-Howell: Use this test when Levene's test or similar variance tests indicate unequal variances across groups. If variances are equal, use ourTukey's HSD Test Calculatorinstead for slightly more power. The Games-Howell test is particularly valuable when group sizes are unequal.
Ready to analyze your groups with unequal variances? or to see how it works, or upload your own data to discover which groups truly differ.
The Games-Howell Test is a post-hoc test used after ANOVA to determine which specific groups differ from each other when the assumption of equal variances is violated. It's particularly robust when group sizes are unequal and doesn't require equal variances across groups.
Test Statistic:
Where:
Degrees of Freedom (Welch-Satterthwaite):
Use games_howell_test() function from rstatix package or oneway() from userfriendlyscience package.
library(tidyverse)
library(rstatix)
# sample data with unequal variances
data <- tibble(
group = rep(c("A", "B", "C"), each = 10),
values = c(
rnorm(10, mean = 25, sd = 3), # Group A: small variance
rnorm(10, mean = 50, sd = 2), # Group B: large variance
rnorm(10, mean = 32, sd = 5) # Group C: medium variance
)
) |>
mutate(group = as.factor(group))
# Check for homogeneity of variance (should be violated for Games-Howell)
car::leveneTest(values ~ group, data = data)
games_howell_test(data, values ~ group)Use posthoc_gameshowell() function from scikit_posthocs package.
import pandas as pd
import numpy as np
from scipy import stats
from scikit_posthocs import posthoc_gameshowell
# Sample data with unequal variances
np.random.seed(42)
group_A = np.random.normal(25, 3, 10) # Small variance
group_B = np.random.normal(40, 8, 10) # Large variance
group_C = np.random.normal(32, 5, 10) # Medium variance
# Create DataFrame
data = pd.DataFrame({
'values': np.concatenate([group_A, group_B, group_C]),
'group': ['A']*10 + ['B']*10 + ['C']*10
})
# Check for homogeneity of variance (should be violated)
from scipy.stats import levene
stat, p = levene(group_A, group_B, group_C)
print(f"Levene's test: W = {stat:.4f}, p = {p:.4f}")
# Perform Games-Howell test
gh_result = posthoc_gameshowell(data, val_col='values', group_col='group')
print("\nGames-Howell Test Results:")
print(gh_result)