Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Fama & French (1992) Cross-Sectional Replication

VCU – Advanced Financial Analytics (FIRE 691) | Weeks 3–5 Assignments

Full replication of Fama & French (1992) Tables 1–3 — the landmark cross-sectional asset pricing study — using 1.04 million CRSP-Compustat stock-month observations from 1962–2025.


Overview

This project tests whether size (market cap) and book-to-market (B/M) ratios explain the cross-sectional variation in stock returns, as documented by Fama & French. The analysis replicates their sorting methodology and extends it to modern data.


Data

Dataset Coverage Size
CRSP_monthly_1962_1989.csv 1962–1989 78.6 MB
CRSP_monthly_1990_2025.csv 1990–2025 283.2 MB
crsp_comp_ff1992.csv Merged CRSP-Compustat 635.4 MB
compustat_60_25.csv Compustat financials 38.9 MB

Total: 1.04M+ stock-month observations


Methodology

Weeks 3–4: FF1992 Replication

  • Merge CRSP daily returns with Compustat annual book equity (6-month lag to avoid look-ahead bias)
  • Compute size (ME = price × shares) and B/M = book equity / market equity
  • Sort into 25 size × B/M portfolios (5×5) using NYSE-only breakpoints
  • Compute value-weighted returns for each portfolio monthly
  • Estimate FF3 factor model loadings via OLS

Week 5: Cross-Sectional Fama-MacBeth Regressions

  • Monthly cross-sectional regression of returns on lagged size, B/M, and beta
  • Fama-MacBeth standard errors for inference
  • Replicate Tables 1, 2, and 3 from FF (1992)

Key Results

Table Finding Match to FF (1992)
Table 1 Small stocks earn higher returns than large stocks ✅ Within tolerance
Table 2 High B/M stocks outperform low B/M stocks ✅ Value premium confirmed
Table 3 Beta alone cannot explain cross-section ✅ Beta flat after controlling for size

Heatmap visualization of 25 portfolio average returns confirms the size and value effects — returns increase monotonically from large-growth to small-value portfolios.


Output Files

FF1992_heatmaps.png             # 5×5 size/B-M portfolio return heatmap
Table1_FF1992_1962_1989.png     # Replicated Table 1
ff3_comparison.png              # FF3 factor comparison vs. published series
my_ff3_factors.csv              # Constructed FF3 monthly factors
my_ff3_factors_complete.csv     # Final cleaned FF3 output
six_portfolio_returns.csv       # 6 size-BM portfolio returns

Tech Stack

Python pandas numpy statsmodels matplotlib Google Colab WRDS/CRSP Compustat


Virginia Commonwealth University · MS Business (Financial Analytics) · FIRE 691 Reference: Fama & French (1992), Journal of Finance

About

Replication of Fama & French (1992) Tables 1-3: cross-sectional sort on size and book-to-market using 1.04M CRSP-Compustat observations. Factor model regression. VCU FIRE 691.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages