What Is Adjusted R-Squared and How Does It Work?

Adjusted R-squared is a modified version of R-squared that accounts for the number of variables in a statistical model. While regular R-squared tells you what percentage of variation in your outcome is explained by your model, it has a flaw: it always goes up when you add more variables, even useless ones. Adjusted R-squared fixes this by applying a penalty for each variable you add, so it only increases when a new variable genuinely improves the model.

How Regular R-Squared Can Mislead You

R-squared ranges from 0 to 1. A value of 0.80 means your model explains 80% of the variation in your outcome. That sounds straightforward, but there’s a catch. Every time you add a new predictor variable to a regression model, R-squared will increase or stay the same. It never goes down, even if the variable you added has no real relationship with the outcome.

This happens because of how R-squared is calculated. Adding any variable, even a random one, will reduce the unexplained error in your model by at least a tiny amount, purely by chance. So if you kept throwing variables into your model, R-squared would creep upward regardless of whether those variables matter. This makes R-squared unreliable for comparing models with different numbers of predictors, and it can make an overloaded model look better than it actually is.

What Adjusted R-Squared Does Differently

Adjusted R-squared solves this problem by penalizing the score for each predictor you add. The formula is:

Adjusted R² = 1 − [(1 − R²)(n − 1) / (n − p − 1)]

Here, n is your sample size and p is the number of predictor variables. The key is in that denominator: as p increases (more predictors), the penalty grows. If you add a predictor that genuinely helps explain the outcome, the boost to R-squared will outweigh the penalty, and adjusted R-squared goes up. But if you add a predictor that doesn’t contribute meaningfully, the penalty exceeds the tiny bump in R-squared, and adjusted R-squared drops.

This makes it a practical tool for deciding whether a variable belongs in your model. When adjusted R-squared decreases after adding a variable, that’s a signal the variable is adding complexity without improving the model’s explanatory power.

How to Read the Value

Adjusted R-squared is always less than or equal to regular R-squared. It uses the same 0-to-1 scale and is interpreted the same way: an adjusted R-squared of 0.75 means your model explains about 75% of the variation in the outcome, after accounting for the number of predictors used.

What counts as a “good” value depends entirely on the field. In tightly controlled physical sciences or engineering models, values above 0.90 are common. In a study of eye surgery outcomes, for example, researchers found an adjusted R-squared of 0.944 for a model predicting postoperative results using five preoperative measurements. That means the model explained 94.4% of the variation in outcomes. In social sciences, psychology, or economics, values of 0.30 to 0.50 can be perfectly acceptable because human behavior is inherently harder to predict. There is no universal threshold that separates “good” from “bad.”

When Adjusted R-Squared Goes Negative

Unlike regular R-squared, adjusted R-squared can technically be negative. This happens when a model explains very little of the variance in the outcome while using many predictors. The penalties pile up and push the value below zero. A negative adjusted R-squared means your model is performing worse than simply using the average of the outcome as your prediction. It’s a clear sign that the model is poorly specified, either with too many irrelevant variables, too few data points, or both.

A Practical Example

Suppose you’re building a model to predict home sale prices. You start with square footage as your only predictor and get an R-squared of 0.65 and an adjusted R-squared of 0.64. You then add the number of bedrooms, and both values climb to around 0.72. So far, each variable is contributing real predictive power.

Now you add the homeowner’s favorite color. R-squared ticks up to 0.7201 because, by pure chance, the variable captures a sliver of noise. But adjusted R-squared drops to 0.71. That drop tells you the favorite-color variable isn’t earning its place in the model. Without adjusted R-squared, you might look at the slightly higher R-squared and mistakenly conclude the variable helps.

Sample Size Matters

The formula depends on your sample size (n) as well as your number of predictors (p). With a very large sample, the penalty for adding a predictor is small because (n − 1) and (n − p − 1) are close together. With a small sample, each additional predictor takes a bigger bite. This is by design: when you have limited data, each variable you add uses up more of your available information (degrees of freedom), so the penalty is appropriately harsher.

As a rule of thumb, the gap between R-squared and adjusted R-squared widens when you have many predictors relative to your sample size. If you see a large gap between the two, your model may be overfitting, meaning it’s capturing noise in your specific dataset rather than real patterns that would hold up with new data.

Limitations to Keep in Mind

Adjusted R-squared is better than regular R-squared for model comparison, but it’s not a complete solution. It still only measures how well a model fits the data it was built on. It doesn’t directly tell you how well the model would predict new, unseen data. For that, cross-validation techniques are more robust. One approach, leave-one-out cross-validated R-squared, tests the model by repeatedly predicting each data point after training on all the others, giving a more honest picture of true predictive ability.

Adjusted R-squared also tells you nothing about whether your model is correctly specified. A high value doesn’t mean you’ve identified the right variables or the right type of relationship. If the true relationship between your variables is curved but you’ve fit a straight line, adjusted R-squared might still look decent while missing the real pattern. It’s one useful number in a larger toolkit, not a final verdict on model quality.