Written and maintained by CASRAI Editorial Board
Last updated
Cramér’s V is the chi-square statistic rescaled to a 0-to-1 range so association strength can be compared across contingency tables of different sizes — something the raw chi-square statistic cannot do, because chi-square grows with sample size and with the number of rows and columns in the table, not just with the strength of the association. V divides out both of those, leaving a number that behaves like an effect size: a 4×5 table and a 2×3 table can both report a V of, say, 0.25, and that 0.25 means comparably-strong association in both cases, even though their raw chi-square values and degrees of freedom are completely different. This page covers the exact formula, why the closely related phi coefficient can’t do this job beyond a 2×2 table, a full worked calculation on a 3×4 table, and how to read the resulting number against Cohen’s effect-size bands — which themselves depend on the table’s degrees of freedom, not a single fixed cutoff.
What Cramér’s V measures
Cramér’s V answers the question a chi-square test of independence leaves open: chi-square tells you whether two categorical variables are associated at all (via the p-value), but it does not tell you how strongly. Two studies can both return a “significant” chi-square result with very different real-world association strength, purely because one has a larger sample or a bigger table — statistical significance and effect size answer different questions, and reporting only the former is a common and avoidable gap. V is the standard way to fill that gap for two nominal (or ordinal-treated-as-nominal) categorical variables laid out in any r×c contingency table.
Named for Swedish statistician Harald Cramér, who introduced it in his 1946 Mathematical Methods of Statistics, V ranges from 0 (no association — the variables are independent) to 1 (complete association — knowing one variable’s category tells you the other’s with certainty). Unlike a correlation coefficient such as Pearson’s r, V has no negative values and no inherent direction: categorical variables with more than two levels each don’t have a single meaningful “direction” of association to sign, so V reports magnitude only.
The formula: chi-square normalized by table size
For an r×c contingency table with sample size n:
V = √( (χ² / n) ÷ min(r−1, c−1) )
Two things are doing the normalizing work here. Dividing χ² by n removes the effect of sample size — double every cell count in a table and χ² doubles too, even though the underlying pattern of association hasn’t changed at all; χ²/n (sometimes written as φ², since it’s the squared phi coefficient) is stable under that kind of rescaling. Dividing further by min(r−1, c−1) — the smaller of (rows − 1) and (columns − 1), the same quantity used as the table’s degrees of freedom before multiplying by the other dimension — removes the effect of table shape: a bigger table has more ways to produce a large χ² even under weak association, so V discounts by however many “extra” degrees of freedom the table has beyond the smallest possible non-trivial table (2×2, where min(r−1, c−1) = 1).
Why phi doesn’t generalize past a 2×2 table
The phi coefficient is the same idea applied to the one case where min(r−1, c−1) is always 1 by construction: a 2×2 table, two binary variables. In that specific case, V’s formula collapses to φ = √(χ²/n) exactly — phi and V are the same number for a 2×2 table, not two competing statistics that happen to agree. The problem is that phi has no min(r−1, c−1) term to divide by once a table grows past 2×2, because for a 2×2 table it’s always dividing by 1, so nobody needed to write it in. Apply the plain √(χ²/n) formula to a larger table and the result is unbounded — it can exceed 1 and grow arbitrarily large with the number of categories, which makes it useless as an effect size for comparing across tables of different shapes. Cramér’s V is what you get when you generalize phi correctly: same numerator, but divided by the table’s actual min(r−1, c−1) instead of implicitly assuming it’s 1.
Worked example: a 3×4 table
Take an illustrative (simulated, not drawn from a real study) contingency table cross-tabulating 330 survey respondents’ highest degree held against their preferred primary data-collection method:
| Surveys | Interviews | Observation | Secondary/archival data | Row total | |
|---|---|---|---|---|---|
| Bachelor’s | 40 | 25 | 10 | 15 | 90 |
| Master’s | 30 | 45 | 20 | 25 | 120 |
| Doctorate | 15 | 30 | 35 | 40 | 120 |
| Column total | 85 | 100 | 65 | 80 | 330 |
This is a 3-row × 4-column table, so min(r−1, c−1) = min(2, 3) = 2. Each expected count is (row total × column total) / n — for the Bachelor’s/Surveys cell, (90 × 85) / 330 = 23.18. Summing (observed − expected)² / expected across all 12 cells gives χ² = 39.96 on df = (3−1)(4−1) = 6 degrees of freedom (the ordinary chi-square df, used for the significance test — not the same df* used in V’s denominator). That χ² comfortably exceeds the df = 6 critical value at α = .001 (22.46), so the association is significant at p < .001.
Now compute V: φ² = χ²/n = 39.96 / 330 = 0.1211. Divide by min(r−1, c−1) = 2: 0.1211 / 2 = 0.0605. Take the square root: V = √0.0605 = 0.246. (Every figure above was computed directly from the table shown, not estimated — rerun the same arithmetic on the same counts and you’ll get the same result.)
Interpreting the result: effect-size bands by degrees of freedom
A raw V of 0.246 means little without a benchmark, and the benchmark isn’t a single fixed number — it depends on df* = min(r−1, c−1), the same quantity from the formula above. Jacob Cohen’s widely used convention (from his 1988 Statistical Power Analysis for the Behavioral Sciences) sets thresholds as V×√df*, so the raw-V cutoffs get smaller as the table gets bigger:
| df* = min(r−1, c−1) | Small | Medium | Large |
|---|---|---|---|
| 1 (e.g. a 2×2 table — equals phi) | 0.10 | 0.30 | 0.50 |
| 2 | 0.07 | 0.21 | 0.35 |
| 3 | 0.06 | 0.17 | 0.29 |
| 4 | 0.05 | 0.15 | 0.25 |
| 5 | 0.04 | 0.13 | 0.22 |
For the worked example, df* = 2, so 0.246 sits between the medium threshold (0.21) and the large threshold (0.35) — a medium-to-large association between degree level and preferred data-collection method, not merely a “statistically significant” one. This is exactly the kind of comparison a raw χ² of 39.96 can’t support on its own: without normalizing for df*, there’s no way to say whether that χ² reflects a strong association in a small table or a weak one in a large table.
The bias-corrected variant
V computed the plain way is a slightly biased estimator — even under true independence, sampling noise pushes χ² (and so V) a little above zero on average, and the bias is worse in small samples and large tables. Wouter Bergsma’s 2013 correction (implemented as cramerV() with the bias-correction option in R’s rcompanion package, distinct from the uncorrected cramersV() in the lsr package) subtracts an expected-under-independence term from φ² before taking the ratio, and shrinks the effective row/column counts to match. Applied to the worked example above, the correction moves V from 0.246 to approximately 0.227 — still comfortably in the medium-to-large band for df* = 2, but a reminder that raw V trends slightly high, particularly worth checking when a table has many cells relative to n.
Computing it in SPSS, R, and Stata
- SPSS: Analyze > Descriptive Statistics > Crosstabs, then the Statistics button and check Phi and Cramer’s V — SPSS reports both in the same output block, and for a table larger than 2×2 the phi value it prints is the unbounded √(χ²/n) form described above, not a corrected substitute for V. See the chi-square test guide‘s SPSS section for the full Crosstabs walkthrough.
- R:
vcd::assocstats()run on a table object reports V alongside χ² and the contingency coefficient in one call;rcompanion::cramerV()adds the Bergsma bias-correction option directly. - Stata:
tabulate var1 var2, chi2 Vprints Cramér’s V beneath the chi-square output in the same table — see the chi-square test in Stata guide for the fulltabulatesyntax.
Common mistakes
- Reading V like a Pearson correlation. V has no sign and no “direction” for tables larger than 2×2 — it answers “how strong” but never “which way,” because with more than two categories per variable there usually isn’t a single meaningful direction to report.
- Skipping the chi-square assumptions before trusting V. V inherits chi-square’s requirement that expected cell counts be reasonably large (conventionally, no more than 20% of cells below an expected count of 5) — a V computed on a sparse table with several near-empty cells is unstable even if the arithmetic runs without error.
- Comparing raw V values across tables with different df*. A V of 0.30 in a 2×2 table (df* = 1, comfortably “large” per Cohen’s bands) is not the same strength of association as a V of 0.30 in a 5×6 table (df* = 4, where 0.30 sits above “large” at 0.25 but the scale itself has shifted) — always check df* before comparing V figures from different studies or different tables.
- Treating “statistically significant” and “large effect” as synonyms. With a large enough sample, even a trivial V (0.05 or smaller) can produce a significant chi-square p-value. The p-value and the effect size are answering different questions, and reporting only the p-value — as an older generation of published research often did — hides that distinction. See the general effect size guide for how this plays out beyond the categorical case.
Frequently asked questions
Is Cramér’s V the same as phi?
Only for a 2×2 table, where they’re numerically identical. For any table larger than 2×2, phi computed the plain way (√(χ²/n)) is unbounded and can exceed 1, while V divides further by min(r−1, c−1) to stay within 0 to 1 regardless of table size — see the phi coefficient guide for the 2×2 case in full.
What counts as a “good” Cramér’s V value?
There’s no single cutoff — it depends on df* = min(r−1, c−1) for your table. Use the Cohen’s-convention table above: a V that reads as “large” in a 2×2 table (0.50) reads as merely “medium” territory in a 5×6 table (where large is 0.22), because bigger tables have more room to generate association by chance and the bands are scaled down accordingly.
Can Cramér’s V be negative?
No. V is a square root of a squared quantity by construction, so it’s always ≥ 0. This is a deliberate difference from Pearson’s r or the 2×2 phi coefficient (which can be negative in the raw 2×2 case before taking an absolute value) — V reports magnitude of association only, never direction.
How is Cramér’s V different from Cohen’s w?
They’re closely related, not different statistics: Cohen’s w is √(χ²/n) — the same φ² term used in V’s numerator — used as a general chi-square effect size independent of table shape, most often for goodness-of-fit tests against a single categorical variable. V is what w becomes once you additionally divide by min(r−1, c−1) to make it comparable specifically across two-variable contingency tables of different sizes.








