Stylized Facts of Financial Returns › Implications for Financial Modeling

Michael BrenndoerferNovember 21, 20254 min read
Quantitative FinanceAll chapters
Part 5 of 15Stochastic Calculus and Pricing Theory
Chapter 25Stylized Facts of Financial Returns › Implications for Financial Modeling
Reading section 10 of 14 · Implications for Financial Modeling · 4 minSection 10 of 14 · 4 min

Book contents

Section 10 of 14 · 4 min read

Stylized Facts of Financial Returns › Implications for Financial ModelingOne section · Sections in this chapter10 / 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

The stylized facts we've documented directly affect model choice and risk estimates in quantitative finance.

Limitations of the Normal Distribution

The normal distribution, despite its mathematical elegance, fails to capture the essential features of financial returns. Using normal assumptions leads to systematic underestimation of tail risk. The Black-Scholes model, which we'll derive in upcoming chapters, assumes log returns follow a normal distribution and volatility is constant. In light of what we've learned, these assumptions are clearly violated.

This doesn't mean Black-Scholes is useless. It remains the foundation of options pricing. But you must understand its limitations and adjust accordingly. The implied volatility smile we'll study in Part III arises precisely because the market prices in fat tails that Black-Scholes ignores.

Alternative Distributions

Several distributions better capture the heavy-tailed nature of financial returns:

  • Student's t-distribution: Adds a degrees-of-freedom parameter that controls tail heaviness. As degrees of freedom decrease, tails become fatter.
  • Generalized hyperbolic distributions: A flexible family that nests many special cases, allowing calibration to both skewness and kurtosis.
  • Stable distributions: Capture the possibility of infinite variance, relevant for highly fat-tailed data.
In[35]:
Code
import numpy as np
from scipy import stats

# Fit t-distribution to returns
params = stats.t.fit(log_returns)
df_fitted, loc_fitted, scale_fitted = params

# Compare tail probabilities
x_threshold = 4 * log_returns.std()

# Actual probability
actual_prob = np.mean(np.abs(log_returns) > x_threshold)

# Normal probability
normal_prob = 2 * (
    1
    - stats.norm.cdf(
        x_threshold, loc=log_returns.mean(), scale=log_returns.std()
    )
)

# t-distribution probability
t_prob = 2 * (
    1 - stats.t.cdf(x_threshold, df_fitted, loc=loc_fitted, scale=scale_fitted)
)

# Calculate percentages for display
actual_prob_pct = actual_prob * 100
normal_prob_pct = normal_prob * 100
t_prob_pct = t_prob * 100
Out[36]:
Console
Distribution Fit Comparison
==================================================
Fitted t-distribution degrees of freedom: 54.85

Probability of |return| > 4σ:
  Actual:       0.000160 (0.0160%)
  Normal:       0.000069 (0.0069%)
  t-dist:       0.000160 (0.0160%)

The fitted t-distribution with its low degrees of freedom captures the tail behavior much better than the normal distribution. A degrees of freedom parameter around 3-5 is typical for daily equity returns.

Volatility Modeling

Volatility clustering motivates conditional heteroskedasticity models where volatility is modeled as a time-varying process. The ARCH (Autoregressive Conditional Heteroskedasticity) model introduced by Robert Engle and the GARCH generalization by Tim Bollerslev explicitly model how volatility evolves over time. These models are essential for:

We'll explore these models in detail in Part IV on Time Series Models.

Risk Management Implications

Traditional risk measures based on normal distributions dramatically underestimate tail risk. Consider Value at Risk (VaR) at the 99% confidence level:

In[37]:
Code
import numpy as np
from scipy import stats

# Calculate VaR under different distributional assumptions
confidence = 0.99

# Historical VaR (non-parametric)
historical_var = -np.percentile(log_returns, 100 * (1 - confidence))

# Normal VaR
normal_var = -stats.norm.ppf(1 - confidence) * log_returns.std()

# t-distribution VaR
t_var = -stats.t.ppf(1 - confidence, df_fitted, loc=0, scale=scale_fitted)

# Count actual exceedances
exceedances_historical = np.sum(log_returns < -historical_var)
exceedances_normal = np.sum(log_returns < -normal_var)
exceedances_t = np.sum(log_returns < -t_var)
expected_exceedances = len(log_returns) * (1 - confidence)
Out[38]:
Console
Value at Risk Comparison (99% confidence)
=======================================================
Method               VaR          Exceedances  Expected  
-------------------------------------------------------
Historical           2.1186%   63           62.6
Normal               2.0941%   66           62.6
t-distribution       2.1171%   63           62.6

The normal distribution VaR typically shows more exceedances than expected (more days with losses exceeding the VaR threshold), indicating underestimation of risk. The t-distribution and historical approaches provide more conservative and accurate estimates.

Out[39]:
Visualization
Histogram of negative daily returns with three vertical lines marking the 99% VaR thresholds under historical, normal, and t-distribution assumptions, showing the normal VaR is the least conservative.
Comparison of 99% Value at Risk thresholds using historical, normal, and t-distribution methods. The normal VaR threshold is less conservative than the alternatives, which shows how Gaussian assumptions can lead to an underestimation of tail risk.