CalcOpenly

Chi-square test calculator

Chi-square test calculator for goodness of fit and independence in a contingency table: χ², p-value, expected counts and Cramér's V.

Updated Checked against 5 worked examples

One count per category, e.g. how often each face of a die came up.
More options
Each one removes a degree of freedom (e.g. 1 when fitting a Poisson mean).
Try
p-value
p-value: 0.578555
Shown to up to 6 decimal places, half-up
Decision
Fail to reject H₀
χ² statistic
3.8
Degrees of freedom
5
Critical value
11.0705
Smallest expected count
20

Fail to reject H₀ at α = 0.05. If every category were equally likely, a result at least this extreme would turn up with probability 0.5786. The p-value is not the probability that H₀ is true, and not rejecting H₀ does not show it is true — the sample may be too small to detect a real effect. The largest contribution comes from category 1 (observed 15, expected 20).

p-value area under χ² with 5 df

00.050.10.1505101520χ²Densityχ² = 3.8critical 11.07

χ² contribution per category, observed vs expected (blue: above, orange: below)

1: 15 vs 201.252: 22 vs 200.23: 18 vs 200.24: 25 vs 201.255: 17 vs 200.456: 23 vs 200.45
Observed, expected and contribution to χ² (6 rows)
CategoryObservedExpected(O − E)²/E
115201.25
222200.2
318200.2
425201.25
517200.45
623200.45
How it's calculated S
  1. Hypotheses

    H0:counts follow the equal proportions,H1:they don’tH_0: \text{counts follow the equal proportions},\quad H_1: \text{they don't}
  2. Expected counts

    Ei=N wi∑w⇒E=(20, 20, 20, 20, 20, 20)E_i = N\,\frac{w_i}{\sum w} \Rightarrow E = (20,\ 20,\ 20,\ 20,\ 20,\ 20)
  3. Statistic

    χ2=∑(O−E)2E=1.25+0.2+0.2+1.25+0.45+0.45=3.8\chi^2 = \sum \frac{(O-E)^2}{E} = 1.25 + 0.2 + 0.2 + 1.25 + 0.45 + 0.45 = 3.8
  4. Degrees of freedom

    ν=k−1−m=5\nu = k - 1 - m = 5
  5. p-value

    p=P(χ52≥3.8)=0.57855529p = P(\chi^2_{5} \ge 3.8) = 0.57855529
  6. Decision

    p>α=0.05⇒do not reject H0p > \alpha = 0.05 \Rightarrow \text{do not reject } H_0

    Equivalently, compare χ² with the critical value 11.0705.

About the chi-square test calculator

Pearson's chi-square test compares observed counts with the counts a hypothesis predicts: χ² = Σ(O − E)²/E. The goodness-of-fit test takes the expected counts from equal or given proportions and has k − 1 degrees of freedom, one fewer for each parameter estimated from the data. The test of independence sets E = row total × column total ÷ grand total for each cell of a contingency table and has (r − 1)(c − 1) degrees of freedom.

It answers questions such as whether a die is fair or whether a preference depends on region. The default 120 rolls (15, 22, 18, 25, 17, 23) give χ² = 3.8 on 5 df and p = 0.579, far below the 11.07 needed at α = 0.05, so the counts are consistent with a fair die.

The χ² approximation needs expected counts of about 5 or more. Cramér's V, from 0 to 1, measures how strong an association in a table is.

Worked examples

Is the die fair? (defaults)

Test
Goodness of fit
Observed counts
15, 22, 18, 25, 17, 23
Expected distribution
Equal in every category
Significance level α
0.05
χ² statistic
3.8
Degrees of freedom
5
p-value
0.578555
Decision
Fail to reject H₀
Critical value
11.0705

Checked against: χ² by hand: Σ(O − 20)²/20 = 76/20; p from the A&S 26.4.4 closed form for odd ν (pyref.chi2_sf_int); χ²₀.₉₅,₅ = 11.070 (χ² table)

Mendel's peas vs 9:3:3:1

Test
Goodness of fit
Observed counts
315 108 101 32
Expected distribution
Given ratios or counts
Expected ratios or counts
9 3 3 1
Significance level α
0.05
χ² statistic
0.470024
Degrees of freedom
3
p-value
0.925426

Checked against: Classic textbook example (χ² ≈ 0.47, p ≈ 0.93); exact χ² with Python fractions, p from A&S 26.4.4

2×2 table

Test
Independence
Contingency table
20 30 30 20
Significance level α
0.05
χ² statistic
4
Degrees of freedom
1
p-value
0.0455
Cramér's V
0.2

Checked against: All E = 25, χ² = 4·25/25 = 4; p = erfc(√2) = 0.0455003 (Python math.erfc); V = √(4/100)

2×3 table (defaults)

Test
Independence
Contingency table
42 33 25 28 37 35
Significance level α
0.05
χ² statistic
4.695238
Degrees of freedom
2
p-value
0.095597

Checked against: Expected counts R·C/N and χ² with Python fractions; p = e^(−χ²/2) for ν = 2 (A&S 26.4.5)

Questions

What does the chi-square p-value mean?

It is the probability of a χ² statistic at least as large as the one observed if the null hypothesis holds, such as a fair die or independent rows and columns. For the default rolls p = 0.579: a fair die would give counts at least this uneven in about 58% of 120-roll experiments. A large p-value does not prove the die fair, since small samples can miss a real bias.

What is the minimum expected count for a chi-square test?

Cochran's (1954) rule asks that no expected count be below 1 and no more than 20% of cells be below 5. When it fails, merge sparse categories or, for a 2×2 table, use Fisher's exact test. The rule is about expected counts, not observed ones: an observed 0 is fine when its expected count is 5 or more. The warning here appears whenever any expected count is below 5.

How do you find the degrees of freedom for a chi-square test?

For goodness of fit, df = k − 1 − m, where k is the number of categories and m the number of parameters estimated from the data, so a six-sided die gives 5. For independence, df = (rows − 1) × (columns − 1): 2 for a 2×3 table and 1 for a 2×2 table. The 5% critical values for 1, 2 and 5 df are 3.841, 5.991 and 11.070.

What is Cramér's V?

Cramér's V = √(χ² / (N × (min(r, c) − 1))) rescales χ² to a 0-to-1 strength of association that does not grow with the sample size. The 2×2 worked example, χ² = 4 with N = 100, gives V = 0.2. Cohen (1988) treats 0.1, 0.3 and 0.5 as small, medium and large for a 2×2 table; tables with more rows and columns have lower thresholds.

Can I use percentages instead of counts?

No. χ² grows in proportion to the sample size, so the same percentages from 1,000 observations give 10 times the χ² of 100 observations. Entering percentages treats the sample as exactly 100 and gives the wrong p-value for any other sample size. Expected ratios, by contrast, can be on any scale: 9 3 3 1 is rescaled to the observed total.

How accurate is the chi-square test calculator?

Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 5 worked examples whose answers come from independent sources; for example, “Is the die fair? (defaults)” is checked against χ² by hand: Σ(O − 20)²/20 = 76/20; p from the A&S 26.4.4 closed form for odd ν (pyref.chi2_sf_int); χ²₀.₉₅,₅ = 11.070 (χ² table).

Where does the method come from?

NIST/SEMATECH e-Handbook of Statistical Methods, §1.3.5.15 Chi-square goodness-of-fit test; NIST/SEMATECH e-Handbook, §7.4.5 contingency tables / test of independence; Abramowitz & Stegun, Handbook of Mathematical Functions, §26.4 (χ² probability function).

About this calculator

χ2=∑(O−E)2E,Eij=Ri CjN,ν=(r−1)(c−1)\chi^2 = \sum \frac{(O - E)^2}{E},\qquad E_{ij} = \frac{R_i\,C_j}{N},\qquad \nu = (r-1)(c-1)

Sources

  1. NIST/SEMATECH e-Handbook of Statistical Methods, §1.3.5.15 Chi-square goodness-of-fit test
  2. NIST/SEMATECH e-Handbook, §7.4.5 contingency tables / test of independence
  3. Abramowitz & Stegun, Handbook of Mathematical Functions, §26.4 (χ² probability function)

Checked against references

5 worked examples with independently sourced answers ship with this calculator. They run in the test suite; you can run them here too.

Related calculators

Allow optional Google Analytics to measure page visits? Calculators work either way. Privacy and choices

Optional analytics: off.