Reporting · ~10 min read
How to Report Chi-Square Test Results
A percentage without its denominator, and a chi-square without an effect size, are the two omissions reviewers flag first in a categorical result.
Published
In short
A complete chi-square result gives the count and percentage in each group, the χ² value with its degrees of freedom, the exact P value, and an effect size with a confidence interval. In AMA format: hypertension was more prevalent among patients with diabetes than among those without (207 of 304 [68.1%] vs 294 of 553 [53.2%]; χ²1 = 18.00; P < .001; odds ratio, 1.88; 95% CI, 1.40–2.52). Name the version of the test you ran in the Methods section.
The chi-square test is one of the most familiar statistics in clinical papers, and one of the easiest to report incompletely. The usual sentence reads "hypertension was more common in the diabetic group (P < .05)", which tells the reader nothing about how many patients were compared, how large the difference was, or which test produced the P value. This guide assumes the test itself has already been chosen correctly; a separate guide covers when Fisher's exact test should replace it. What follows is how to write the result up so that a statistical reviewer has nothing left to ask for.
The elements a complete chi-square result needs
The SAMPL guidelines for statistical reporting in biomedical journals ask that a categorical comparison give the numerator and denominator behind every percentage, the test used, and an estimate of the effect with its precision, not only whether the test was significant.3 For a 2×2 table that comes to five items.
| Element | Written as | What it prevents |
|---|---|---|
| Counts and percentages | 207 of 304 (68.1%) vs 294 of 553 (53.2%) | A percentage with no denominator |
| The statistic and its df | χ²1 = 18.00 | A P value with no test behind it |
| The exact P value | P < .001 (or P = .03, never P < .05) | A threshold standing in for a number |
| An effect size with its CI | OR, 1.88; 95% CI, 1.40–2.52 | Significance with no size |
| Which test, in Methods | Pearson chi-square, no continuity correction | A result nobody can reproduce |
The percentage is the item most often shipped alone. "68% of diabetic patients" means one thing when it is 207 of 304 and something quite different when it is 13 of 19. The American Medical Association (AMA) Manual of Style asks for the numerator and denominator alongside any percentage where the denominator is not obvious, and in a results sentence it never is.2
A real result: hypertension and diabetes in 857 patients with acute coronary syndrome
The example below uses a public teaching registry of 857 patients admitted with acute coronary syndrome (ACS) at a Korean cardiovascular centre.1 The question is whether hypertension is more prevalent in patients with diabetes. Both variables are binary, every expected cell count is far above 5 (the smallest is 126.3), so the Pearson chi-square test of independence is correctly routed and no exact test is needed.
| Hypertension | Diabetes: No | Diabetes: Yes |
|---|---|---|
| No | 259 (46.8%) | 97 (31.9%) |
| Yes | 294 (53.2%) | 207 (68.1%) |
χ²(1) = 18.00 · P < .001 · Cramér's V = 0.14 · OR = 1.88 (95% CI, 1.40–2.52)
A chi-square test of independence showed a significant association between 'HBP' and 'DM', χ²(1) = 18.000, P < .001, Cramér's V = 0.145 (small effect). Bias-corrected Cramér's V = 0.141 (95% CI, 0.076 to 0.205).
Column percentages. Risk summary with diabetes as the exposure and hypertension as the event: odds ratio 1.88 (95% CI, 1.40–2.52); risk ratio 1.28 (95% CI, 1.15–1.43); absolute risk difference 14.9 percentage points (95% CI, 8.1–21.4). Figures computed with scipy from real data (n = 857).
Example data: the acs dataset from the moonBook clinical teaching package (Moon KW), 857 patients with acute coronary syndrome (CRAN.R-project.org/package=moonBook). Computed with scipy, not generated.
Three things in that card are worth noticing before the sentence gets written. The table carries counts and column percentages together, so the reader can see that 68.1% is 207 of 304. The P value is floored at P < .001 rather than printed as P = .000, which is a rounding artefact and not a value. And the effect is given on two scales: Cramér's V describes the strength of the association across the whole table (0.14, which is small by the usual benchmarks even though the P value is tiny), and the odds ratio describes the size of the difference between the two groups in a form a clinician can act on.
Writing the AMA sentence
The AMA Manual of Style, which governs JAMA Network journals and most surgical and clinical titles, italicises the Latin statistic symbols, leaves Greek symbols upright, writes P as a capital italic with no leading zero, and places the degrees of freedom as a subscript to the χ² symbol or in parentheses after it.2 A finished results sentence for the table above reads:
"Hypertension was more prevalent among patients with diabetes than among those without (207 of 304 [68.1%] vs 294 of 553 [53.2%]; χ²1 = 18.00; P < .001; odds ratio, 1.88; 95% CI, 1.40–2.52)."
Two small formatting points. First, StatsPlease prints P values to three decimals, so a result of .075 appears as P = .075 in the output card. The AMA convention is two digits for P ≥ .01 (P = .08), three digits between .001 and .01 (P = .006), and P < .001 below that, with one exception: a value that would round across .05, such as .046, keeps its third digit.2 Trim the third decimal when you write the manuscript sentence. Second, the CONSORT statement's outcomes item asks for "the estimated effect size and its precision (such as 95% confidence interval)", which is why the odds ratio and its interval belong in the sentence and not only in a table.6
Common mistake
Reading an odds ratio as a relative risk. An OR of 1.88 means the odds of hypertension were 1.88 times higher in patients with diabetes. It does not mean hypertension was 1.88 times as likely: the risk ratio here is 1.28, because the outcome is common (over half of the cohort has it) and the odds ratio drifts away from the risk ratio as the outcome becomes more frequent.4 If you want the sentence to say "times as likely", report the risk ratio, or give the absolute risk difference of 14.9 percentage points, which needs no translation at all. The odds ratio is the right choice when the result comes from a logistic regression or a case-control design, where the risk ratio is not estimable.
Say which chi-square you ran. SPSS prints a Pearson chi-square, a continuity-corrected (Yates) chi-square, and a likelihood-ratio chi-square in the same table, and their values differ. For this 2×2 table the uncorrected Pearson statistic is 18.00 and the Yates-corrected statistic is 17.39; both give P < .001 here, but on a smaller table they can land on opposite sides of .05, and a reader who tries to reproduce your number needs to know which one you quoted. The continuity correction is widely regarded as over-conservative, and the uncorrected Pearson test is the usual choice when expected counts are adequate.5
When Fisher's exact test replaces chi-square, and how the sentence changes
The chi-square statistic relies on a large-sample approximation. When an expected cell count falls below 5 in a 2×2 table, or the total sample is small, that approximation stops being trustworthy, and an exact test is the safer choice; Campbell's review of the options recommends the N−1 chi-square when all expected counts are at least 1 and the Fisher-Irwin test otherwise.5 The engine applies the same threshold automatically: it computes the expected counts first and routes to Fisher's exact test when they are sparse, so the reader chooses the preset, not the test.
The reported sentence then loses two items. There is no χ² value and no degrees of freedom, because an exact test does not produce a test statistic in that sense. What remains is the test name, the exact P value, and the effect size with its interval. For a hypothetical 45-patient table (5 of 21 vs 1 of 24, computed so the figures are internally consistent) the sentence would read: "Wound infection occurred in 5 of 21 patients (23.8%) in the open group and 1 of 24 (4.2%) in the laparoscopic group (Fisher exact test, P = .08; odds ratio, 7.19; 95% CI, 0.77–67.5)." Wide intervals like that one are the point of reporting them: they show the reader how little the data can rule out.
The Methods sentence
The results sentence only makes sense if the Methods section has already told the reader what was done. One sentence covers it: "Categorical variables are reported as counts and percentages and were compared using the Pearson chi-square test without continuity correction, or Fisher's exact test where any expected cell count was below 5. Effect sizes are reported as odds ratios with 95% confidence intervals. All tests were 2-sided with α = .05." If the table is larger than 2×2, say so, and report Cramér's V rather than an odds ratio as the effect size; the guide to R×C tables covers that case.
This is also where ChatGPT and the other large language models quietly fail you. Ask one to "write up a chi-square result" and it produces a fluent, correctly formatted AMA sentence around a χ² value and an odds ratio it never computed from your table, and the numbers will be plausible enough that nobody notices until a reviewer recalculates them. The result above was computed with scipy from the actual counts, not generated; run the same 2×2 table through SPSS or R and every figure matches.
Try it yourself
Reproduce this result
The table above comes from a public dataset. Compute the same chi-square in either tool and the outputs agree, because both are doing the same computation, not generating it.
In StatsPlease
- Upload the dataset as a CSV.
- Open the Analysis tab.
- Set Outcome to HBP (hypertension) and Group to DM (diabetes).
- Press the Category Patterns preset button. There is no separate run step; pressing the preset runs the analysis. The engine checks the expected cell counts, keeps the Pearson chi-square here because every count is above 5, and computes χ²(1) = 18.00, P < .001, Cramér's V = 0.145, and the 2×2 risk summary (odds ratio 1.88, risk ratio 1.28, absolute risk difference 14.9 percentage points, each with a 95% CI).
- Read the AMA-formatted result on the Results tab.
In SPSS
- Open the same CSV in SPSS.
- Analyze → Descriptive Statistics → Crosstabs. Row = DM, Column = HBP.
- Statistics: tick Chi-square, Phi and Cramer's V, and Risk. Cells: tick Observed, Expected, and Row percentages.
- Read the Pearson Chi-Square row (value 18.00, df 1, Asymptotic Significance) and the Risk Estimate table for the odds ratio and its 95% CI. Check the footnote under the chi-square table for the minimum expected count.
Frequently asked questions
Do I report the odds ratio or the relative risk with a chi-square test?
Either is acceptable as the effect size for a 2 by 2 table, but say which one you are quoting and read it correctly. In the example above the odds ratio is 1.88 and the relative risk is 1.28, and the gap between them is the usual trap: an odds ratio of 1.88 means the odds of hypertension were 1.88 times higher in patients with diabetes, not that hypertension was 1.88 times as likely. When the outcome is common, as it is here, the relative risk or the absolute risk difference is the more honest number for a clinical reader.
Should I use the Yates continuity correction?
For a 2 by 2 table with expected counts of 5 or more, the uncorrected Pearson chi-square is the standard choice and the continuity correction is known to be conservative. Whichever you use, name it in the Methods section so a reader can reproduce the statistic. In the example above the two versions give chi-square values of 18.00 and 17.39 and the same conclusion.
When should I report Fisher exact test instead of chi-square?
When any expected cell count in a 2 by 2 table falls below 5, or the total sample is small, the chi-square approximation becomes unreliable and an exact test is the safer choice. The reported sentence then changes: there is no chi-square statistic and no degrees of freedom, only the test name, the exact P value, and the effect size with its confidence interval.
You might also read
References
- Moon KW. moonBook: Functions and Datasets for the Book by Keon-Woong Moon. R package; the acs dataset (857 patients with acute coronary syndrome, demographic and laboratory data, a Korean cardiovascular centre teaching registry). https://CRAN.R-project.org/package=moonBook
- Christiansen SL, Iverson C, Flanagin A, et al. AMA Manual of Style: A Guide for Authors and Editors. 11th ed. New York, NY: Oxford University Press; 2020. https://doi.org/10.1093/jama/9780190246556.001.0001
- Lang TA, Altman DG. Basic statistical reporting for articles published in biomedical journals: the "Statistical Analyses and Methods in the Published Literature" or the SAMPL Guidelines. Int J Nurs Stud. 2015;52(1):5-9. https://doi.org/10.1016/j.ijnurstu.2014.09.006
- McHugh ML. The chi-square test of independence. Biochem Med (Zagreb). 2013;23(2):143-149. https://doi.org/10.11613/BM.2013.018
- Campbell I. Chi-squared and Fisher-Irwin tests of two-by-two tables with small sample recommendations. Stat Med. 2007;26(19):3661-3675. https://doi.org/10.1002/sim.2832
- Schulz KF, Altman DG, Moher D; CONSORT Group. CONSORT 2010 Statement: updated guidelines for reporting parallel group randomised trials. BMJ. 2010;340:c332. https://doi.org/10.1136/bmj.c332
Two ways forward from here.
Work through it yourself using the guidance above; the exercise section shows the exact steps in SPSS. Or upload your dataset to StatsPlease, set your two categorical variables as Outcome and Group, and press the Category Patterns preset; pressing it runs the analysis, checks the expected counts, chooses chi-square or Fisher's exact automatically, and returns the AMA-formatted sentence with the odds ratio and its confidence interval, computed, not generated.
Try StatsPlease free