Explore R², Standard Error of Estimate, and ANOVA in simple linear regression, including real-world applications, examples, best practices, and key interpretations for CFA® 2025 Level I candidates.
By now, you’ve explored the mechanics of fitting a simple linear regression (SLR) model (see previous sections in Chapter 10). You’ve likely practiced drawing a straight line through data points to capture how changes in an independent variable (X) might help predict the dependent variable (Y). But how do you decide if your model is doing a good job? This is where measures of fit come in. In simple linear regression, the main tools—R², Standard Error of Estimate (SEE), and an Analysis of Variance (ANOVA) framework—help you figure out whether your regression line is truly capturing the underlying relationship or basically just guessing.
I remember the first time I ran a simple regression for an investment project: I felt super excited seeing that line drawn neatly through the points, but I wasn’t sure whether the line was genuinely useful or if I was fooling myself. Understanding R², SEE, and ANOVA quickly became vital. So, in this portion, we’ll talk about each of these measures in a slightly informal, hopefully friendly, way. We’ll also walk through some real-world examples and point out a few pitfalls that might trip you up in practice.
The coefficient of determination, R², is a fancy term for a down-to-earth concept: out of all the variation in the dependent variable (Y), how much can be explained by our independent variable (X)? If you recall from earlier chapters, we often blame “randomness” or “noise” for the differences we see in outcomes, so it’s definitely good news if a large portion of the changes in Y are actually explained by X rather than by random factors.
Mathematically, in the context of a simple linear regression:
where:
• TSS (Total Sum of Squares) measures the overall variability of the dependent variable around its mean.
• RSS (Regression Sum of Squares) captures the portion of variability explained by the regression model.
• SSE (Sum of Squared Errors) is the part left unexplained by the model—the residual or error sum of squares.
R² always falls between zero and one in standard cases of ordinary least squares (OLS). An R² of 0.75, for example, means that 75% of the variability in Y is explained by X (and by your linear model). In common language, that’s pretty good. On the other hand, a small R² (like 0.05) means that X explains only 5% of Y’s variation. You might need a better predictor, or perhaps there’s a more complex relationship not captured by a simple linear framework.
Now, in simple linear regression, overfitting is less of a concern than in big, complicated models—because you only have one explanatory variable. Still, if you add more variables (in multiple regression scenarios), R² will only increase or stay the same; it never goes down. That’s why we typically move on to “adjusted R²” in multiple regression contexts. But for this chapter’s scope, you can just treat R² as a straightforward measure of how well your single X tracks changes in Y.
Suppose you are trying to predict monthly stock returns (Y) from changes in consumer sentiment (X). You gather 24 monthly observations. After running a regression, you find R² = 0.60. That means that 60% of the variance in stock returns is “explained” by consumer sentiment changes. In practice, that’s fairly high for financial markets, where so many random shocks can influence asset prices. If you only saw R² = 0.05, you might realize consumer sentiment alone does not do a stellar job at predicting those returns.
While R² is a nice ratio-based measure, it doesn’t directly tell you the typical magnitude of your model’s errors in the original units of Y. That’s where the standard error of estimate (SEE) comes into play. This measure, sometimes called the residual standard error or standard error of the regression, can be interpreted as “how far off, on average, your predictions are (in the same units of Y).”
In a simple linear regression:
We divide by \( n - 2 \) (instead of \( n \)) because we lose two degrees of freedom: one for the slope (\(\beta_1\)) and one for the intercept (\(\beta_0\)).
A smaller SEE suggests that your regression line is hugging the data more tightly. Sometimes, you’d rather see “a small average error” than a large R² if your context calls for minimal absolute predictive error. For instance, in forecasting daily changes in currency exchange rates, even a relatively low R² could still be operationally useful if your typical prediction error (SEE) is consistently small.
A quick comparison: R² is a proportion (0–1), whereas SEE is measured in the actual Y units (e.g., in dollars, returns, or basis points). One quick anecdote: I once ran a wage regression where R² was around 0.40. That might not sound super impressive. But the SEE was only $2,000 per year in a dataset where average salary was $60,000. So, in context, that was quite decent because the typical error was not that large relative to the scale of annual salary.
The phrase “analysis of variance” (ANOVA) sounds more intimidating than it is. In simple linear regression, ANOVA is just a structured way to decompose total variation (TSS) into explained (RSS) and unexplained (SSE) parts. It also provides a framework to formally test how well your model fits, typically via the F-statistic.
An ANOVA table for simple linear regression often has these rows and columns:
• Degrees of freedom (DF)
– Model: 1 (because we have one slope)
– Residual: \(n - 2\)
– Total: \(n - 1\)
• Sum of Squares (SS)
– Regression Sum of Squares (RSS)
– Sum of Squared Errors (SSE)
– Total Sum of Squares (TSS)
• Mean Square (MS)
– MS(Regression) = RSS ÷ 1
– MS(Residual) = SSE ÷ (n – 2)
• F-statistic
– F = MS(Regression) / MS(Residual)
You might notice a pattern if you recall the earlier formulas:
• TSS = RSS + SSE
• R² = RSS / TSS = 1 – SSE / TSS
• SEE = sqrt(SSE / (n – 2))
Essentially, R² tracks the ratio of what your model explains vs. the total, while SEE measures the average leftover error in actual units. The ANOVA table conveniently consolidates these calculations in one place and includes the F-statistic, which tests whether \(\beta_1 = 0\) is plausible.
If your F-statistic is high (relative to its critical value from an F-distribution with 1 and \(n – 2\) degrees of freedom), you reject the null hypothesis that \(\beta_1 = 0\). In simpler terms, you conclude that X significantly influences Y and that your linear regression is statistically meaningful at your chosen significance level.
Just a heads up: In simple linear regression, the F-stat and the t-stat on the slope coefficient \(\beta_1\) are intimately related. Indeed, \(F = t^2\). So if your slope’s t-test is significant, your overall F-test for the regression is also significant.
• R²: If R² is 0.90, you can say, “90% of the variation in Y is explained by X.” That’s powerful—but always ask if that’s realistic or if there might be overfitting or missing variables.
• SEE: If SEE is large, it means your typical prediction errors are big in absolute size. Even a decent R² can be overshadowed by a large SEE if the scale of Y is such that the errors are not acceptable.
• F-stat and p-value: A large F-statistic (or correspondingly small p-value) suggests the regression model is significantly better than having no predictor at all.
In practice, analysts often focus on a combination of these to gauge whether the model is both statistically significant and practically useful, given the scale of the data.
Below is a Mermaid diagram that visually breaks down how TSS splits into RSS and SSE in a simple linear regression:
flowchart LR A["TSS (Total Sum of Squares)"] --> B["Regression Sum of Squares (RSS)"] A --> C["Sum of Squared Errors (SSE)"]
TSS represents all the variation in the dependent variable. The regression line “explains” RSS portion, while SSE is the leftover unexplained part. R² tells you how big the RSS piece is, relative to the whole pie (TSS).
Let’s do a step-by-step scenario. Imagine you are a junior analyst at a small asset management firm. Your boss wants you to build a simple model to see if changes in long-term interest rates (X) predict changes in a broad real estate investment trust (REIT) index (Y). You have 30 monthly observations.
You run a simple linear regression in Python (or any statistical software) with: Y = \(\beta_0\) + \(\beta_1\)X + \(\epsilon\).
The resulting output:
– R² = 0.45
– SSE = 420.0
– TSS = 763.6
– So, RSS = 763.6 – 420.0 = 343.6
– SEE = sqrt(420.0 / (30 – 2)) = sqrt(420 / 28) ≈ sqrt(15) ≈ 3.87
The ANOVA table might look like this (conceptually):
Source | SS | DF | MS | F-Stat = MSR / MSE |
---|---|---|---|---|
Regression | 343.6 | 1 | 343.6 | 343.6 / 15.0 ≈ 22.9 |
Residual | 420.0 | 28 | 15.0 | |
Total | 763.6 | 29 | – |
The F-stat is about 22.9. You compare it to an F distribution with (1, 28) degrees of freedom. That might yield a p-value near zero, suggesting a statistically significant relationship.
So, how do we interpret this?
• 45% of the variation in the REIT index changes is “explained” by interest rates. Not bad.
• The typical error is about 3.87 (in the same index-percentage-point units, presumably). Whether that’s good or bad depends on how large changes typically are for this index.
• The F-stat is large, so we’re confident that \(\beta_1 \neq 0\). Indeed, it suggests a meaningful predictor.
Here’s a quick snippet of how you might compute these in Python for your future reference:
1import numpy as np
2import statsmodels.api as sm
3
4X = np.array([2.1, 2.3, 2.4, 2.0, 2.5, ...]) # 30 monthly obs for interest rates
5Y = np.array([1.2, 0.8, 2.3, 1.5, 1.7, ...]) # 30 monthly obs for REIT returns
6
7X = sm.add_constant(X)
8
9model = sm.OLS(Y, X).fit()
10print(model.summary())
That summary includes R², F-stat, and other fit measures in a standard regression output.
• Confusing R² with a measure of “causality.” A high R² does not imply that X causes Y. You should interpret R² as a measure of correlation/explanatory power only.
• Ignoring the scale of SEE. If SEE is large relative to the scale of Y, you might not have a practical fit, even if the model is statistically significant.
• Relying on R² alone. You should also check residual plots, test for normality (if needed), and watch for patterns that suggest the relationship might not actually be linear.
• Over-emphasizing statistical significance. Yes, the F-stat can be impressive, but if the effect size is small in practice or if your real-world application can’t tolerate the error magnitudes, the significance alone isn’t enough.
• Missing the degrees of freedom. Always remember you lose two degrees of freedom in a simple regression. This becomes especially important when your sample size is small.
• Use visual diagnostics. Plot your fitted line and residuals to spot any glaring patterns.
• Evaluate both R² and SEE. If they both suggest a strong fit, it’s more reliable.
• Conduct out-of-sample predictions. Sometimes, your in-sample fit might look great, but the model fails to predict well in new data.
• Check robust standard errors if you suspect heteroskedasticity (though that’s more relevant in later chapters when we handle more advanced topics).
Measures of fit—R², SEE, and ANOVA—are central to deciding whether your regression line can reliably capture the relationship between X and Y. R² answers “how much,” SEE answers “how badly are we off in our predictions,” and ANOVA ties everything together into a neat framework that, via the F-statistic, shows whether the overall model is worth keeping.
In finance, these tools guide us in everything from forecasting returns to assessing macroeconomic indicators’ impact on portfolio performance. Understanding them is a core step toward deeper regression analysis, especially once you move on to multiple regression (Chapter 14) or time-series analysis (Chapter 12). Keep practicing. Once you start seeing how these measures fluctuate under different conditions, you’ll develop an intuitive feel that helps you build better analyses throughout your CFA career—trust me, I’ve been there, double-checking that R² score at 2 AM!
• Angrist, J. D., & Pischke, J.-S. (2008). Mostly Harmless Econometrics. Princeton University Press.
• Greene, W. (2017). Econometric Analysis. Pearson.
• See also Chapter 8 of this Volume for deeper discussion of hypothesis testing related to regression coefficients.
• For multiple-regression context, refer to Chapter 14 of this Volume.
Important Notice: FinancialAnalystGuide.com provides supplemental CFA study materials, including mock exams, sample exam questions, and other practice resources to aid your exam preparation. These resources are not affiliated with or endorsed by the CFA Institute. CFA® and Chartered Financial Analyst® are registered trademarks owned exclusively by CFA Institute. Our content is independent, and we do not guarantee exam success. CFA Institute does not endorse, promote, or warrant the accuracy or quality of our products.