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

Reading
0.0Model explains nothing beyond the mean
0.3 – 0.5Modest — common and often meaningful in noisy domains
0.7 – 0.9Strong fit — most variation accounted for
> 0.95Very 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.

A worked example. You regress house price on floor area and get R² = 0.62. Reading: floor area alone explains 62% of the variation in price across your sample — a strong single predictor, with 38% left to location, age, condition, and noise. Add a "neighborhood" predictor and R² climbs to 0.71 while adjusted R² rises to 0.69: the new variable earned its place. Add a random ID column and R² nudges to 0.72 but adjusted R² drops to 0.67 — a tell that the column is pure noise dressed up as fit.

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.
How Stratum computes it. Stratum's Linear Regression reports both and adjusted R² at the top of every model, alongside a full diagnostic suite — VIF for multicollinearity, leverage and Cook's distance for influential points, and residual plots for the assumptions R² can't check on its own. See the conventions page for the exact estimators and missing-value handling.

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.