Stats for

Correlation and Association

Contingency Coefficient

The contingency coefficient measures how strongly two categorical variables are related.

The contingency coefficient takes two categorical variables measured on the same people and measures how strongly they're associated, by rescaling the chi-square statistic onto a scale that never quite reaches 1.

Example

Is where students prefer to study associated with whether they're morning or evening people? One hundred eighty undergraduates named their preferred study spot (home, the library or a café) and answered one question about themselves: are you a morning type, an evening type or somewhere in between? Of the 180, 45 called themselves morning types, 75 in between (intermediate) and 60 evening types.

One Sample + 2 Nominal Variables → Contingency Coefficient
Tests
Strength of association between two categorical variables
Observations
Independent
Parametric
No
Headline Statistic
C
Effect Size
Contingency Coefficient
Groups
1

The Basics

When to Use It

Use it when you've sorted each person into one category on each of two categorical variables and want a single number for how strongly the two are associated. You'll mostly meet it because SPSS prints it next to φ and Cramér's V; for new work, V is usually the better choice, because C's ceiling changes with the table's size. For example:

  • Is where students prefer to study associated with whether they're morning or evening people?
  • How strongly is therapy format (individual, group, online) associated with clients' main reason for dropping out?
  • How strongly is attachment classification in the Strange Situation associated with type of childcare?

Vocabulary You Need

Definition Contingency Table

A table that cross-classifies people on two categorical variables, one along the rows and one along the columns, so each cell counts the people with that combination. The row and column totals (the margins) show how each variable is spread on its own; the cells show how the two go together. Tables are described by their size, rows × columns, such as a 2 × 3 table. Glossary →

Definition Chi-Square Statistic (\chi^2)

In a table test, for each cell, the squared gap between the observed and expected count, divided by the expected count, added up across all the cells. It is 0 when every count matches its expectation and grows as they drift apart. Other tests, such as likelihood-ratio tests that compare two models, also produce a χ², which grows with how much worse the more constrained model fits. Either way, it is compared with a chi-square distribution, the values it would take across many samples if the null hypothesis were true, to get a p-value; that distribution depends on the degrees of freedom, and its average equals them. It also grows with sample size, so it isn't a measure of how strong an effect is. Glossary →

Definition Contingency Coefficient (C)

The chi-square statistic squeezed onto a 0-to-1 scale, C = √(χ² / (χ² + n)), proposed by Karl Pearson. It is 0 when the two variables are unrelated and grows as they become associated, but it can never reach 1: its ceiling depends on the size of the table, √((k − 1) / k) for a k × k table, so .71 in a 2 × 2 table and .82 in a 3 × 3. That makes values from tables of different sizes hard to compare. It has no sign. Also called Pearson's C or the coefficient of mean square contingency. Glossary →

Definition Corrected Contingency Coefficient (C^{*})

C divided by its ceiling for the table, C_max = √((k − 1) / k), where k is the smaller of the number of rows and columns, so that its theoretical maximum is 1 whatever the table's size, though uneven row and column totals can keep a particular table from reaching it. It fixes C's top end but isn't the same as Cramér's V: the two agree at 0 and 1 and differ in between. Some texts use other ceilings for tables with unequal sides, so say which you used. Also called the adjusted contingency coefficient. Glossary →

Assumptions and Inference

1. Independent Observations (for the p-Value) The people (or other units) in your study don't influence each other.
What It Means
Each person's data comes from a separate, unconnected source, so knowing one person's scores tells you nothing about anyone else's. In designs that measure people more than once, their own scores are meant to be related; it's different people who must be independent. Methods built for clustered data, such as multilevel models and GEE, also allow members of the same group to be related, as long as the analysis names the grouping; then it's the groups that must be independent.
Applies To
Observations
How to Check
By design, not by a test. Did each person contribute their own data, with no clusters such as roommates, couples, therapy groups or classrooms whose members influence each other? If there are clusters, does the analysis model every one of them?
How Much It Matters
A lot for the p-value, less for C itself. Each person must be counted once, in exactly one cell. Counting people twice or sampling clusters, such as study groups or friends who study together, makes χ² too big and p too small, and C, built from χ², inherits the inflation.

What to Do

  • Design Change Count each person once. If people named several study spots, analyze one (say, the one they use most).
  • Alternative Test Multilevel Logistic Regression. If people come in clusters (classrooms, dorms, friendship groups), model the clustering instead of ignoring it. With three or more categories, as in our study, that means a multilevel multinomial model.
2. Large Enough Expected Counts (for the p-Value) C can be computed from any table, but the chi-square p-value relies on a large-sample approximation that sparse tables can break.
What It Means
The p-value comes from a smooth curve (the chi-square curve, or the normal curve for a z-test), which only approximates the lumpy distribution of real counts. The approximation works when the expected count in each cell, not the observed count, is reasonably large, and breaks down when many cells expect only a handful of people.
Applies To
Observations
How to Check
Look at the expected counts (row total × column total ÷ N), which most software prints; SPSS Crosstabs reports the smallest one under the Chi-Square Tests table. A common rule: at least 80% of cells expect 5 or more, and none expects fewer than 1 (McHugh, 2013). The rule is cautious: for 2 × 2 tables, Campbell (2007) found the “N − 1” chi-square (χ² × (N − 1) ÷ N, which SPSS prints as Linear-by-Linear Association) accurate whenever every expected count is at least 1.
How Much It Matters
Mostly the p-value. C itself also runs high in small samples and big, sparse tables, because χ² averages about its df even with no association, and it bounces around a lot from sample to sample. If that matters, report the bias-corrected V (Bergsma, 2013) alongside it. In the study-spot study the smallest expected count is 12, so it's fine.

What to Do

  • Robust Estimation Get p by simulation, which reshuffles the table many times instead of relying on the curve (in R, chisq.test(tab, simulate.p.value = TRUE)). It works for a table of any size.
  • Alternative Test Fisher's Exact Test. Get p exactly instead of from the chi-square curve. The linked page covers 2 × 2 tables; for bigger ones like ours it's the Fisher–Freeman–Halton extension (in R, fisher.test(tab)). Don't collapse a bigger table to 2 × 2 just to fit the test: that changes the question, and C with it. C still describes the strength.
  • Design Change Merge categories that are rare and similar in meaning before analyzing. Merging changes the table's size, and with it C's ceiling, so report C* or V afterwards.

Limitations

This Is Not Your Test If…

What It Doesn't Tell You

  • Why. Nothing here shows that being a morning person sends students to the library; the library's opening hours might suit early risers, or the association might run through something else, like course schedules.
  • Whether it matters. A C of .25, significant or not, doesn't say whether a morning-heavy library is worth planning around; that's a judgment for the people who run study spaces.
  • How it compares. A C of .25 from our 3 × 3 table isn't directly comparable with a C of .25 from a 2 × 2 or 5 × 5 table, because each has a different ceiling.
  • That there's no association, if p had been above .05. A non-significant χ² would have meant the data were inconclusive, not that study spot and chronotype are unrelated.

Common Mistakes

  • Don'tRead a C of .80 in a 3 × 3 table as strong but imperfect.

    InsteadCheck the ceiling first. In a 3 × 3 table C can't pass .82, so .80 is close to a perfect association.

  • Don'tReport C's significance as a second test alongside χ².

    InsteadReport one test, χ² with its df and N. SPSS's “Approximate Significance” for C is the same p.

  • Don'tRead C as showing which categories go together.

    InsteadGive the row percentages, and check adjusted residuals to see which cells drive the association.

  • Don'tReport C alone because it's what SPSS printed.

    InsteadReport Cramér's V too, or instead, so readers can compare your result with other studies.

  • Don'tRead a bigger χ² as a stronger effect.

    InsteadReport an effect size suited to the design, such as Cramér's V, an odds ratio or a model's coefficients. χ² grows with sample size even when the effect doesn't.

  • Don'tCompare contingency coefficients from tables of different sizes.

    InsteadCompare Cramér's V, or C divided by its maximum. A 2 × 2 table's C can't pass .71; a 5 × 5 table's can reach .89.

  • Don'tRead a p-value as the chance that the null hypothesis is true.

    InsteadRead it as: if the null were true, how often data at least this extreme would turn up.

Result Decoder

Significance and Effect Size Guidelines

Benchmarks Significance (p Value)
  • p < .001

    Very strong evidence against the null hypothesis.

  • .001 ≤ p < .01

    Strong evidence against the null hypothesis.

  • .01 ≤ p < .05

    Statistically significant at α = .05. Moderate evidence against the null hypothesis.

  • .05 ≤ p < .10

    Not significant. Weak evidence; sometimes called a “trend.” Treat it as inconclusive.

  • p ≥ .10

    Not significant. Little evidence against the null, which is not the same as evidence of no effect.

These evidence labels are one common convention for describing p in graded language rather than as significant or not; the boundaries are rough guides, not rules, and other authors draw them differently. Muff et al. (2022) argue for this kind of language of evidence over a single cutoff. α is chosen before the analysis, and p never says how big or important an effect is.

More about statistical significance ↓

Benchmarks Effect Size (Contingency Coefficient)
  • C < .10 Below Small

    Smaller than the conventional small benchmark. Whether an effect this size matters depends on the setting.

  • .10 ≤ C < .29 Small

    A relatively modest overall departure from independence, by convention. Check it against what C gives by chance (see the note).

  • .29 ≤ C < .45 Medium

    A moderate overall departure from independence, by convention.

  • C ≥ .45 Large

    A relatively substantial overall departure from independence, by convention.

These are Cohen's (1992) cutoffs for w translated to C, and they don't depend on the table's size. C's ceiling does: in our 3 × 3 table C can't pass .82, so read any C next to its maximum. Even with no association at all, a sample's C isn't 0: in a 3 × 3 table of 180 people it averages about .14 by chance alone, already in the small band. These cutoffs are Cohen's conventions for w converted into C units, not independently validated benchmarks for C, and not measures of practical importance.

More about effect size ↓

How It's Reported

Equation Form

Example

C = .25 (C* = .30, V = .18), χ²(4, N = 180) = 11.75, p = .019

Table 1. Four Chi-Square-Based Measures of the Same 3 × 3 Table

Example
ValueMaximumShare of MaximumMedium (w = .30)
Contingency coefficient, C .250.82.30.29
Corrected, C^{*} .301.00.30.35
Cramér's V .181.00.18.21
\phi (Cohen's w) .261.41.18.30

Note. All four come from χ² = 11.75 and N = 180. Maximum is the largest value each can reach in a 3 × 3 table. Share of Maximum is the value divided by that ceiling. Medium is Cohen's (1992) w = .30 translated into each measure. φ here is √(χ²/N), which SPSS prints as “Phi” for any table and which estimates Cohen's w.

Full Text (APA Style)

Example

Of the students who preferred the library, 40% called themselves morning types, against 18% of those who preferred home and 17% of café studiers; evening types made up 36% of home studiers and 42% of café studiers but only 23% of library studiers. The association between study spot and chronotype was small, contingency coefficient C = .25 (maximum .82 for a 3 × 3 table; corrected C* = .30; Cramér's V = .18). A chi-square test of independence showed it was statistically significant, χ²(4, N = 180) = 11.75, p = .019.

  • Give the percentages, so readers can see the pattern C summarizes.
  • Name the table's size and C's maximum for it, or report C* or Cramér's V alongside C. A bare C can't be compared with anyone else's.
  • Report one significance test, χ² with its df and N. The p SPSS prints beside C is the same one.
  • Italicize Latin symbols (C, V, N, p) but not Greek ones (χ²), and report exact p to three decimals.

Reading Each Piece

The equation form above, piece by piece, in this order: how big, then how surprising.

C = .25 The association between study spot and chronotype is .25, small by the benchmarks above. It isn't a correlation or a percentage, so don't square it or read it as 25%. The scale tops out at .82 for a 3 × 3 table, not 1, so .25 is further along it than it looks. Whether a morning-heavy library matters is a question for whoever plans study space, not statistics. Benchmarks ↑
C* = .30 The association is .30 of the strongest one a 3 × 3 table allows. Unlike C, its theoretical maximum is 1 in a table of any size, though with our uneven totals the highest it could reach is .99.
V = .18 The same association on Cramér's scale is .18. For a 3 × 3 table Cohen's medium w = .30 is V = .21, so this is small, as C said. Report V so readers can compare with other studies.
χ²(4, N = 180) = 11.75 Added up over the nine cells, the squared, scaled gaps between observed and expected counts come to 11.75 (a total with no units, not a number of students), past the 9.49 that chance exceeds only 5% of the time with 4 df. The 4 is the degrees of freedom, (r − 1)(c − 1), and N = 180 is the number of students.
p = .019 If study spot and chronotype were unrelated, counts at least this far from expected would turn up about 1.9% of the time. That's below .05, so the association is statistically significant. It's the same p as the chi-square test's, and the same one SPSS prints beside C. Benchmarks ↑

Calculations

The Running Example

Example

The study-spot study: 180 undergraduates, each with one preferred study spot (home, library or café) and one self-chosen chronotype (45 morning, 75 intermediate and 60 evening types).

Null Hypothesis:
Study spot and chronotype are independent
Alternative:
Study spot and chronotype are associated

Independent means each study spot would draw morning, intermediate and evening types in the same proportions in the population. C estimates how strong any association is; the hypothesis test is the chi-square test on the same table. Chronotype is ordered but study spot isn't, so measures for two ordered variables, like gamma, don't apply.

What Your Data Should Look Like

One row per person, with one column for each categorical variable. Software builds the table of counts; never enter percentages or averages. Note the table's size (rows × columns), because C's maximum depends on it.

Our 180 rows become this 3 × 3 table. Expected counts, if study spot and chronotype were unrelated, are in parentheses.

Morning Type Intermediate Evening Type Total
Home 13 (18) 33 (30) 26 (24) 72
Library 24 (15) 22 (25) 14 (20) 60
Café 8 (12) 20 (20) 20 (16) 48
Total 45 75 60 180
Example
studentstudy_spotchronotype
1homeintermediate
2homeevening
3libraryintermediate
4librarymorning
5librarymorning
6homeintermediate
… 174 more rows
Morning TypeIntermediateEvening TypeTotal
Home13 (18%)33 (46%)26 (36%)72
Library24 (40%)22 (37%)14 (23%)60
Café8 (17%)20 (42%)20 (42%)48
Total457560180

Counts, with each row's percentages.

Simulated data.

Download all 180 rows (data.csv)

Napkin Math

The whole test, one idea at a time. Under each heading, a line says why the step matters, and the green note reads the equation in plain English with the study-spot study's numbers. Collapse all to read just the headings: they tell the whole story on their own.

  1. 1. Count How Many Students Fall into Each Combination

    Everything starts with a table of counts, one cell for each pairing of study spot and chronotype. The contingency table is all C is built from.

    n = \sum O_{ij} =13 + 33 + 26 + 24 + 22 + 14 + 8 + 20 + 20

    = 180 students

    O_{ij} is the count in row i, column j. Home: 13 morning, 33 intermediate, 26 evening types (72 in all). Library: 24, 22 and 14 (60). Café: 8, 20 and 20 (48). Together that's 180 students.

  2. 2. Work Out What Each Cell Would Hold If Study Spot and Chronotype Were Unrelated

    If study spot and chronotype were unrelated, every study spot would have the same mix of chronotypes as the whole sample, where a quarter are morning types, 42% intermediate and a third evening types. Those expected counts are the yardstick.

    E_{ij} = \dfrac{R_i \times C_j}{n} =\dfrac{48 \times 45}{180}

    = 12 students

    E_{\text{home}} = 18

    E_{\text{library}} = 15

    R_i is the row total, the 48 café students, and C_j the column total, the 45 morning types. 48 × 45 ÷ 180 = 12 morning types expected in the café, the smallest expected count, and well above 5. Morning types would number 18 at home and 15 in the library.

  3. 3. Add Up How Far Every Cell Strays from Its Expected Count

    Square each gap between observed and expected, scale it by what was expected, and add up all nine. That total, χ², is the raw material for C.

    \chi^2 = \sum \dfrac{(O_{ij} - E_{ij})^2}{E_{ij}} =1.39 + 0.30 + 0.17 + 5.40 + 0.36 + 1.80 + 1.33 + 0.00 + 1.00

    = 11.75

    \text{library, morning} = 5.40

    \text{library, evening} = 1.80

    For morning types in the library, O is 24 and E is 15: (24 − 15)² ÷ 15 = 5.40, the biggest piece. Evening types in the library add 1.80, and morning types at home and in the café 1.39 and 1.33. All nine pieces add up to 11.75.

  4. 4. Account for How Much Information the Table Had

    Once the row and column totals are fixed, only some cells are free to vary. df says which chi-square distribution to judge the total against.

    df = (r - 1)(c - 1) =(3 - 1)(3 - 1)

    = 4

    r is our 3 study spots and c our 3 chronotypes. (3 − 1) × (3 − 1) = 4: fill in a 2 × 2 corner and the totals decide the rest.

  5. 5. Squeeze the Total onto a Scale That Starts at Zero

    χ² grows with the number of people, so on its own it can't say how strong an association is. Pearson divided it by itself plus the sample size, which keeps the result between 0 and 1.

    C = \sqrt{\dfrac{\chi^2}{\chi^2 + n}} =\sqrt{\dfrac{11.75}{11.75 + 180}}

    = .25

    \chi^2 is our 11.75 and n our 180 students. 11.75 ÷ 191.75 = .061, and its square root is .25.

  6. 6. Find the Most C Could Ever Be in a Table This Size

    Unlike a correlation, C can't reach 1, even if every morning type studied in one place and every evening type in another, because its formula adds the sample size to χ² in the denominator. The more categories a table has, the higher C's possible ceiling.

    C_{\max} = \sqrt{\dfrac{k - 1}{k}} =\sqrt{\dfrac{3 - 1}{3}}

    C_{\max} = .82

    k is our 3 categories on each side. The square root of 2 ÷ 3 is .82: a perfect association in a 3 × 3 table would score .82. In a 2 × 2 table it's only .71. One more complication: the number of people in each category can lower the ceiling further. Our particular totals (72, 60 and 48 students per study spot; 45, 75 and 60 per chronotype) limit C to about .81.

  7. 7. Rescale C by That Ceiling

    Dividing by the ceiling puts C on a scale whose theoretical maximum is 1 in any table, so values from different table sizes line up better. Uneven totals can still keep a real table just short of 1.

    C^{*} = \dfrac{C}{C_{\max}} =\dfrac{.248}{.816}

    = .30

    C is our .248 and C_{\max} the .816 ceiling. .248 ÷ .816 = .30: we're about three-tenths of the way to a perfect association.

  8. 8. Compare with Cramér's V on the Same Table

    Cramér's V fixes the same problem a different way, dividing χ² by the most it could be for this n and table size. It's the measure most readers will know.

    V = \sqrt{\dfrac{\chi^2}{n\,(k - 1)}} =\sqrt{\dfrac{11.75}{180 \times 2}}

    = .18

    n is our 180 students and k the 3 categories on the smaller side, so k - 1 = 2. 11.75 ÷ 360 = .033, and its square root is .18. Same table, same χ²: C says .25, C* .30, V .18.

  9. 9. Ask How Surprising the Result Would Be If Study Spot and Chronotype Were Unrelated

    C has no test of its own. The question of whether it's bigger than chance is the chi-square test's question, answered from the same χ².

    p = P(\chi^2_{df} \ge \chi^2) =P(\chi^2_{4} \ge 11.75)

    = .019

    \chi^2_{4} is a chi-square distribution with 4 df. The chance it lands at or above 11.75 is .019, about 1 in 52.

Run It in Software

The code below reads the running example's data from data.csv; save it in the same folder you run the code from.

SPSS (version 30, as documented by IBM)
  1. Analyze → Descriptive Statistics → Crosstabs.
  2. Move study_spot into Row(s) and chronotype into Column(s).
  3. Click Statistics, check Chi-square, Contingency coefficient, and Phi and Cramer's V, and click Continue.
  4. Click Cells, check Observed and Expected counts and Row percentages, and click Continue, then OK.

Or paste this syntax:

CROSSTABS
  /TABLES=study_spot BY chronotype
  /FORMAT=AVALUE TABLES
  /STATISTICS=CHISQ CC PHI
  /CELLS=COUNT EXPECTED ROW
  /COUNT ROUND CELL.

Reading the Output

Read the tables in this order: the row percentages in the Crosstabulation (the pattern), then Contingency Coefficient and Cramer's V (the size), then the Pearson Chi-Square row (the test). Check the footnote under Chi-Square Tests for the smallest expected count.

study_spot * chronotype Crosstabulation (abridged)

evening intermediate morning Total
cafe Count 20 20 8 48
Expected Count 16.0 20.0 12.0 48.0
% within study_spot 41.7% 41.7% 16.7% 100.0%
home Count 26 33 13 72
Expected Count 24.0 30.0 18.0 72.0
% within study_spot 36.1% 45.8% 18.1% 100.0%
library Count 14 22 24 60
Expected Count 20.0 25.0 15.0 60.0
% within study_spot 23.3% 36.7% 40.0% 100.0%

Chi-Square Tests

Value df Asymptotic Significance (2-sided)
Pearson Chi-Square 11.749ᵃ 4 .019
Likelihood Ratio 11.379 4 .023
N of Valid Cases 180

a. 0 cells (0.0%) have expected count less than 5. The minimum expected count is 12.00.

Symmetric Measures

Value Approximate Significance
Nominal by Nominal Phi .255 .019
Cramer's V .181 .019
Contingency Coefficient .248 .019
N of Valid Cases 180

SPSS doesn't print C's maximum or the corrected C*; work them out by hand: √(2/3) = .816 for a 3 × 3 table, and .248 ÷ .816 = .303. The three “Approximate Significance” values are all the Pearson chi-square's p, not three separate tests. “Phi” here is √(χ²/N), which only stays within 0 to 1 in a 2 × 2 table; in our 3 × 3 table it could reach 1.41.

Output laid out from this page's computed results, not captured from a live run; labels and layout may differ slightly in your version.

R
spots <- read.csv("data.csv")
tab <- table(spots$study_spot, spots$chronotype)
test <- chisq.test(tab)   # no Yates correction is applied to tables bigger than 2 × 2
test
test$expected

n <- sum(tab)
k <- min(dim(tab))
C <- sqrt(test$statistic / (test$statistic + n))
C_max <- sqrt((k - 1) / k)   # k = the smaller side of the table
V <- sqrt(test$statistic / (n * (k - 1)))
round(c(C = unname(C), C_max = C_max, C_star = unname(C / C_max), V = unname(V)), 4)
	Pearson's Chi-squared test

data:  tab
X-squared = 11.749, df = 4, p-value = 0.01932


          evening intermediate morning
  cafe         16           20      12
  home         24           30      18
  library      20           25      15
     C  C_max C_star      V
0.2475 0.8165 0.3032 0.1807

Base R has no function for C, so compute it from chisq.test's statistic. The DescTools package's ContCoef(tab) gives the same value, and ContCoef(tab, correct = TRUE) the corrected one, which its documentation calls Sakoda's adjusted C.

Output from a real run: R 4.6.1, run 2026-10-10.

Python
import numpy as np
import pandas as pd
from scipy import stats
from scipy.stats.contingency import association

spots = pd.read_csv("data.csv")
table = pd.crosstab(spots["study_spot"], spots["chronotype"])
result = stats.chi2_contingency(table, correction=False)
result.statistic       # 11.7489
result.pvalue          # 0.01932
result.dof             # 4

C = association(table, method="pearson")   # 0.2475, Pearson's contingency coefficient
k = min(table.shape)
C / np.sqrt((k - 1) / k)                   # 0.3032, corrected C*
association(table, method="cramer")        # 0.1807, Cramér's V

scipy's association computes all three chi-square-based measures from the same table: "pearson" is the contingency coefficient, "cramer" is Cramér's V, and "tschuprow" is Tschuprow's T, which equals V in a square table like ours.

Output from a real run: scipy 1.13.1, run 2026-10-10.

Impact

Effect Size

C describes the overall strength of an association, but its maximum depends on the table's size, which makes it hard to compare across studies. Cramér's V is usually the better choice for reporting new results; C is worth understanding because SPSS prints it and older papers report it.

C isn't a correlation or a percentage: don't square it, or read .25 as 25%. It only says how far the table sits from independence, on a scale whose top depends on the table. The percentages say what the association looks like. And C is rarely 0 even when nothing is going on. A chi-square statistic with 4 df averages about 4 by chance, and plugging that typical value into C's formula gives roughly .15 for our 180 students; averaging C itself over many samples under independence gives a little less, about .14. Either way, it's an illustration of the upward bias in small samples.

C = \sqrt{\dfrac{\chi^2}{\chi^2 + n}} = \sqrt{\dfrac{11.75}{11.75 + 180}} = .25

Study spot and chronotype are associated at C = .25, small by convention. SPSS gives no confidence interval for C. An ordinary percentile bootstrap (4,000 resamples) gives roughly .15 to .39, but treat it as illustrative, not as a substitute for the chi-square test: because C is biased upward and can't be negative, such intervals can have unreliable coverage, especially near independence. Since virtually every resampled C is above zero, the interval's lower end clears zero whether or not the test is significant. In a 3 × 3 table C can't pass .82, so the corrected C* = .248 ÷ .816 = .30, and Cramér's V on the same table is .18.

Four numbers, one association. C, C*, V and w all come from the same χ². They don't describe different relationships; they express the same overall departure from independence on different scales (Table 1 above sets them side by side). The practical question is which scale is easiest to read and compare.

Pearson (1904) designed C for normally distributed traits cut into many fine categories, where it approaches the ordinary correlation. A large χ² shows that an association is significant but says little about how strong it is (Cramér, 1946), and C turns χ² into a measure of strength that is standardized for sample size. With the few categories psychologists usually have, though, it can't reach 1. Its ceiling is √((k − 1)/k) for a k × k table: .71 for 2 × 2, .82 for 3 × 3, .87 for 4 × 4, .89 for 5 × 5 (Yule & Kendall, 1944). For a table with unequal sides, k is the smaller side. Yule and Kendall advised using C only for tables of 5 × 5 or finer, which rules out most tables psychologists meet, including ours. The same C means a stronger association in a small table than in a big one, and even regrouping one dataset moves it: collapse our table to library or not by morning type or not, and C drops from .25 to .24 while V rises from .18 to .24. The corrected C* fixes the top of the scale but is still a different number from V everywhere in between. V is what most readers and power tools expect, so report it, and give C alongside it if a reviewer or your SPSS output asks for it.

C has no sign and doesn't say which categories go together. For that, go back to the percentages: 40% of the library students called themselves morning types, against 18% at home and 17% in a café. Benchmarks are conventions; whether that matters for how a campus plans its study spaces isn't a statistical question.

Benchmarks Contingency Coefficient at a Glance
Below Small
C < .10
Small
.10 ≤ C < .29
Medium
.29 ≤ C < .45
Large
C ≥ .45

Full benchmarks and caveats ↑

Statistical Significance

C has no significance test of its own. Whether C is bigger than chance would produce is the same question as whether χ² is, so the test is the chi-square test of independence, and p is its upper tail: if the two variables were unrelated in the population, how often would a table's counts stray at least this far from the expected counts? Below the conventional α = .05, the association is called statistically significant.

If study spot and chronotype were unrelated, 180 students would produce counts at least this far from expected about 1.9% of the time, roughly 1 in 52. That's below .05, so it's significant. SPSS's “Approximate Significance” beside C, V and Phi is this same .019.

p is not the probability that the variables are unrelated, and it says nothing about how strong the association is: with 1,800 students, a C of .09 would be significant too. It also doesn't say which cells differ. That's what C, the percentages and the adjusted residuals are for.

Benchmarks p at a Glance
Very Strong
p < .001
Strong
.001 ≤ p < .01
Significant
.01 ≤ p < .05
Weak
.05 ≤ p < .10
Little
p ≥ .10

Strength of evidence against the null hypothesis.

Full benchmarks and caveats ↑

Power and Sample Size

Power is the chance that a study detects an effect that's really there. A real association doesn't guarantee a significant result: with too few people, it can easily come out non-significant. Power here belongs to the chi-square test behind C. It depends on how strong the true association is, how many people you have, α, and the degrees of freedom: a bigger table spreads the same sample over more cells and needs more people.

Chi-square power is planned with Cohen's w, not C, but they translate directly: C = w ÷ √(1 + w²), so Cohen's (1992) medium w = .30 is a C of .29 in a table of any size.

Suppose, before collecting any data, we expected a medium association, w = .30 (C = .29), in a 3 × 3 table (df = 4). About 133 students would give 80% power. If instead we'd decided that the smallest association worth finding was w = .25 (C = .24), 180 students would give about 77% power.

Researchers usually aim for at least 80% power. Plan it before collecting data, using the smallest association that would matter. Small associations need big samples: 80% power for w = .10 with 4 df takes about 1,194 people (Cohen, 1992, Table 2). The calculator below uses our table's df = 4 and asks for w; convert a C you care about with w = C ÷ √(1 − C²). Try it:

Other Info

Follow-Up and Post Hoc Tests

Post Hoc Tests

  • Adjusted Residuals: Use after a significant χ², to find the cells with more or fewer people than expected. Compare each with ±1.96, or with a Bonferroni-adjusted cutoff when there are many cells: for our 9 cells, ±2.77. In the study-spot study only morning types in the library clear it (+3.29); evening types in the library (−2.01) pass ±1.96 but fall short of it.

References

  • Pearson, K. (1904). Mathematical contributions to the theory of evolution. XIII. On the theory of contingency and its relation to association and normal correlation (Drapers' Company Research Memoirs, Biometric Series I). Dulau and Co. https://archive.org/details/cu31924003064833
    “We note that with small enough classes the coefficient of contingency becomes the coefficient of correlation.” (p. 9)
  • Yule, G. U., & Kendall, M. G. (1944). An introduction to the theory of statistics (13th ed.). Charles Griffin. https://archive.org/details/in.ernet.dli.2015.189398
    “The coefficient C has one serious disadvantage.” (§ 5.10, p. 69)
    “Hence, coefficients calculated from different systems of classification are not, strictly speaking, comparable.” (§ 5.11, p. 69)
  • Cramér, H. (1946). Mathematical methods of statistics. Princeton University Press.
    “gives no direct information about the degree of dependence or association between the arguments” (p. 443)
  • Cohen, J. (1992). A power primer. Psychological Bulletin, 112(1), 155–159. https://doi.org/10.1037/0033-2909.112.1.155
    “w = .30 corresponds to a contingency coefficient of .287” (p. 158)
  • IBM Corp. (n.d.). Crosstabs statistics. IBM SPSS Statistics 30.0.0 documentation. https://www.ibm.com/docs/en/spss-statistics/30.0.0?topic=crosstabs-statistics
  • Bergsma, W. (2013). A bias-correction for Cramér's V and Tschuprow's T. Journal of the Korean Statistical Society, 42(3), 323–328. https://doi.org/10.1016/j.jkss.2012.10.002
  • Muff, S., Nilsen, E. B., O'Hara, R. B., & Nater, C. R. (2022). Rewriting results sections in the language of evidence. Trends in Ecology & Evolution, 37(3), 203–210. https://doi.org/10.1016/j.tree.2021.10.009
    “we suggest language of evidence that allows for a more nuanced approach to communicate scientific findings as a simple and intuitive alternative to statistical significance testing” (Abstract)
  • McHugh, M. L. (2013). The chi-square test of independence. Biochemia Medica, 23(2), 143–149. https://doi.org/10.11613/BM.2013.018
    “The value of the cell expecteds should be 5 or more in at least 80% of the cells, and no cell should have an expected of less than one” (Assumptions of the Chi-square)
  • Campbell, I. (2007). Chi-squared and Fisher–Irwin tests of two-by-two tables with small sample recommendations. Statistics in Medicine, 26(19), 3661–3675. https://doi.org/10.1002/sim.2832
  • Sharpe, D. (2015). Your chi-square test is statistically significant: Now what? Practical Assessment, Research & Evaluation, 20(8), 1–10. https://doi.org/10.7275/tbfa-x148
    “MacDonald and Gardner (2000) suggest a Bonferroni adjustment to the z critical of 1.96 (from which the +/- 2 criteria is derived) if the number of cells in the contingency table is large.” (p. 3)

Spot an error? Something still confusing? Tell us at support@statsforpsychology.com.