In Six Sigma, selecting the right statistical tool is crucial. Some processes involve non-normal data or outliers. In such cases, mean-based tests like t-tests or ANOVA can mislead. That’s where Mood’s Median Test becomes useful.
Mood’s Median Test helps compare the medians of two or more groups. It’s a non-parametric test, meaning it does not assume any specific data distribution. This makes it ideal for Lean Six Sigma projects dealing with real-world, messy data.
- What Is Mood’s Median Test?
- Why Use the Median Instead of the Mean?
- Mood’s Median Test vs. Other Tests
- When to Use Mood’s Median Test in Six Sigma
- How Mood’s Median Test Works
- Step-by-Step Example with Calculation
- Six Sigma Application
- When to Choose Mood’s Median Over Other Tests
- Advantages of Mood’s Median Test
- Limitations of Mood’s Median Test
- Tips for Using Mood’s Median Test in Six Sigma
- Tools That Support the Test
- Real-World Examples
- Mood’s Median vs. Kruskal-Wallis
- Python Code Example
- Conclusion
What Is Mood’s Median Test?
Mood’s Median Test checks whether multiple independent groups share the same median. Instead of looking at means, it focuses on how values fall above or below the overall median. The test uses a Chi-square statistic to determine significance.
It’s most useful when:
- Your data is ordinal or skewed
- You have outliers
- You are comparing more than two groups
Why Use the Median Instead of the Mean?
The mean is sensitive to outliers. A few extreme values can skew it. The median, however, is more robust. It reflects the true central tendency of skewed or non-normal data.
| Measure | Description | Sensitive to Outliers? |
|---|---|---|
| Mean | Average of all values | Yes |
| Median | Middle value in sorted list | No |
When process data includes spikes or irregular distributions, the median provides better insights. That’s where Mood’s Median Test shines.
Mood’s Median Test vs. Other Tests
Understanding where Mood’s Median Test fits among other tests is key.
| Test | Compares | Assumes Normality | Sensitive to Outliers? | Uses Median? |
|---|---|---|---|---|
| t-test | Means (2 groups) | Yes | Yes | No |
| ANOVA | Means (2+ groups) | Yes | Yes | No |
| Mann-Whitney U | Medians (2 groups) | No | Less | Yes |
| Kruskal-Wallis | Medians (2+ groups) | No | Less | Yes |
| Mood’s Median | Medians (2+ groups) | No | No | Yes |
Mood’s Median is particularly useful when data contains extreme values or when sample sizes differ greatly.
When to Use Mood’s Median Test in Six Sigma
In Six Sigma, decisions are driven by data. Choosing the right statistical method ensures valid conclusions. Use Mood’s Median Test when:
- You compare two or more independent samples.
- Your data is ordinal or skewed.
- You suspect outliers that could distort the mean.
- You want to test for median differences, not means.
Here are some Six Sigma scenarios where this test is useful:
| Scenario | Description |
|---|---|
| Process shift analysis | Compare median defect levels before and after a change |
| Supplier comparison | Evaluate median delivery times of different vendors |
| Equipment performance | Compare output medians from different machines |
How Mood’s Median Test Works
Mood’s Median Test is simple in logic. Here’s the breakdown:
- Combine all values from all groups.
- Find the overall median.
- For each group, classify values as either:
- Above median
- Below median
- Create a contingency table.
- Perform a Chi-square test.
Interpreting Results
Like other hypothesis tests, Mood’s Median Test involves:
- Null Hypothesis (H₀): All groups have the same median.
- Alternative Hypothesis (H₁): At least one group has a different median.
P-Value
- If p < 0.05, reject the null hypothesis.
- If p ≥ 0.05, do not reject the null hypothesis.
The p-value indicates if differences are statistically significant.
Step-by-Step Example with Calculation
Let’s say we want to compare cycle times from three operators.
Data
| Operator A | Operator B | Operator C |
|---|---|---|
| 10 | 12 | 15 |
| 11 | 13 | 16 |
| 10 | 12 | 17 |
Step 1: Pool All Data
Combined data = [10, 11, 10, 12, 13, 12, 15, 16, 17]
Sorted = [10, 10, 11, 12, 12, 13, 15, 16, 17]
Step 2: Find the Overall Median
There are 9 values. The middle (5th value) is 12, so:
Overall median = 12
Step 3: Classify Each Value
We count how many values from each group are:
- Below the median (<12)
- Above the median (>12)
Values equal to the median (12) are excluded from the analysis.
| Group | Values | <12 | >12 |
|---|---|---|---|
| A | 10, 11, 10 | 3 | 0 |
| B | 12, 13, 12 | 0 | 1 |
| C | 15, 16, 17 | 0 | 3 |
Step 4: Create Chi-Square Table
Build a 2×3 contingency table:
| Group | Below Median | Above Median | Row Total |
|---|---|---|---|
| Operator A | 3 | 0 | 3 |
| Operator B | 0 | 1 | 1 |
| Operator C | 0 | 3 | 3 |
| Column Total | 3 | 4 | 7 |
Step 5: Calculate Expected Counts
We calculate expected values for each cell using:
| Below Median | Above Median | |
|---|---|---|
| Operator A | (3×3)/7 = 1.29 | (3×4)/7 = 1.71 |
| Operator B | (1×3)/7 = 0.43 | (1×4)/7 = 0.57 |
| Operator C | (3×3)/7 = 1.29 | (3×4)/7 = 1.71 |
Step 6: Compute Chi-Square Statistic
Use the formula:
Where O = observed count, E = expected count.
| Group | Cell | O | E | (O-E)²/E |
|---|---|---|---|---|
| A | Below | 3 | 1.29 | 2.24 |
| A | Above | 0 | 1.71 | 1.71 |
| B | Below | 0 | 0.43 | 0.43 |
| B | Above | 1 | 0.57 | 0.37 |
| C | Below | 0 | 1.29 | 1.29 |
| C | Above | 3 | 1.71 | 0.97 |
| Total | – | – | – | 6.99 |
Step 7: Determine Significance
Now let’s calculate the degrees of freedom to determine the significance:
Degrees of Freedom (df) = (Rows – 1) × (Columns – 1)
df = (3 – 1) × (2 – 1) = 2
Using a Chi-square table:

- Critical value at α = 0.05 and df = 2 ≈ 5.99
- Our χ² = 6.99 > 5.99
Conclusion: Reject the null hypothesis.
At least one operator has a different median cycle time.
Six Sigma Application
Problem
A Six Sigma team wants to improve throughput. They suspect Operator C is slower. But their data includes outliers from machine warmups.
Why Use Mood’s Median Test?
- Data is not normally distributed
- Contains extreme values
- Median is more reliable than mean
Action Plan
- Conduct Mood’s Median Test (as shown).
- Determine significance.
- Investigate Operator C’s work methods.
- Apply improvement tools (5S, Standard Work, SMED).
When to Choose Mood’s Median Over Other Tests
Let’s compare popular non-parametric tests:
| Test | Data Type | Groups | Measures | Robust to Outliers? |
|---|---|---|---|---|
| Mann-Whitney U | Ordinal | 2 | Ranks | Somewhat |
| Kruskal-Wallis | Ordinal | 2+ | Ranks | Somewhat |
| Mood’s Median | Ordinal | 2+ | Medians | Yes |
Mood’s Median Test excels when outliers are present and median is the statistic of interest.
Advantages of Mood’s Median Test
Why use this test over others?
- Handles outliers well
- No assumption of equal variance
- Works with ordinal or skewed data
- Easy to interpret results
It’s ideal in environments where data quality varies or normality is questionable.
Limitations of Mood’s Median Test
Despite its benefits, the test has limitations:
| Limitation | Explanation |
|---|---|
| Less powerful | Compared to ANOVA or Kruskal-Wallis |
| Ignores magnitude | Only considers counts above/below median |
| Excludes ties | Values equal to the median are not used |
| Requires independence | Groups must be independent |
Understanding these limitations ensures appropriate use.
Tips for Using Mood’s Median Test in Six Sigma
- Use during Analyze phase of DMAIC.
- Test assumptions first—ensure independent samples.
- Visualize data using box plots before testing.
- Combine with other methods like Pareto charts or control charts.
- Document your rationale for choosing the test in your project report.
Tools That Support the Test
You can use several software options:
| Tool | Supports Mood’s Median Test? |
|---|---|
| Minitab | Yes (via nonparametric analysis) |
| JMP | Yes (through contingency setup) |
| Python | Yes (manual calculation or SciPy) |
| R | Yes (mood.test() or custom code) |
| Excel | Yes (manual chi-square test) |
Real-World Examples
Manufacturing
A factory measures thickness from three coating machines. The data has some extreme values due to nozzle clogging. Mood’s Median Test helps compare medians without distortion.
Healthcare
A hospital compares patient wait times across three departments. Due to a few extreme delays, the median is more reliable. Mood’s Median Test highlights which department deviates.
Logistics
A warehouse compares shipment times by region. Some long delays skew the data. Mood’s Median Test reveals regional differences without letting outliers dominate.
Mood’s Median vs. Kruskal-Wallis
Both tests are non-parametric and compare multiple groups. But they differ:
| Feature | Mood’s Median | Kruskal-Wallis |
|---|---|---|
| Focus | Median | Distribution rank |
| Outlier Impact | Very low | Low |
| Data Consideration | Above/below median | All ranks used |
| Power | Lower | Higher |
| Use Case | Strong outliers or median focus | Ranked comparisons |
Choose Mood’s Median when the median is your key interest or when outliers are severe.
Python Code Example
Here’s a Python script to replicate our example:
pythonCopyEditimport pandas as pd
import scipy.stats as stats
# Operator data
a = [10, 11, 10]
b = [12, 13, 12]
c = [15, 16, 17]
# Combine and find median
all_data = a + b + c
median = pd.Series(all_data).median()
# Count above/below median
def count_above_below(group, median):
above = sum(x > median for x in group)
below = sum(x < median for x in group)
return [below, above]
data = [count_above_below(a, median),
count_above_below(b, median),
count_above_below(c, median)]
# Chi-square test
chi2, p, _, _ = stats.chi2_contingency(data)
print("Chi-square:", chi2)
print("P-value:", p)
Output:
makefileCopyEditChi-square: 6.99
P-value: 0.030
Since p < 0.05, we reject the null hypothesis.
Conclusion
Mood’s Median Test is a valuable tool for Six Sigma practitioners. It compares medians across groups without being thrown off by extreme values or non-normal data. It’s best used when:
- Outliers are present
- The data is ordinal
- Median is a better measure than the mean
By walking through the test manually and with Python, you now understand how to use it confidently in real projects. It provides a clear, robust alternative when traditional tools fall short.




