Capital Market Theory - CAPM and the Efficient Frontier › Estimating Beta in Practice

Michael BrenndoerferDecember 14, 20257 min read
Quantitative FinanceAll chapters
Part 9 of 15Portfolio Theory and Investment Analysis
Chapter 47Capital Market Theory - CAPM and the Efficient Frontier › Estimating Beta in Practice
Reading section 9 of 14 · Estimating Beta in Practice · 7 minSection 9 of 14 · 7 min

Book contents

Section 9 of 14 · 7 min read

Capital Market Theory - CAPM and the Efficient Frontier › Estimating Beta in PracticeOne section · Sections in this chapter9 / 14 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

While beta is defined theoretically as a population parameter, you must estimate it from historical data. The standard approach uses regression analysis, as covered in our chapter on Regression Analysis for Financial Relationships. Understanding the practical aspects of beta estimation is essential because the choices made in estimation significantly affect the resulting beta values and their usefulness for forward-looking decisions.

The market model regresses an asset's excess returns on market excess returns:

Ri,t−Rf=αi+βi(RM,t−Rf)+ϵi,tR_{i,t} - R_f = \alpha_i + \beta_i(R_{M,t} - R_f) + \epsilon_{i,t}

where:

  • Ri,t−RfR_{i,t} - R_f: excess return of asset ii at time tt
  • αi\alpha_i: intercept (estimated alpha)
  • βi\beta_i: slope coefficient (estimated beta)
  • RM,t−RfR_{M,t} - R_f: excess return of the market at time tt
  • ϵi,t\epsilon_{i,t}: residual error term at time tt

This regression directly implements the CAPM relationship. The slope coefficient βi\beta_i estimates the asset's systematic risk, capturing how the asset's excess return responds to changes in the market's excess return. The intercept αi\alpha_i estimates the asset's alpha, though interpreting this requires caution since estimation error can make alpha appear nonzero even when the true alpha is zero.

The slope coefficient βi\beta_i estimates the asset's systematic risk. Several practical considerations affect beta estimation:

  • Estimation period: Longer periods provide more data but may include structural changes in the company. Common choices range from 2 to 5 years of monthly data or 1 to 2 years of weekly data. A company that undergoes a major acquisition or changes its business model may have a fundamentally different beta after the event than before, making historical estimates misleading.

  • Return frequency: Daily returns provide more observations but can be noisy due to bid-ask bounce and non-synchronous trading. Monthly returns are smoother but offer fewer observations. The choice involves a tradeoff between statistical precision (favoring more observations) and data quality (favoring less noisy observations).

  • Market proxy: The true market portfolio is unobservable, so practitioners use broad indices like the S&P 500, Russell 3000, or MSCI World. The choice affects beta estimates because different indices have different compositions and return characteristics. An international company's beta relative to the S&P 500 may differ from its beta relative to a global index.

  • Adjusted beta: Raw betas tend to be noisy and exhibit mean reversion toward 1.0. Companies with extreme betas tend to become more average over time as they mature or as market conditions change. Bloomberg and other providers often report adjusted betas using the Blume adjustment:

βadjusted=23βraw+13(1.0)\beta_{\text{adjusted}} = \frac{2}{3}\beta_{\text{raw}} + \frac{1}{3}(1.0)

where:

  • βadjusted\beta_{\text{adjusted}}: forecasted beta for the next period
  • βraw\beta_{\text{raw}}: historical regression beta
  • 1.01.0: beta of the market (mean reversion target)

This adjustment shrinks extreme betas toward the market average, which reflects the empirical observation that betas tend to converge toward 1.0 over time. The specific weights of two-thirds and one-third were determined empirically by Marshall Blume and represent an average rate of mean reversion across stocks.

We can visualize the effect of the Blume adjustment on a range of raw beta values to understand how it dampens extreme estimates.

Out[17]:
Visualization
Line chart comparing raw betas to Blume-adjusted betas across a range of values.
The Blume adjustment shrinks raw beta estimates toward 1.0, which reflects the empirical tendency of betas to mean-revert over time. Extreme betas are adjusted more aggressively than moderate betas.
In[18]:
Code
import numpy as np
from scipy import stats

# Estimate beta using simulated data (mimicking real regression)
np.random.seed(101)

# Simulate 3 years of monthly returns
n_months = 36
market_monthly = np.random.normal(
    0.008, 0.045, n_months
)  # ~10% annual return, ~15% vol
rf_monthly = 0.003  # ~3.6% annual

# Simulate a stock with true beta of 1.3
true_beta = 1.3
true_alpha = 0.0  # 0% alpha (consistent with CAPM)
idio_vol = 0.03
# Generate returns using Jensen's Alpha model: Ri = Rf + alpha + beta*(Rm - Rf) + epsilon
stock_monthly = (
    rf_monthly
    + true_alpha
    + true_beta * (market_monthly - rf_monthly)
    + np.random.normal(0, idio_vol, n_months)
)

# Excess returns
market_excess = market_monthly - rf_monthly
stock_excess = stock_monthly - rf_monthly

# OLS regression
slope, intercept, r_value, p_value, std_err = stats.linregress(
    market_excess, stock_excess
)

estimated_beta = slope
estimated_alpha = intercept
r_squared = r_value**2

# Confidence interval for beta
t_critical = stats.t.ppf(0.975, n_months - 2)  # 95% confidence
beta_ci_lower = estimated_beta - t_critical * std_err
beta_ci_upper = estimated_beta + t_critical * std_err

The following output summarizes the regression results, including the estimated beta and its confidence interval.

Out[19]:
Console
Beta Estimation Results
=============================================
Estimation period: 36 months
True beta: 1.30
Estimated beta: 1.418
Standard error: 0.107
95% Confidence interval: [1.200, 1.636]
Estimated alpha (monthly): 0.0060 (7.16% annualized)
R-squared: 0.837

The regression output compares the estimated parameters to the true values from our simulation. The estimated beta gives a point estimate of systematic risk, while the confidence interval defines the range where the true parameter likely lies. Notice that even with 36 months of data, the confidence interval is fairly wide, which reflects the inherent uncertainty in beta estimation. The near-zero alpha confirms that the asset was priced according to CAPM in our simulation, though in practice alpha estimates often differ from zero due to estimation error or mispricing.

Out[20]:
Visualization
Scatter plot showing stock excess returns versus market excess returns with regression line.
Beta estimation using a regression of stock excess returns on market excess returns. The positive slope of the fitted line demonstrates the asset's sensitivity to market fluctuations, while the scatter of data points reflects the impact of idiosyncratic risk on realized returns.

The R-squared value indicates how much of the stock's variance is explained by market movements. A higher R-squared suggests more systematic risk relative to idiosyncratic risk. For well-diversified portfolios, R-squared approaches 1.0 because idiosyncratic risks cancel out. For individual stocks, values typically range from 0.2 to 0.5, indicating that most of a single stock's volatility comes from firm-specific factors rather than market movements. This observation reinforces why diversification matters: individual stocks are driven largely by idiosyncratic factors that can be eliminated through portfolio construction.