Atlas
statminds
CorrelationThe 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

Goodman-Kruskal Gamma (γ)

Symmetric ordinal association measure based on concordant and discordant pairs; ignores all ties, ranges from -1 to +1..

Model familyCorrelation
Hypothesistwo-tailed
AliasesGamma coefficient · γ · Goodman-Kruskal gamma
G1
association
G2
description
1

What is it?

Goodman-Kruskal Gamma measures ordinal or nominal association strength, evaluating concordances or error reduction when predicting categories.

2

When to use it

  • Gamma / Somers' D: Ordinal scales where ties exist (ignores ties in Gamma, penalizes in Somers).
  • Lambda: Nominal tables measuring predictive error reduction (proportional reduction in error).
3

Core Idea

These ordinal tests check if ranks match or if categorical labels can predict outcome groupings:

DiscordantConcordant
4

Hypotheses

H₀: No ordinal/nominal association is present
Hₐ: Association is statistically significant
5

How it works

  1. Construct cross-tabulated ordinal categories.
  2. Evaluate concordant pair paths vs. discordant paths.
  3. Compute the specific ratio index (e.g. Gamma = (C-D)/(C+D)).
  4. Compute significance approximation.
6

Assumptions

🔢 Scale: Ordinal categories (Gamma/Somers) or nominal groupings (Lambda).
👤 Independence: Independent observations.
7

Important Note

💡 Ties Sensitivity: Gamma ignores ties, which can overestimate association strength in tables with high ties. Somers' D adjusts for ties on the dependent variable.

8

Quick Example

Likert ScaleAgreeNeutralDisagree
Male241512
Female182010
Interactive Sandbox

Goodman-Kruskal Gamma Laboratory

Manipulate association strength to see how sample dots shift between cell categories.

Presets
Association Level0.45
Sample Size (N)80
Grid Dot Density (3x3 Matrix Space)Observe diagonal alignment shifts
Concordance Matrix
MetricValue
Concordant Pairs (C)1789
Discordant Pairs (D)88
Calculated Score0.9062
Significance approx. p0.0003
Statistical Verdict
✅ Reject H₀ (Significant)
Ordinal association is statistically significant (Score = 0.91, p = 0.0003).
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₀: γ = 0 (no monotonic association between variables)

Alternative · Hₐ

Hₐ: γ ≠ 0 (monotonic association exists)

Why it matters two-tailed

Tests symmetric monotonic association based purely on concordant vs discordant pairs. Unlike Kendall's tau-b (adjusts for all ties) or Somers' D (adjusts asymmetrically), gamma completely ignores tied pairs. Can be one-tailed if direction predicted a priori. Gamma typically larger than tau-b for same data due to tie exclusion.

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
6
Assumptions
3
Critical / High Severity
How to check
Quick
Verify both variables are ordinal: Likert scales (strongly disagree to strongly agree), rankings (1st, 2nd, 3rd), ordered categories (low/medium/high), educational levels (HS < Bachelor's < Master's). Ensure ordering is conceptually meaningful
Rigorous
Check that categories have clear ordering principle. Test whether collapsing adjacent categories makes theoretical sense (e.g., can combine 'agree' and 'strongly agree'). If no natural ordering exists (e.g., colors, religions, political parties), variables are nominal and gamma is inappropriate
If violated
If variables are nominal (unordered): use Cramér's V, phi coefficient, or chi-square test for independence. If one variable nominal and other ordinal: use eta coefficient or Kruskal-Wallis. If variables are interval/ratio with normal distributions: use Pearson correlation. Gamma requires meaningful ordering on both variables
cramers vkruskal wallispearson correlation
How to check
Quick
Create contingency table heatmap. Look for consistent diagonal pattern (positive: high frequencies on diagonal from bottom-left to top-right) or anti-diagonal pattern (negative association). Check if relationship reverses direction at any point
Rigorous
Visual inspection of cross-tabulation with row/column percentages. Plot mean ranks of one variable across categories of other variable - should show linear trend. If U-shaped, inverted-U, or changing direction: relationship is non-monotonic and gamma inappropriate
If violated
If relationship is non-monotonic (U-shaped, inverted-U): (1) Transform variables to linearize if possible; (2) Use polynomial ordinal regression; (3) Split data at inflection point and analyze separately; (4) Use distance correlation (detects any dependency). Gamma assumes monotonic trends - non-monotonic relationships will show weak gamma despite strong associations
How to check
Quick
Review study design: each row should be unique independent observation. Check for repeated measures (same subject measured multiple times), clustering (students within schools), matched pairs, or time series dependencies (temporal autocorrelation)
Rigorous
Verify study design ensures independence. Check for duplicate subject IDs. If clustered data: test intra-class correlation (ICC). If time series: check autocorrelation (ACF plots). If matched pairs: standard gamma is inappropriate without adjustment
If violated
If repeated measures: use multilevel ordinal models with random effects for subjects. If clustered data: use cluster-robust standard errors or multilevel correlation. If matched pairs: use marginal homogeneity tests (Stuart-Maxwell) or McNemar-Bowker test. If time series: use ordinal time series models or lag-adjusted correlations. Never ignore dependence
mcnemarbowkergee
How to check
Quick
Check frequency of tied values. Gamma formula: γ = (C - D) / (C + D) where C = concordant pairs, D = discordant pairs. Tied pairs (same value on either variable) are excluded. If >50% of pairs are tied, gamma may overestimate association strength
Rigorous
Calculate proportion of tied pairs: ties = 1 - (C + D) / total_pairs. Compare gamma with Kendall's tau-b (adjusts for ties): if gamma >> tau-b, many ties exist. Examine contingency table: if clustering at specific values, ties are prevalent. Gamma is insensitive to tie structure
If violated
Gamma is designed to ignore ties - this is intentional, not a violation. If you want to account for ties: use Kendall's tau-b (adjusts for both variables' ties) or Somers' D (asymmetric tie adjustment). If extremely many ties (>70% of pairs): consider whether data is truly ordinal or effectively nominal - may need chi-square test. Gamma's tie-free nature makes it useful for comparing associations across studies with different tie structures
kendall tau bsomers dkendall tau c
How to check
Quick
Check n ≥ 30 for stable estimates. For contingency tables: ensure adequate cell counts (expected counts ≥ 5 in most cells, or at minimum no completely empty cells). Small samples (n < 20) produce unreliable estimates and wide confidence intervals
Rigorous
Conduct power analysis: for γ = 0.3, α = .05, power = .80, need n ≈ 70-80. Check contingency table for sparse cells. Use exact permutation tests for small samples. Gamma typically requires smaller samples than tau-b for same power because it ignores ties (less information lost)
If violated
If n < 30: use exact permutation tests or bootstrap confidence intervals instead of asymptotic approximations. Report effect size (gamma) with 95% CI regardless of significance. Consider collapsing ordinal categories to increase cell counts (but lose ordinal information). If many sparse cells: consider ordinal logistic regression. Increase sample size if feasible
How to check
Quick
Gamma is symmetric: γ(X,Y) = γ(Y,X). Use when: (1) no clear temporal ordering; (2) both variables measured simultaneously; (3) exploratory analysis of association; (4) comparing bidirectional relationships. If clear DV/IV: consider Somers' D instead
Rigorous
Evaluate research question: is there theoretical or temporal reason to designate one variable as dependent? If yes (e.g., education → income), Somers' D may be more appropriate for PRE interpretation. If no clear direction (e.g., two personality traits): gamma is appropriate. Gamma does not provide asymmetric PRE interpretation
If violated
Not really a violation - gamma's symmetry is a feature. If you need asymmetric association (clear IV→DV): use Somers' D which provides PRE (proportional reduction in error) interpretation. If bidirectional causation possible: report both Somers' Dyx and Dxy. Gamma is ideal for purely descriptive symmetric associations where neither variable is clearly dependent
somers d
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. Cross-tabulation (contingency table) to visualize association pattern
  2. Check for monotonic diagonal or anti-diagonal pattern
  3. Examine 95% confidence interval for gamma
  4. Calculate proportion of concordant vs discordant pairs
  5. Verify sample size and cell counts are adequate
Recommended checks
  1. Heatmap or mosaic plot of contingency table
  2. Compare gamma with Kendall's tau-b to assess tie influence
  3. Calculate percentage of tied pairs to understand why gamma differs from tau-b
  4. Stacked bar chart showing conditional distributions
  5. Sensitivity analysis: robustness to category collapsing
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

Political Ideology × Policy Support (Symmetric Ordinal Association)

Research question: Is political ideology (liberal to conservative) associated with support for environmental policy? Design: Survey of 180 voters rating ideology (5-point: very liberal to very conservative) and policy support (5-point: strongly oppose to strongly support). Both ordinal, symmetric relationship (no clear DV/IV). Hypothesis: More liberal ideology associated with greater policy support.

DesignCross-sectional survey, symmetric association
# Goodman-Kruskal Gamma: Political Ideology × Policy Support
# Symmetric ordinal association (no clear DV/IV)

library(tidyverse)
library(DescTools)   # For GoodmanKruskalGamma
library(vcd)         # For mosaic plots
library(MASS)        # For ordinal regression

set.seed(2025)
n <- 180

# Political ideology (1-5: very liberal to very conservative)
ideology <- sample(1:5, n, replace = TRUE,
                   prob = c(0.20, 0.25, 0.30, 0.15, 0.10))

# Policy support (1-5) strongly associated with ideology
# More liberal (low ideology) → more support (high policy)
latent_support <- 6 - 0.9 * ideology + rnorm(n, 0, 0.8)
policy_support <- cut(latent_support,
                      breaks = c(-Inf, 1.5, 2.5, 3.5, 4.5, Inf),
                      labels = 1:5)
policy_numeric <- as.numeric(policy_support)

data <- data.frame(
  respondent_id = 1:n,
  ideology = factor(ideology, levels = 1:5,
                    labels = c("Very Liberal", "Liberal", "Moderate",
                              "Conservative", "Very Conservative")),
  ideology_num = ideology,
  policy_support = factor(policy_numeric, levels = 1:5,
                         labels = c("Strongly Oppose", "Oppose", "Neutral",
                                   "Support", "Strongly Support")),
  policy_num = policy_numeric
)

head(data, 10)

# === STEP 1: Descriptive Statistics ===

cat("=== FREQUENCY DISTRIBUTIONS ===\n")
cat("\nPolitical Ideology:\n")
table(data$ideology)
cat("\nEnvironmental Policy Support:\n")
table(data$policy_support)

# === STEP 2: Cross-Tabulation ===

cat("\n=== CONTINGENCY TABLE ===\n")
contab <- table(data$ideology, data$policy_support)
print(contab)

cat("\n=== ROW PERCENTAGES(% within each ideology level) ===\n")
print(round(prop.table(contab, margin = 1) * 100, 1))

# Heatmap
library(pheatmap)
pheatmap(contab,
         cluster_rows = FALSE,
         cluster_cols = FALSE,
         display_numbers = TRUE,
         main = "Ideology × Policy Support(Frequencies)",
         xlab = "Policy Support",
         ylab = "Political Ideology")

# Mosaic plot
mosaic(~ ideology + policy_support, data = data,
       shade = TRUE, legend = TRUE,
       main = "Mosaic: Political Ideology × Policy Support")

# === STEP 3: Compute Goodman-Kruskal Gamma ===

cat("\n=== GOODMAN-KRUSKAL GAMMA ===\n")

# Gamma (ignores all tied pairs)
gamma_result <- GoodmanKruskalGamma(data$ideology_num, data$policy_num,
                                    conf.level = 0.95)

cat(sprintf("Gamma(γ) = %.3f\n", gamma_result[1]))
cat(sprintf("95%% CI: [%.3f, %.3f]\n", gamma_result[2], gamma_result[3]))

# === STEP 4: Concordant and Discordant Pairs ===

n_pairs <- n * (n - 1) / 2

# Calculate manually
concordant <- sum(outer(data$ideology_num, data$ideology_num, "<") &
                  outer(data$policy_num, data$policy_num, "<")) +
              sum(outer(data$ideology_num, data$ideology_num, ">") &
                  outer(data$policy_num, data$policy_num, ">"))

discordant <- sum(outer(data$ideology_num, data$ideology_num, "<") &
                  outer(data$policy_num, data$policy_num, ">")) +
              sum(outer(data$ideology_num, data$ideology_num, ">") &
                  outer(data$policy_num, data$policy_num, "<"))

cat(sprintf("\nTotal pairs: %.0f\n", n_pairs))
cat(sprintf("Concordant pairs: %d(%.1f%%)\n",
            concordant, 100 * concordant / n_pairs))
cat(sprintf("Discordant pairs: %d(%.1f%%)\n",
            discordant, 100 * discordant / n_pairs))
cat(sprintf("Tied pairs: %d(%.1f%%)\n",
            n_pairs - concordant - discordant,
            100 * (n_pairs - concordant - discordant) / n_pairs))

cat("\nNote: Gamma = (C - D) / (C + D), ignoring tied pairs\n")
cat(sprintf("Manual calculation: (%.0f - %.0f) / (%.0f + %.0f) = %.3f\n",
            concordant, discordant, concordant, discordant,
            (concordant - discordant) / (concordant + discordant)))

# === STEP 5: Compare with Kendall's Tau-b ===

cat("\n=== COMPARISON WITH KENDALL'S TAU-B ===\n")

tau_b <- cor(data$ideology_num, data$policy_num, method = "kendall")
cat(sprintf("Kendall's tau-b = %.3f\n", tau_b))
cat(sprintf("Gamma = %.3f\n", gamma_result[1]))
cat(sprintf("Ratio γ/τb = %.2f\n", gamma_result[1] / tau_b))

cat("\nWhy gamma > tau-b:\n")
cat("  Gamma ignores tied pairs(focuses on concordant vs discordant)\n")
cat("  Tau-b adjusts for ties, diluting the association\n")
cat("  Gamma typically 1.2-1.5× larger than tau-b for same data\n")

# === STEP 6: Statistical Significance Testing ===

cat("\n=== HYPOTHESIS TEST ===\n")

# Asymptotic test using CI
ci_width <- gamma_result[3] - gamma_result[2]
se_approx <- ci_width / (2 * 1.96)
z_stat <- gamma_result[1] / se_approx
p_value <- 2 * pnorm(-abs(z_stat))

cat(sprintf("z-statistic = %.2f\n", z_stat))
cat(sprintf("p-value = %.4f\n", p_value))

if (p_value < 0.001) {
  cat("Result: Highly significant(p < .001)\n")
} else if (p_value < 0.05) {
  cat("Result: Significant(p < .05)\n")
} else {
  cat("Result: Not significant(p ≥ .05)\n")
}

# === STEP 7: Effect Size Interpretation ===

cat("\n=== EFFECT SIZE INTERPRETATION ===\n")
cat("Gamma magnitude guidelines:\n")
cat("  |γ| < 0.1: negligible\n")
cat("  0.1 ≤ |γ| < 0.3: small\n")
cat("  0.3 ≤ |γ| < 0.6: moderate\n")
cat("  |γ| ≥ 0.6: large\n\n")

gamma_val <- abs(gamma_result[1])
if (gamma_val < 0.1) {
  strength <- "negligible"
} else if (gamma_val < 0.3) {
  strength <- "small"
} else if (gamma_val < 0.6) {
  strength <- "moderate"
} else {
  strength <- "large"
}

cat(sprintf("Observed γ = %.3f: %s effect\n", gamma_result[1], strength))

# PRE interpretation for gamma
cat("\nPRE interpretation(for concordant vs discordant pairs only):\n")
cat(sprintf("Of pairs that are not tied, %.0f%% more are concordant than discordant\n",
            abs(gamma_result[1]) * 100))

# === STEP 8: Visualization ===

cat("\n=== VISUALIZATIONS ===\n")

# Stacked bar chart
ggplot(data, aes(x = ideology, fill = policy_support)) +
  geom_bar(position = "fill") +
  scale_y_continuous(labels = scales::percent) +
  scale_fill_brewer(palette = "RdYlGn", direction = -1) +
  labs(title = "Policy Support by Political Ideology",
       subtitle = sprintf("Gamma = %.2f (%s negative association)",
                         gamma_result[1], strength),
       x = "Political Ideology",
       y = "Proportion",
       fill = "Policy Support") +
  theme_classic() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# Mean policy support by ideology
mean_support <- data %>%
  group_by(ideology_num) %>%
  summarise(mean_policy = mean(policy_num),
            se = sd(policy_num) / sqrt(n()))

ggplot(mean_support, aes(x = ideology_num, y = mean_policy)) +
  geom_line(linewidth = 1.2, color = "blue") +
  geom_point(size = 3, color = "blue") +
  geom_errorbar(aes(ymin = mean_policy - 1.96*se,
                    ymax = mean_policy + 1.96*se),
                width = 0.2) +
  labs(title = "Mean Policy Support by Ideology",
       subtitle = "Clear negative monotonic trend",
       x = "Political Ideology(1=Very Liberal to 5=Very Conservative)",
       y = "Mean Policy Support(±95% CI)") +
  theme_classic()

# === APA-STYLE REPORTING ===

cat("\n=== APA-STYLE REPORT ===\n")
cat(sprintf(
"Goodman-Kruskal gamma was computed to assess the symmetric ordinal association
between political ideology(5 ordered categories from very liberal to very
conservative) and environmental policy support(5 ordered categories from strongly
oppose to strongly support) in 180 voters. Gamma was chosen over Kendall's tau-b
because it focuses on the pure concordant vs discordant relationship, ignoring
tied pairs, making it useful for comparing associations across studies with varying
tie structures.

A large negative association was found, γ = %.2f, 95%% CI [%.2f, %.2f], z = %.2f,
p < .001, indicating that more liberal ideology was strongly associated with greater
environmental policy support(negative because liberal=1 and high support=5). The
effect size was %s according to standard interpretation guidelines. Of observation
pairs that were not tied, %.0f%% more were concordant(both variables moved in same
direction) than discordant.

The analysis revealed %.0f%% concordant pairs, %.0f%% discordant pairs, and %.0f%%
tied pairs(on at least one variable). Gamma(%.2f) was larger than Kendall's tau-b
(%.2f) by a factor of %.2f, reflecting gamma's exclusion of ties. These findings
align with political science research showing strong associations between liberal
ideology and environmental support(Dunlap et al., 2016).\n",
gamma_result[1], gamma_result[2], gamma_result[3], z_stat, strength,
abs(gamma_result[1]) * 100,
100 * concordant / n_pairs,
100 * discordant / n_pairs,
100 * (n_pairs - concordant - discordant) / n_pairs,
gamma_result[1], tau_b, abs(gamma_result[1] / tau_b)
))
Interpretation Blueprint

γ = -0.68, 95% CI [-0.76, -0.60], p < .001 (large effect). Strong negative association: liberal ideology associated with high policy support (negative because liberal coded low, support coded high). Of non-tied pairs, 68% more concordant than discordant. Gamma (-0.68) > tau-b (-0.52) by 1.31× due to tie exclusion. Results consistent with political ideology-environment literature (Dunlap et al., 2016).

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 · Ordinal / Ranked
Ratio
Consider Pearson r if the relationship is linear. Gamma discards raw score magnitude.
Precision Loss
Interval
Ideal for Ranked Scales. Protects against bias from non-normal distributions and extreme outliers.
Standard Robustness
Ordinal
Maintain Gamma logic. The most powerful index for rank-order agreement when ties are dominant.
Peak Signal
Nominal
Abandon Gamma. Use Cramer's V to model associations where no natural rank order exists.
Information Suicide
Temporal Trajectory Audit Static Rank Concordance
Static Agreement
Single point audit.
Stay with Gamma. Isolate the probability of concordance among non-tied pairs.
Repeated Ranks
Longitudinal order.
Pivot to Kendall's W or Friedman to model the collective shift in ranks over time.
Adaptive Technical Safeguards · adaptive safeguards
want to account for ties
  • Kendall's Tau-B — Penalize the association for the presence of identical ranks.
  • Somers' D — Utilize the asymmetric audit to find the directional influence.
no natural order
  • Cramer's V — The only valid path if the categories are unordered names (e.g., Hospital A vs B).
non monotonic pattern
  • Chi-Square Independence — If the relationship is cyclic or 'U-shaped', the Gamma strike will miss the signal.
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

Post-hoc pairwise tests defined for this model.

Interpretation Guidelines

Gamma is an audit of 'Agreement Probability'. Use pair partitioning to find the specific thresholds where the rank-order connection is most authoritative.

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

|γ| < 0.1: negligible; 0.1-0.3: small; 0.3-0.6: moderate; ≥0.6: large

For non-tied pairs: |γ| = proportion excess of concordant over discordant pairs. γ = 0.60 means 60% more concordant than discordant among non-tied pairs

Gamma typically 1.2-1.5× larger than tau-b for same data because gamma excludes ties while tau-b adjusts for them. Use gamma to compare across studies with varying tie structures

Recommended Metric: Gamma (γ) with 95% CI
Small
0.2
Medium
0.5
Large
0.8
0.50
Gamma (γ) with 95% CI
Recommended Measure
3
Available Metrics
ReportUse Gamma (γ) 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 'Ordinal Parity' Minimum: A minimum of 50 participants is required. Gamma audits the 'Order Agreement'—it becomes unstable and unreliable if the number of 'Discordant Pairs' is too small.

Effect SizeParametersRequired n
Small EffectG = .10 (Small)n ≈ 600 total
Medium EffectG = .30 (Medium)n ≈ 110 total
Large EffectG = .50 (Large)n ≈ 45 total
Key considerations

The 'Tie Bias': Gamma ignores ties entirely. If 80% of your data are tied (e.g., everyone scores 'Medium'), Gamma will claim 'Perfect Agreement' based on a tiny subset of the data. Audit the 'Tie Percentage' before trusting the result.

G*Power StrategyBenchmark: Ordinal Association (Gamma). Parameters: Expected Gamma (G), Rank-tie density, α = .05, Power = .80. Note: Gamma only cares about 'Agreement vs Disagreement', ignoring ties, making it 20% more powerful than Tau for very small samples.
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
Goodman-Kruskal gamma was computed to assess the symmetric ordinal association between political ideology (5 ordered categories) and environmental policy support (5 ordered categories) in 180 voters. Gamma was chosen over Kendall's tau-b because it focuses on the pure concordant vs discordant relationship, ignoring tied pairs. A large negative association was found, γ = -0.68, 95% CI [-0.76, -0.60], z = 12.4, p < .001, indicating that more liberal ideology was strongly associated with greater environmental policy support. The effect size was large. Of observation pairs that were not tied, 68% more were concordant than discordant. Gamma (-0.68) was larger in magnitude than Kendall's tau-b (-0.52) by a factor of 1.31, reflecting gamma's exclusion of tied pairs. These findings align with political science research showing strong associations between liberal ideology and environmental support (Dunlap et al., 2016).
Reusable template

Goodman-Kruskal gamma was computed to assess the symmetric ordinal association between Variable 1 (k ordered categories) and Variable 2 (j ordered categories) in sample description. Gamma was chosen over tau-b / because it ignores tied pairs / for comparability across studies. Assumptions checked. There was a significant/non-significant positive/negative association, γ = value, 95% CI [lower, upper], z = z-value, p = or < p-value, indicating substantive interpretation. The effect size was small/moderate/large. Of observation pairs that were not tied, |γ|×100% more were concordant than discordant. Optional: comparison with tau-b. These findings connection to theory/research.

Essential statistics to report
  • Gamma (γ) value
  • 95% confidence interval
  • z-statistic
  • p-value
  • Sample size
  • Proportion concordant and discordant pairs
  • Comparison with tau-b if reported
10Exhibit Builder

Manuscript Lab

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

Table 1: Goodman-Kruskal Gamma for Ordinal Concordance
Variable PairGamma (γ)ASEp-value
Stress Rank ↔ Error Rank.65.082< .001
Training Rank ↔ Skill Rank.42.095.002
Note. Based on monotonic ordering of ranks. N = 200.
γ = .65High concordance. Knowing the stress rank gives strong predictive power over the error rank in 65% of untied cases.
Header glossary

The Concordance Probability. Represents the probability that a random pair will have the same rank order across both variables, ignoring ties.

The core assumption that increase in one variable corresponds to increase (or decrease) in the other.

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. Execute Gamma
DescTools::GoodmanKruskalGamma(df$var1, df$var2)

# 2. Detailed Ordinal Table
vcd::assocstats(table(df$x, df$y))
Library stack
R
vcdDescTools
Python
scipy
Elite Forensic Strike

Gamma overestimates association when there are many ties. If your data has frequent ties, prioritize Kendall's Tau-b or Somers' D.

# Multi-index Ordinal Audit
# Compare Gamma, Tau-b, and Tau-c simultaneously.
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
Gamma ignores all tied pairs; tau-b adjusts for them. Gamma is typically 1.2-1.5× larger than tau-b for same data. They measure different aspects: gamma = (C-D)/(C+D); tau-b = (C-D)/√[(C+D+Tx)(C+D+Ty)]
The correction
Report both gamma and tau-b to understand tie influence. Use gamma for comparing across studies with varying tie structures. Use tau-b when ties are substantively important. Expect gamma > tau-b (same sign, larger magnitude)
Why it's wrong
Gamma is symmetric: γ(X,Y) = γ(Y,X). It does not provide PRE interpretation for predicting one variable from another. If you have clear dependent variable, gamma doesn't distinguish IV→DV from DV→IV
The correction
Use Somers' D when you have clear IV and DV. Somers' D provides asymmetric PRE interpretation (% error reduction in predicting DV). Only use gamma for symmetric exploratory associations with no temporal/causal ordering
Why it's wrong
Gamma has different scale than Pearson r. Using Pearson benchmarks underestimates gamma effect sizes. Gamma can reach ±1.0 more easily than Pearson r for ordinal data
The correction
Use gamma-specific benchmarks: |γ| < 0.1 negligible, 0.1-0.3 small, 0.3-0.6 moderate, ≥0.6 large. These account for ordinal scale and tie exclusion. Focus on PRE: γ=0.50 means 50% excess concordance among non-tied pairs
Why it's wrong
Gamma assumes monotonic relationship. Non-monotonic patterns (U-shaped, inverted-U) show weak gamma despite strong non-linear associations. Gamma only captures linear rank-order trends
The correction
Create contingency table heatmap before computing gamma. Look for diagonal/anti-diagonal pattern. If non-monotonic: transform variables, use ordinal regression with polynomials, or use chi-square for any association
Why it's wrong
Gamma is sample statistic with sampling variability. Without CI, can't assess precision. γ=0.40 with CI [0.10, 0.70] is imprecise; γ=0.40 with CI [0.30, 0.50] is precise. Statistical significance also important
The correction
ALWAYS report gamma with 95% CI and p-value. Use DescTools in R or bootstrap in Python. CI indicates precision; p-value tests H₀: γ=0. Report even non-significant gammas with CIs for meta-analysis
Why it's wrong
Gamma requires ordinal variables with meaningful ordering. Using on nominal data (religion, ethnicity, color) is nonsensical - 'concordance' requires ordered ranks. Results are meaningless
The correction
Check that both variables are truly ordinal. If nominal: use Cramér's V, chi-square test, or Goodman-Kruskal lambda (for asymmetric nominal association). Never apply gamma to unordered categories
Why it's wrong
Gamma estimates vary by sample size. Small samples have wide CIs. Comparing γ=0.50 (n=30) with γ=0.35 (n=200) ignores that first is imprecise. Difference may be sampling error
The correction
When comparing gammas across studies: report CIs and assess overlap. Use meta-analytic methods (random effects) to pool estimates. Larger samples more precise. Check if CIs overlap before concluding true difference
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]
Goodman, L. A., & Kruskal, W. H. (1954). Measures of association for cross classifications. Journal of the American Statistical Association, 49(268), 732-764.
Original paper on gamma and other measures of association. Foundational reference for understanding gamma's properties and interpretation.
doi: 10.2307/2281536
[2]
Agresti, A. (2010). Analysis of Ordinal Categorical Data (2nd ed.). Wiley.
Comprehensive textbook covering gamma and other ordinal measures. Excellent for understanding when to use gamma vs tau vs Somers' D.
[3]
Siegel, S., & Castellan, N. J. (1988). Nonparametric Statistics for the Behavioral Sciences (2nd ed.). McGraw-Hill.
Classic text on nonparametric statistics including gamma. Practical guidance on interpretation and use.
[4]
Newson, R. B. (2002). Parameters behind nonparametric statistics: Kendall's tau, Somers' D and median differences. The Stata Journal, 2(1), 45-64.
Clarifies relationships among gamma, tau, and Somers' D. Essential for understanding how tie treatment affects these measures.
doi: 10.1177/1536867X0200200103
[5]
Dunlap, R. E., McCright, A. M., & Yarosh, J. H. (2016). The political divide on climate change. Environment, 58(5), 4-23.
Provides basis for political ideology-environment association examples showing strong associations (γ ≈ 0.60-0.75).
statminds · Goodman-KruskalMind reference · v2.2 · updated 2026-01-1715 of 15 sections