Rank correlation based on concordant and discordant pairs — preferred over Spearman for small samples and data with many tied ranks.
Test AssociationBivariatealso known as: Kendall rank correlation, tau-b, tau-c
✓ When to use
Ordinal variables with many ties (e.g., two 5-point Likert items).
Small samples where Spearman's approximation is shaky.
You want a coefficient with a direct probabilistic interpretation (difference between concordance and discordance probabilities).
✗ When NOT to use
Continuous, normal, linear data — Pearson.
Non-monotonic relationships.
Nominal variables — use Cramér's V.
Large datasets where computing time matters and Spearman suffices (tau is O(n²) naively, though modern software is fast).
Data requirements
Dependent / outcome variable
Two variables, each at least ordinal (symmetric measure).
Independent / grouping variable
—
Design
One sample, independent observations.
Sample size guidance
Works from very small n upward; exact p-values available for small samples.
Assumptions
Independent observations.
Both variables at least ordinal.
Monotonic association is the target of inference.
Hypotheses
H₀ — No association: concordant and discordant pairs are equally likely (τ = 0).
H₁ — Association exists (τ ≠ 0).
The concept
Take every pair of cases. The pair is concordant if the case higher on X is also higher on Y, discordant if reversed. Tau is (C − D) divided by the number of comparable pairs — literally the probability of concordance minus the probability of discordance. Tau-b adjusts the denominator for ties (use for square tables/Likert–Likert); tau-c suits rectangular tables.
Tau values run systematically lower than Spearman's rho on the same data (roughly τ ≈ ⅔ρ for moderate associations) — do not interpret them against Pearson benchmarks; τ = .30 is a fairly strong association.
Worked example
Relating a 5-point job-security item to a 5-point loyalty item among 45 contract workers — heavy ties are inevitable.
Result: τb = .38, p < .001 — a clear positive association: pairs of workers are 38 percentage points more likely to be concordant than discordant.
How to run it
cor.test(df$security, df$loyalty, method = "kendall") # tau-b with ties
from scipy import stats
tau, p = stats.kendalltau(df["security"], df["loyalty"]) # tau-b
print(tau, p)