Home › Research Methodology › Effect Size Explained
Below, we explain effect sizes in plain language and calculate several of them live on real data from ScholarsColab.
Common effect sizes at a glance
| Effect size | Used with | Small / medium / large (rough guide) |
|---|---|---|
| Cohen’s d | t-test (difference in means) | 0.2 / 0.5 / 0.8 |
| Correlation r | Correlation, Mann-Whitney (rank-biserial) | 0.1 / 0.3 / 0.5 |
| Eta squared (η²) | ANOVA | 0.01 / 0.06 / 0.14 |
| Cramér’s V | Chi-square | Depends on table size; about 0.1 / 0.3 / 0.5 |
| Odds ratio | Logistic regression, 2×2 tables | 1 means no effect; further from 1 means larger |
Worked example: how big are the differences that matter in publishing?
We calculate several effect sizes for five real comparisons, notebook-style. Every result is calculated live, and you can run the same code yourself.
The data: 41,792 papers, mostly published between 1998 and 2026, by 967 ScholarsColab mentors (data updated 15 October 2026). The file you will load is anonymised: no paper titles, journal names or researcher identities.
Step 1: Load the data
import numpy as np
import pandas as pd
from datetime import date
# The ScholarsColab Research Methods Index (papers level): anonymised, updated daily
DATA = "https://scholarscolab.com/wp-json/scholarscolab/v1/research-methods-data?level=papers"
papers = pd.read_csv(DATA, comment="#") # lines starting with # hold the citation
def p_text(p):
return "< 0.001" if p < 0.001 else f"= {p:.3f}"
print(papers.shape)
papers.head()(41792, 15)
| year | citations | venue_type | venue_group | title_words | title_colon | review | systematic | machine_learning | deep_learning | iot | blockchain | covid | sustainability | discipline | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2023.0 | 31 | journal | Other journals | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Medicine & health |
| 1 | 2024.0 | 24 | journal | Other journals | 13 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | Medicine & health |
| 2 | 2024.0 | 12 | journal | Other journals | 16 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Medicine & health |
| 3 | 2024.0 | 9 | journal | Other journals | 20 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Medicine & health |
| 4 | 2024.0 | 9 | journal | Generic "International Journal of" | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Medicine & health |
Step 2: Calculate effect sizes for five comparisons
For each comparison we calculate the ratio of medians, Cohen’s d (on log citations) and the rank-biserial correlation, plus the p-value.
from scipy import stats
THIS_YEAR = date.today().year
w = papers[papers["year"].between(THIS_YEAR - 16, THIS_YEAR - 4)]
def effect_sizes(a, b):
u, p = stats.mannwhitneyu(a, b, alternative="two-sided")
la, lb = np.log(a + 1), np.log(b + 1)
pooled = np.sqrt(((len(la) - 1) * la.var() + (len(lb) - 1) * lb.var()) / (len(la) + len(lb) - 2))
return {"n A": len(a), "n B": len(b), "median ratio": a.median() / max(b.median(), 0.5),
"Cohen's d (log)": (la.mean() - lb.mean()) / pooled,
"rank-biserial r": 2 * u / (len(a) * len(b)) - 1, "p": p}
comparisons = {
"IEEE Transactions vs other journals": (w.venue_group == "IEEE Transactions / Journals", w.venue_group == "Other journals"),
"Open-access mega vs other journals": (w.venue_group == "Open-access mega-journals", w.venue_group == "Other journals"),
"Review vs original": (w.review == 1, w.review == 0),
"Journal vs conference": (w.venue_type == "journal", w.venue_type == "conference"),
"Colon in title vs none": (w.title_colon == 1, w.title_colon == 0),
}
table = pd.DataFrame({name: effect_sizes(w.loc[a, "citations"], w.loc[b, "citations"])
for name, (a, b) in comparisons.items()}).T
table.round(3)| n A | n B | median ratio | Cohen's d (log) | rank-biserial r | p | |
|---|---|---|---|---|---|---|
| IEEE Transactions vs other journals | 252.0 | 12173.0 | 7.722 | 1.265 | 0.707 | 0.000 |
| Open-access mega vs other journals | 813.0 | 12173.0 | 3.778 | 0.803 | 0.478 | 0.000 |
| Review vs original | 1115.0 | 20930.0 | 2.333 | 0.415 | 0.206 | 0.000 |
| Journal vs conference | 16491.0 | 4101.0 | 1.600 | 0.315 | 0.176 | 0.000 |
| Colon in title vs none | 4026.0 | 18019.0 | 1.833 | 0.332 | 0.164 | 0.000 |
Step 3: Compare the sizes in a chart
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 3.5))
ax.barh(table.index, table["rank-biserial r"], color="lightgreen", edgecolor="green")
for x in (0.1, 0.3, 0.5):
ax.axvline(x, color="grey", linestyle=":")
ax.set_xlabel("Rank-biserial r (0.1 small, 0.3 medium, 0.5 large)")
ax.invert_yaxis()
plt.tight_layout()
plt.show()The dotted guide lines in the code mark the usual small, medium and large thresholds. Use them as rough guides only; what counts as a large effect depends on your field.
How to report effect sizes
- Choose the effect size that matches your test (see the table above).
- Report it with a confidence interval where possible.
- Interpret it in your field’s context; the small/medium/large labels are only rough guides.
- Translate it into plain words, such as “reviews receive about twice as many citations”.
- Use effect sizes from earlier studies to plan your sample size (power analysis).
Common mistakes reviewers point out
- Reporting only p-values. Many journals now require effect sizes.
- Treating a significant result as important without looking at its size.
- Using Cohen’s labels mechanically without considering the field.
- Choosing an effect size that does not match the test or the data.
Frequently asked questions
What is an effect size?
An effect size is a number that describes how large a difference or relationship is, independent of sample size.
Why is effect size important?
Because p-values depend heavily on sample size. With large samples, trivial effects become significant; effect sizes show whether a result matters in practice.
What is Cohen’s d?
Cohen’s d is the difference between two group means divided by their pooled standard deviation. Values around 0.2, 0.5 and 0.8 are often called small, medium and large.
What effect size goes with the Mann-Whitney U test?
Common choices are the rank-biserial correlation and the probability of superiority, the chance that a random value from one group exceeds a random value from the other.
How is effect size used in sample size calculation?
Power analysis uses the expected effect size, the significance level and the desired power to calculate how many participants a study needs.
Use this data in your own work
ScholarsColab (2026). ScholarsColab Research Methods Index [Data set]. Vidhilekha Soft Solutions Pvt Ltd. Retrieved 15 October 2026, from https://scholarscolab.com/research-methodology/. Licensed under CC BY 4.0.Download the data (CSV) →Need help applying this to your research?
Discuss your research problem with a PhD mentor, hand the whole project to a research project manager, or post your project and let matched experts apply.
Mentors whose published work uses this approach:
Dr. Ajay SinghDoctorate in Food Science46 related papers · View profile →
Reza Alizadeh-NavaeiMazandaran University of Medical sciences31 related papers · View profile →
Dr.Narasimha GollaSri Venkateswara University,Tirupati18 related papers · View profile →
Moses EMETEREBowen University18 related papers · View profile →
