Arte SheetsLearn. Try. Understand.

Biostatistics & Clinical Trials

Bowker Symmetry and Stuart-Maxwell Marginal Homogeneity on 3x3 Tables

Extend McNemar’s paired test to 3x3 ordinal rating tables using Bowker’s 3-df off-diagonal symmetry chi-square and Stuart-Maxwell’s 2-df marginal homogeneity quadratic form.

Calculate exact off-diagonal and marginal shifts on a 3x3 pre-post table

McNemar’s test handles 2x2 paired binary shifts, but clinical severity scales (Mild / Moderate / Severe) or 3-tier credit migrations form a 3x3 table in B2:D4 where diagonal cells (B2, C3, D4) represent unchanged subjects. Bowker (1948) tests full off-diagonal symmetry H0: p_ij = p_ji across all three mirror pairs (df = 3), whereas Stuart-Maxwell (1955, 1970) tests whether the row and column marginal distributions agree (df = 2).

Enter exact pre-post counts: Row 1 (Mild) = 25, 16, 9 (sum = 50); Row 2 (Mod) = 4, 30, 15 (sum = 49); Row 3 (Sev) = 1, 5, 20 (sum = 26). By hand, Bowker’s three terms are (16 - 4)^2 / (16 + 4) = 144 / 20 = 7.20, (9 - 1)^2 / (9 + 1) = 64 / 10 = 6.40, and (15 - 5)^2 / (15 + 5) = 100 / 20 = 5.00, summing to X2_Bowker = 18.60! Marginal differences d1 = 50 - 30 = 20 and d2 = 49 - 51 = -2 with v11 = 30, v22 = 40, v12 = -20 give exact Stuart-Maxwell X2_SM = 14,520 / 800 = 18.15.

Paired 3x3 StatisticExact Algebraic FormulaSample Output
Bowker Pair (1,2) + (1,3) + (2,3)7.20 + 6.40 + 5.00 (df = 3, crit = 7.815)18.60
Marginal Shifts d1, d2, d3R_i - C_i for Mild, Mod, Severe+20, -2, -18 (Sums to 0)
Stuart-Maxwell Covariance Detv11*v22 - v12^2 = 30*40 - (-20)^2800
Stuart-Maxwell X2_SM (df = 2)(v22*d1^2 - 2*v12*d1*d2 + v11*d2^2) / Det18.15 (crit = 5.991)

Bowker 3x3 Off-Diagonal Symmetry Chi-Square Formula

Guard any zero discordant pair (n_ij + n_ji = 0) with IF so the formula safely contributes 0 for empty mirror pairs rather than #DIV/0!.

=LET(s_12, B3 + C2, s_13, B4 + D2, s_23, C4 + D3, IF(s_12 + s_13 + s_23 = 0, "No Discordant Shifts", ROUND(IF(s_12 = 0, 0, (B3 - C2)^2 / s_12) + IF(s_13 = 0, 0, (B4 - D2)^2 / s_13) + IF(s_23 = 0, 0, (C4 - D3)^2 / s_23), 4)))

Stuart-Maxwell 2-df Marginal Homogeneity Formula

Invert the 2x2 marginal difference covariance matrix explicitly inside LET. Notice that diagonal unchanged counts (25, 30, 20) cancel out completely: changing B2 from 25 to 250 leaves both Bowker (18.60) and Stuart-Maxwell (18.15) invariant!

=LET(s_12, B3 + C2, s_13, B4 + D2, s_23, C4 + D3, d_1, SUM(B2:D2) - SUM(B2:B4), d_2, SUM(B3:D3) - SUM(C2:C4), v_11, s_12 + s_13, v_22, s_12 + s_23, v_12, -s_12, det_v, v_11 * v_22 - v_12^2, IF(det_v <= 0, "Singular Marginals", ROUND((v_22 * d_1^2 - 2 * v_12 * d_1 * d_2 + v_11 * d_2^2) / det_v, 4)))

Try the example

Use the original values or change them to test your understanding.

Further reading