Correlation and Association
Cramér's V
Cramér's V measures how strongly two categorical variables are related.
Cramér's V takes two categorical variables measured on the same people and measures how strongly they're associated, on a 0-to-1 scale that, unlike χ², is standardized for sample size.
How strongly is adults' attachment style tied to the way they cope with stress? Two hundred forty adults (120 secure, 60 anxious and 60 avoidant on an attachment questionnaire) named the strategy they reach for first under stress: seeking support, problem-solving, distraction or withdrawal.
- Tests
- Strength of association between two nominal variables
- Observations
- Independent
- Parametric
- No
- Headline Statistic
- V
- Effect Size
- Cramér's V
- Groups
- 1
The Basics
When to Use It
Use it when you've sorted each person into one category on each of two unordered categorical variables and want to know how strongly the two go together, on a 0-to-1 scale that, unlike χ², is standardized for sample size. Compare it with other studies' V when their tables have the same shape, or convert both to w (Effect Size below). It's the effect size for a chi-square test of independence, with its own interval. For example:
- How strongly is adults' attachment style tied to the coping strategy they reach for first under stress?
- How closely is a clinic's referral source (self, GP, school, court) linked to the diagnosis clients leave with?
- Is the reason students give for dropping a course (workload, grades, schedule) related to their major, and how strongly?
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 Cohen's w (w)
How far the population proportions in each cell sit from the proportions the null hypothesis predicts, combined across cells: w = √(Σ (P₁ − P₀)² / P₀), where P₀ is a cell's proportion under the null and P₁ its true proportion. A sample estimates it as √(χ² / n). By convention .10, .30 and .50 are small, medium and large (Cohen, 1992). Power calculators for chi-square tests ask for w and the degrees of freedom. It converts to Cramér's V as w ÷ √(k − 1), where k is the smaller of the number of rows and columns, and to the contingency coefficient as w ÷ √(1 + w²). Glossary →
Assumptions and Inference
1. Independent Observations (for the p-Value and Interval) 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 interval and p; less for V itself. Counting the same people twice, or sampling clusters such as couples or therapy groups, makes χ² too big, so the interval comes out too narrow and p too small.
What to Do
- Design Change Count each person once, in one cell. If people gave several answers, analyze one (say, their first choice).
-
Alternative Test
Multilevel Logistic Regression. If people come in clusters (couples, classrooms, therapy groups), model the clustering instead of ignoring it: a multilevel logistic model when one variable has two categories, a multilevel multinomial model when it has more, or a Rao–Scott corrected χ² (survey software, or
survey::svychisqin R).
2. Large Enough Expected Counts (for the p-Value and Interval) V can be computed from any table, but the chi-square p-value and the interval rely 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
- Moderate, and mostly for the interval and p, which both lean on the chi-square curve. The small samples and big tables that produce small expected counts also inflate V itself; that's a separate problem, which the bias-corrected Ṽ in Effect Size handles. In the attachment-coping study the smallest expected count is 12, so it's fine.
What to Do
-
Alternative Test
Fisher's Exact Test. Get p from the exact test instead of the chi-square curve; for tables bigger than 2 × 2 it's the Fisher–Freeman–Halton test (in R,
fisher.test(tab)). The interval for V still leans on the curve; a bootstrap interval avoids that. -
Robust Estimation
Get p by simulation, reshuffling the table many times instead of relying on the curve (in R,
chisq.test(tab, simulate.p.value = TRUE)). - Design Change Merge categories that are rare and similar in meaning before computing V. Decide on meaning, not on which merge gives the biggest V.
Limitations
This Is Not Your Test If…
- Your categories have a natural order, like mild, moderate, severe Goodman and Kruskal's Gamma →
- You want to know how often two raters agree Cohen's Kappa →
- You have a 2 × 2 table and want an odds ratio with an exact test Fisher's Exact Test →
- You measured the same people twice (yes/no, before and after) McNemar's Test →
- Your variables are scores, not categories Pearson Correlation →
- You want to predict one variable from the other, not just measure how they go together Multinomial Regression →
What It Doesn't Tell You
- Which way. V has no sign and no direction. It says attachment and coping go together, not that avoidant adults withdraw; the percentages and each cell's adjusted residual show that.
- Why. Nothing here shows that attachment style causes a coping preference. Both could reflect something else, such as early family stress, and the data are one self-report at one time.
- Whether it matters. A V of .18 doesn't say whether a 22-point gap in seeking support is important for therapy or for relationships; that's a clinical judgment.
- Who else. The result describes adults like these 240, classified by one questionnaire, and only as well as “what do you do first?” predicts what people do under real stress.
Common Mistakes
-
Don'tJudge V from a large table against the 2 × 2 cutoffs of .10, .30 and .50.
InsteadDivide the cutoffs by √(k − 1), or convert V to w = V × √(k − 1) and use Cohen's w cutoffs.
-
Don'tDivide χ² by n × (r − 1)(c − 1), the degrees of freedom.
InsteadDivide by n × (k − 1), where k is the smaller of the number of rows and columns.
-
Don'tType V into a power calculator that asks for w.
InsteadMultiply V by √(k − 1) first. They match only when the table's smaller side has two categories.
-
Don'tReport V alone, as if it showed which categories go together.
InsteadGive the row percentages too, and the adjusted residuals for any cells you single out. V has no direction; the table shows the pattern.
-
Don'tTake V from a small sample or a big, sparse table at face value.
InsteadReport the bias-corrected V next to it, and say which one you're interpreting.
-
Don'tSquare V and call it the share of variance explained, as with r².
InsteadRead V² only as χ²'s share of its maximum. To say what the association means, use the row percentages, or an odds ratio for a 2 × 2 slice of the table.
-
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'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.
Benchmarks Effect Size (Cramér's V)
-
V < .07
Below Small
Smaller than the conventional small benchmark. Whether an effect this size matters depends on the setting.
-
.07 ≤ V < .21
Small
A relatively modest overall departure from independence, by convention.
-
.21 ≤ V < .35
Medium
A moderate overall departure from independence, by convention.
-
V ≥ .35
Large
A substantial overall departure from independence, by convention.
Cohen's (1992) cutoffs for w (.10, .30, .50) converted to V for this table's size: V = w ÷ √(k − 1), and our 3 × 4 table has k − 1 = 2. In a 2 × 2 table the cutoffs would be .10, .30 and .50; Effect Size below has the full table. Benchmarks are conventions, not measures of practical importance.
How It's Reported
Equation Form
V = .18, 95% CI [.04, .25], bias-corrected Ṽ = .15, χ²(6, N = 240) = 16.33, p = .012
Preferred Coping Strategy by Attachment Style
| n | Seek Support (%) | Problem-Solving (%) | Distraction (%) | Withdrawal (%) | |
|---|---|---|---|---|---|
| Secure | 120 | 35.0 | 31.7 | 18.3 | 15.0 |
| Anxious | 60 | 36.7 | 23.3 | 23.3 | 16.7 |
| Avoidant | 60 | 13.3 | 33.3 | 20.0 | 33.3 |
| All Adults | 240 | 30.0 | 30.0 | 20.0 | 20.0 |
Note. Percentages are within each attachment style (rows sum to 100%). Cramér's V = .18, 95% CI [.04, .25]; χ²(6, N = 240) = 16.33, p = .012.
Full Text (APA Style)
Avoidant adults were the least likely to turn first to other people (13%, against 35% of secure and 37% of anxious adults) and the most likely to withdraw (33%, against 15% and 17%); both cells departed from independence (adjusted residuals −3.25 and 2.98, beyond the Bonferroni cutoff of ±2.87 for 12 cells). The association between attachment style and first coping strategy was small, Cramér's V = .18, 95% CI [.04, .25]; corrected for small-sample bias, Ṽ = .15 (the interval is for V). A chi-square test of independence showed it was statistically significant, χ²(6, N = 240) = 16.33, p = .012.
- Give the table's size (3 × 4) or the df, so readers know which benchmarks apply: a V of .18 is nearly medium in a 3 × 4 table but small in a 2 × 2.
- Give the row percentages. V has no direction, so the percentages show which categories go together, and the adjusted residuals show which of those gaps are more than chance.
- Say which V you report. If you give the bias-corrected Ṽ, cite Bergsma (2013); with small samples or big tables the two can differ a lot.
- Say how the interval was computed (here, by inverting the noncentral chi-square). A two-sided 95% interval only clears 0 when p is below .025, so some authors report a one-sided interval instead.
Reading Each Piece
The equation form above, piece by piece, in this order: how big, how certain, then how surprising.
| V = .18 | The association between attachment style and first coping strategy is .18 on a 0-to-1 scale. For a table whose smaller side has three categories, Cohen's conventions put small at .07 and medium at .21, so this is small, close to medium. Whether it matters is a question about how people cope, not statistics. Benchmarks ↑ |
| bias-corrected Ṽ = .15 | With chance's share removed, the association is .15 rather than .18. The two differ because 240 adults spread over 12 cells is not a huge sample, and the uncorrected V tends to overstate the population value. |
| 95% CI [.04, .25] | The population association is plausibly anywhere from barely there (.04) to just past medium for this table shape (.25). The interval is wide; 240 adults pin V down only roughly. |
| χ²(6, N = 240) = 16.33 | Added up over the 12 cells, the squared gaps between observed and expected counts, each scaled by its expected count, come to 16.33, past the 12.59 that chance exceeds only 5% of the time with 6 df. The 6 is the degrees of freedom, (3 − 1)(4 − 1), and N = 240 is the number of adults. |
| p = .012 | If attachment style and coping strategy were unrelated, a table at least this far from independence would turn up about 1.2% of the time. That's below .05, so the association is statistically significant; it says V isn't zero, not that it's large. Benchmarks ↑ |
Calculations
The Running Example
The attachment-coping study: 240 adults (120 secure, 60 anxious, 60 avoidant), each naming one first coping strategy: seek support, problem-solve, distract or withdraw.
- Null Hypothesis:
- \text{Attachment style and coping strategy are independent (population } V = 0\text{)}
- Alternative:
- \text{Attachment style and coping strategy are associated (population } V > 0\text{)}
Independent means all three attachment styles would choose the four strategies in the same proportions in the population, so the population V would be 0. V can't be negative, so the only alternative is that it's above 0; the question the page cares about is how far above.
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. V only needs the counts, so a published table is enough to compute it.
Our 240 rows become this 3 × 4 table. Expected counts, if attachment and coping were unrelated, are in parentheses.
| Seek Support | Problem-Solving | Distraction | Withdrawal | Total | |
|---|---|---|---|---|---|
| Secure | 42 (36) | 38 (36) | 22 (24) | 18 (24) | 120 |
| Anxious | 22 (18) | 14 (18) | 14 (12) | 10 (12) | 60 |
| Avoidant | 8 (18) | 20 (18) | 12 (12) | 20 (12) | 60 |
| Total | 72 | 72 | 48 | 48 | 240 |
| participant | attachment | coping |
|---|---|---|
| 1 | avoidant | withdrawal |
| 2 | secure | seek_support |
| 3 | avoidant | problem_solving |
| 4 | avoidant | withdrawal |
| 5 | secure | seek_support |
| 6 | secure | problem_solving |
| … 234 more rows | ||
| Seek Support | Problem-Solving | Distraction | Withdrawal | Total | |
|---|---|---|---|---|---|
| Secure | 42 (35%) | 38 (32%) | 22 (18%) | 18 (15%) | 120 |
| Anxious | 22 (37%) | 14 (23%) | 14 (23%) | 10 (17%) | 60 |
| Avoidant | 8 (13%) | 20 (33%) | 12 (20%) | 20 (33%) | 60 |
| Total | 72 | 72 | 48 | 48 | 240 |
Counts, with each row's percentages.
Simulated data.
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 attachment-coping study's numbers. Collapse all to read just the headings: they tell the whole story on their own.
-
1. Count How Many Adults Chose Each Strategy in Each Attachment Style
Everything starts with a contingency table of counts, one cell for each combination of attachment style and coping strategy, and the shares within each style.
n = \sum O_{ij} =120 + 60 + 60= 240 adults
\text{avoidant, seek support} = .13
\text{secure, seek support} = .35
\text{avoidant, withdrawal} = .33
\text{secure, withdrawal} = .15
O_{ij} is the count in row i, column j. Our 120 secure, 60 anxious and 60 avoidant adults make 240. Only 8 of the 60 avoidant adults sought support first, .13, against 42 of 120 secure adults, .35; and 20 of 60 avoidant adults withdrew, .33, against .15.
-
2. Work Out What Each Cell Would Hold If the Two Were Unrelated
If attachment style and coping were unrelated, every style would split across the strategies in the same proportions as everyone combined. Those expected counts are the yardstick.
E_{ij} = \dfrac{R_i \times C_j}{n} =\dfrac{60 \times 48}{240}= 12.0 adults
E_{\text{avoidant, support}} = 18.0
E_{\text{secure, support}} = 36.0
R_i is a row total, our 60 avoidant adults, and C_j a column total, the 48 who chose withdrawal. 60 × 48 ÷ 240 = 12: with no association, 12 avoidant adults would have withdrawn, not 20. That's also the smallest expected count, comfortably above 5.
-
3. Add Up How Far the Counts Stray from Those Expectations
This is the chi-square statistic, the same one the chi-square test uses. It's the raw material for V, but it grows with the sample, so it can't say how strong the association is on its own.
\chi^2 = \sum \dfrac{(O_{ij} - E_{ij})^2}{E_{ij}} =1.000 + 0.111 + \dots + 5.556 + 0.222 + 0.000 + 5.333= 16.33
\text{avoidant, support} = 5.556
\text{avoidant, withdrawal} = 5.333
df = 6
Each of the 12 cells adds (O - E)^2 / E. The two avoidant cells, support (8 - 18)^2 / 18 = 5.556 and withdrawal (20 - 12)^2 / 12 = 5.333, supply two thirds of the total, 16.33, on (3 - 1)(4 - 1) = 6 df.
-
4. Find the Largest Mismatch a Table This Shape Could Hold
V compares our χ² with the biggest one possible. That ceiling depends on the sample size and on the smaller side of the table, because a table whose smaller side has 3 categories can only sort people into 3 distinct patterns.
\chi^2_{\max} = n\,(k - 1) =240 \times (3 - 1)\chi^2_{\max} = 480
n is our 240 adults and k is the smaller side of the table, 3 attachment styles, so k - 1 = 2. If each style went with its own strategies and no others, χ² could reach 240 × 2 = 480 in a table this shape. Our own totals can't quite get there (the most they allow is about 400, a V of .91), because 60 avoidant adults can't take up whole strategies chosen by 72 or 48.
-
5. Measure How Strong the Association Is on a 0-to-1 Scale
Dividing χ² by its ceiling and taking the square root gives V, which is standardized for sample size (it doesn't grow with n the way χ² does, though small samples bias it upward; see step 7) and can reach 1 however many categories each variable has. Lopsided row or column totals can hold it below 1 even when the association is as strong as those totals allow.
V = \sqrt{\dfrac{\chi^2}{n\,(k - 1)}} =\sqrt{\dfrac{16.33}{240 \times 2}}= .18
Our χ² of 16.33 is 3.4% of the 480 maximum, and \sqrt{.034} = .18. The square root puts V on a scale that runs like a correlation's, though V isn't one: V² is χ²'s share of its maximum, not a share of variance.
-
6. Translate V into the Units Power Calculations Use
Cohen's benchmarks and power tables are written for w, not V. The two are equal only when the smaller side of the table has two categories; otherwise w is V stretched by √(k − 1).
w = V\sqrt{k - 1} = \sqrt{\dfrac{\chi^2}{n}} =0.184 \times \sqrt{2}= .26
k - 1 is our 2, so w = .184 × 1.414 = .26, the same as \sqrt{16.33 / 240}. On Cohen's w scale, .26 sits between small (.10) and medium (.30).
-
7. Take Out the Part Chance Alone Would Add
Even with no real association, χ² averages about its df, so V comes out above zero in almost every sample: with our table's totals and no association at all, V would average about .11. Bergsma's correction subtracts most of that chance share, which matters most with small samples and big tables.
\tilde{V} = \sqrt{\dfrac{\max\!\left(0,\ \dfrac{\chi^2}{n} - \dfrac{(r - 1)(c - 1)}{n - 1}\right)}{\min(\tilde{r} - 1,\ \tilde{c} - 1)}}, \quad \tilde{r} = r - \dfrac{(r - 1)^2}{n - 1} =\sqrt{\dfrac{0.0681 - 6/239}{1.983}}= .15
\chi^2 / n = 16.33 ÷ 240 = .0681, and chance alone would average 6 / 239 = .0251 of it. What's left, .0430, divided by \tilde{r} - 1 = 1.983 (3 rows shrunk slightly for 240 adults), is .0217, and its square root is .15.
-
8. Give a Range of Plausible Values for the True V
A real association shifts χ² upward by an amount called the noncentrality parameter. Find the smallest and largest shifts that fit our χ², then convert each to V.
\left[\sqrt{\dfrac{\lambda_L}{n\,(k - 1)}},\ \sqrt{\dfrac{\lambda_U}{n\,(k - 1)}}\right] =\left[\sqrt{\dfrac{0.82}{480}},\ \sqrt{\dfrac{29.89}{480}}\right]= [.04, .25]
Picture sliding the chi-square curve to the right. Slide it only a little (\lambda_L = 0.82) and a χ² as big as our 16.33 is still rare, beaten by just 2.5% of samples: that's the smallest true association that fits. Slide it far (\lambda_U = 29.89) and ours is unusually small, with 97.5% of samples higher: that's the largest. Divided by the same 480 and square-rooted, those give .04 to .25.
-
9. Ask How Surprising the Result Would Be If the Two Were Unrelated
Finally, ask how often chance alone would produce a χ² at least this large if attachment style and coping were unrelated. This is exactly the chi-square test of independence.
p = P(\chi^2_{df} \ge \chi^2) =P(\chi^2_{6} \ge 16.33)= .012
\chi^2_{6} is a chi-square distribution with 6 df. The chance it lands at or above 16.33 is .012, about 1 in 83.
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)
- Analyze → Descriptive Statistics → Crosstabs.
- Move
attachmentinto Row(s) andcopinginto Column(s). - Click Statistics, check Chi-square and Phi and Cramer's V, and click Continue.
- Click Cells, check Observed and Expected counts and Row percentages, and click Continue, then OK.
Or paste this syntax:
CROSSTABS /TABLES=attachment BY coping /FORMAT=AVALUE TABLES /STATISTICS=CHISQ PHI /CELLS=COUNT EXPECTED ROW /COUNT ROUND CELL.
Reading the Output
Read the row percentages in the Crosstabulation first (the pattern), then Cramer's V in Symmetric Measures (the size), then the Pearson Chi-Square row (the test). SPSS gives no interval and no bias-corrected V; use R or Python for those, or report V without them.
Chi-Square Tests
| Value | df | Asymptotic Significance (2-sided) | |
|---|---|---|---|
| Pearson Chi-Square | 16.333ᵃ | 6 | .012 |
| N of Valid Cases | 240 |
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 | .261 | .012 |
| Cramer's V | .184 | .012 | |
| N of Valid Cases | 240 |
Use Cramer's V. For a table bigger than 2 × 2, SPSS's “Phi” is √(χ² / n), which is Cohen's w, not a 0-to-1 measure; here it's V × √2. Both rows show the chi-square test's p, since they're built from the same χ². The Chi-Square Tests table also prints a Likelihood Ratio row, not shown here.
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
library(DescTools)
coping_study <- read.csv("data.csv")
tab <- table(coping_study$attachment, coping_study$coping)
chisq.test(tab)
round(CramerV(tab, conf.level = 0.95), 3) # V and its noncentral chi-square CI
round(CramerV(tab, correct = TRUE), 3) # Bergsma's bias-corrected V
Pearson's Chi-squared test
data: tab
X-squared = 16.333, df = 6, p-value = 0.01207
Cramer V lwr.ci upr.ci
0.184 0.041 0.250
[1] 0.147
CramerV()'s default interval method, "ncchisq", inverts the noncentral chi-square, as in the Napkin Math. The effectsize package's cramers_v() is an alternative, but check its defaults: recent versions apply the bias correction and give a one-sided interval running up to 1 unless you set adjust = FALSE and alternative = "two.sided".
Output from a real run: R 4.6.1 (DescTools 0.99.60), run 2026-10-03.
Python
import numpy as np
import pandas as pd
from scipy import optimize, stats
from scipy.stats.contingency import association
coping_study = pd.read_csv("data.csv")
table = pd.crosstab(coping_study["attachment"], coping_study["coping"])
result = stats.chi2_contingency(table, correction=False)
chi2, df, n = result.statistic, result.dof, table.to_numpy().sum()
r, c = table.shape
k = min(r, c)
association(table, method="cramer") # V = 0.1845
# Bergsma's bias-corrected V
phi2 = max(0, chi2 / n - df / (n - 1))
r_t, c_t = r - (r - 1)**2 / (n - 1), c - (c - 1)**2 / (n - 1)
np.sqrt(phi2 / min(r_t - 1, c_t - 1)) # 0.1472
# 95% CI: invert the noncentral chi-square, then convert each lambda to V
f = lambda lam, q: stats.ncx2.cdf(chi2, df, lam) - q
# if p is .025 or more, f never crosses zero on the low side: the lower limit is 0
lam_lo = 0.0 if f(1e-10, 0.975) < 0 else optimize.brentq(f, 1e-10, 500, args=(0.975,))
lam_hi = optimize.brentq(f, 1e-10, 500, args=(0.025,))
np.sqrt([lam_lo, lam_hi]) / np.sqrt(n * (k - 1)) # [0.0414, 0.2495]
result.pvalue # 0.01207
scipy computes V but has no bias-corrected version or interval, so those take a few lines. The lower limit's search only works when p is below .025; otherwise f never crosses zero on the low side, so the code sets the lower limit to 0 rather than searching.
Output laid out from this page's computed results, not captured from a live run; labels and layout may differ slightly in your version.
Impact
Effect Size
Cramér's V is itself the effect size: χ² as a share of n(k − 1), the largest χ² a table this shape can hold, square-rooted. It runs from 0 (statistical independence) to 1, the most association the table's shape allows: each category of the variable with more categories goes with just one category of the other, so knowing it tells you the other exactly. It can reach 1 in a table of any size. That makes it easier to compare than χ² or the contingency coefficient, but lopsided row or column totals can keep V below 1 even in the strongest association they allow (ours cap it at about .91), and its conventional benchmarks shrink as the table's smaller side grows (below). So compare Vs from tables of similar shape, or compare w, which puts them on Cohen's common chi-square effect-size scale, though it can't make tables with different categories and margins fully comparable.
Attachment style and first coping strategy are associated at V = .18. The population value is plausibly anywhere from .04 to .25 (that interval goes with V; we have no interval for Ṽ), and the bias-corrected Ṽ is .15.
The benchmarks depend on the table. Cohen's (1992) conventions of .10, .30 and .50 are for Cohen's w, the effect size behind chi-square power. w = V × √(k − 1), where k is the smaller of the number of rows and columns, so the same conventions translate into smaller V values as the table grows:
| Smaller side of the table (k) | k − 1 | Small | Medium | Large |
|---|---|---|---|---|
| 2 (any 2 × c table, including 2 × 2) | 1 | .10 | .30 | .50 |
| 3 (our 3 × 4) | 2 | .07 | .21 | .35 |
| 4 | 3 | .06 | .17 | .29 |
| 5 | 4 | .05 | .15 | .25 |
The reason is the ceiling. A table with more categories on its smaller side can hold a bigger χ² for the same people, so the same departure from independence is a smaller share of what's possible. In a 2 × 2 table V is the size of the phi coefficient, φ, and equals w.
These are Cohen's conventional w thresholds translated into V units, not independently validated benchmarks for Cramér's V. The table's shape, how people spread across the categories and the research context all affect interpretation, and the same benchmark doesn't guarantee comparable practical importance across studies.
Our V of .18 is small by the conventions for k = 3 but not far from medium (.21). As w it's .26: most of the way from small to medium on Cohen's scale.
V runs high in small samples. Chance alone puts χ² around its df, not at 0, so a sample V is biased upward, more so with few people and many cells. With our table's totals and no association at all, V would average about .11. Bergsma's (2013) correction subtracts most of that chance share; with 240 adults in 12 cells it takes .18 down to .15. Report both when they differ.
V has no direction: it's the same whichever variable you call the outcome, and it doesn't say which categories go together. For that, go back to the percentages: 13% of avoidant adults turned first to other people, against 35% of secure adults. To say a cell stands out, check its adjusted residual (see Follow-Up and Post Hoc Tests): that cell's is −3.25, past the ±2.87 cutoff for 12 cells. Benchmarks are conventions. Whether that gap matters is a question for therapists and attachment researchers, not statistics.
Benchmarks Cramér's V at a Glance
Statistical Significance
V has no test of its own: its p is the chi-square test of independence on the same table. It answers one narrow question: if the two variables were unrelated in the population (a true V of 0), how often would a sample's counts stray at least this far from the expected counts? Below the conventional α = .05, the association is called statistically significant.
If attachment style and coping strategy were truly unrelated, 240 adults would produce a χ² of 16.33 or more about 1.2% of the time, roughly 1 in 83. That's below .05, so it's significant.
p is not the probability that the variables are unrelated, and it says nothing about how strong the association is: with 2,400 adults, a V of .06 would be significant too. That's what V and its interval are for. A significant p only rules out a population V of exactly zero.
The test and the interval don't follow quite the same rule. The chi-square test puts all 5% in the upper tail, while the two-sided 95% interval for V leaves 2.5% at each end, so the interval's lower limit clears zero only when p is below .025. Here p = .012, so the interval starts above zero, at .04; with a p between .025 and .05, the test would be significant but the interval would start at 0.
Benchmarks p at a Glance
Strength of evidence against the null hypothesis.
Power and Sample Size
Power is the chance that a study detects an effect that's really there. For V, that means the chance the chi-square test comes out significant when the population association is some size you care about. It depends on that size, the number of people, α and the df: a bigger table spreads the same sample over more cells and needs more people.
Power calculators, including the one below and G*Power, ask for Cohen's w, not V. Convert first: w = V × √(k − 1). For a table whose smaller side has 3 categories, like ours, that's V × 1.41; only when the smaller side has two categories are the two the same.
Suppose, before collecting data, we decided a V of .15 between attachment style and coping would be worth knowing about. In a 3 × 4 table that's w = .15 × √2 = .212 with 6 df. The calculator starts at the rounded w = .21, where 80% power takes about 309 adults and our 240 would have had about 67% power; with the unrounded .212 it's about 303 adults and 68%.
Researchers usually aim for at least 80% power. Plan it before collecting data, using the smallest association that would matter, converted to w. Small associations need big samples: with 6 df, 80% power for Cohen's small w = .10 (a V of .07 here) takes about 1,362 people, against 151 for a medium w = .30 (Cohen, 1992, Table 2). The calculator uses our table's df = 6 and starts at w = .21. Try it:
Other Info
Follow-Up and Post Hoc Tests
Post Hoc Tests
- Adjusted Residuals: Use after a significant χ², when you want to say which cells drive the association. Compare each cell's adjusted residual with ±1.96, or with a Bonferroni-adjusted cutoff when there are many cells: for our 12 cells, ±2.87. Only the two avoidant cells clear it: seeking support (−3.25) and withdrawing (+2.98). Every other cell is within ±2. Residuals show which cells depart most clearly from independence; they don't show that one attachment group differs significantly from each of the others, which takes targeted comparisons of those groups.
References
- Cramér, H. (1946). Mathematical methods of statistics. Princeton University Press.
- Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Lawrence Erlbaum Associates.
-
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)
- 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
- Smithson, M. (2003). Confidence intervals (Quantitative Applications in the Social Sciences, Vol. 140). SAGE Publications. https://doi.org/10.4135/9781412983761
-
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.