R-Squared (R²)
R-squared is the share of the variation in your outcome that a model explains — from 0% to 100%. It's the headline number on every regression, and a high one is not the same thing as a good model.
What it is
You fit a model to predict some outcome y — sales, blood pressure, exam scores. R-squared (the coefficient of determination) answers one question: of all the variation in y, how much does the model account for? It runs from 0 to 1, usually read as a percentage.
An R² of 0 means the model does no better than just guessing the mean of y every time. An R² of 1 means the model's predictions hit every point exactly. An R² of 0.7 means the model explains 70% of the ups and downs in the data, leaving 30% to everything it didn't capture.
The formula
R-squared compares the errors your model leaves behind against the variation you started with:
SS_res Σ (yᵢ − ŷᵢ)²
R² = 1 − ──────── = 1 − ───────────────
SS_tot Σ (yᵢ − ȳ)²
Here SS_res = Σ(yᵢ − ŷᵢ)² is the residual sum of squares — how far the actual values yᵢ sit from the model's predictions ŷᵢ. SS_tot = Σ(yᵢ − ȳ)² is the total sum of squares — how far the values sit from their own mean ȳ. If the model's errors are tiny next to the natural spread, the ratio is near 0 and R² is near 1.
In simple linear regression — one predictor — R² is exactly the square of the correlation coefficient: R² = r². An r of 0.8 means the line explains 0.64, or 64%, of the variation.
Adjusted R²
Plain R² has a flaw: it never goes down when you add a predictor, even a random, meaningless one. Throw enough columns at a model and R² creeps toward 1 — not because the model is better, but because more knobs can always fit the existing points a little tighter. That makes raw R² useless for comparing models of different sizes.
Adjusted R² fixes this by charging a penalty for each predictor. A variable that genuinely helps still raises adjusted R²; one that doesn't earn its keep lowers it. For any model with more than one predictor, adjusted R² is the honest number to compare by.
How to read it
| R² | Reading |
|---|---|
0.0 | Model explains nothing beyond the mean |
0.3 – 0.5 | Modest — common and often meaningful in noisy domains |
0.7 – 0.9 | Strong fit — most variation accounted for |
> 0.95 | Very tight — or a sign of overfitting; check it |
There is no universal "good" value. A 0.3 in social science can be a real finding; a 0.9 in a physics lab might be disappointingly loose. The number only means something against the expectations of your field.
Two cautions
- A high R² is not a good or correct model. It can come from overfitting — memorizing your particular sample — or from a relationship that's strong but meaningless (two trending time series, a confounder). High fit, wrong conclusions.
- A low R² is not always bad. Some outcomes are inherently noisy — individual human behavior, financial returns. A model that captures a real 20% of that variation can be both correct and useful.
- R² alone never validates a model. Always read the p-values on the coefficients and check residual diagnostics — patterns in the residuals reveal problems R² can't see.
See also
- Related terms
- Correlation Coefficient · P-Value
- On the blog
- Linear regression · Reading regression diagnostics
- In the app
- Build a linear regression and read R² in the report
R-squared is the right opening question — how much does this model explain? — but never the closing one. Compare models on adjusted R², confirm the coefficients matter, and let the residual plots have the last word.