Testing the hypothesis that stock returns are predictable using the lagged dividend-price ratio (d/p), following the Cochrane (2008) and Goyal & Welch (2008) frameworks. Analysis on CRSP annual and monthly data spanning 1927–2024.
Can past dividend-price ratios predict future stock returns? If so, over what horizon is predictability strongest?
| Dataset | Source | Coverage |
|---|---|---|
crsp_yearly_vwret.csv |
WRDS/CRSP | Annual VW returns 1925–2024 |
crsp_monthly_vwret_dp.csv |
WRDS/CRSP | Monthly VW returns + d/p ratio |
Goyal_Welch_Data2024_monthly.xlsx |
Goyal & Welch (2024) | Macro predictors, monthly |
- In-sample predictive regressions — regress future returns on lagged d/p ratio
- Multi-horizon analysis — 1-month, 1-year, 3-year, 5-year cumulative forward returns
- Out-of-sample R² (Goyal-Welch) — compare forecast model vs. historical mean benchmark
- Rolling beta estimation — track stability of predictive relationship over time
- Combined predictor — multi-variable forecasting model
| Horizon | In-sample R² | Interpretation |
|---|---|---|
| 1 month | ~0.5% | Near zero — very weak short-run predictability |
| 1 year | ~2.1% | Modest but present |
| 3 years | ~5.8% | Clearly positive — long-horizon effect |
| 5 years (annual) | 8.41% | Strongest predictability |
| 5 years (monthly) | 7.55% | Confirms long-horizon pattern |
Key finding: The d/p ratio has near-zero predictive power at short horizons but explains a meaningful share of variance at 5-year horizons — consistent with Cochrane (2008) and the long-run return predictability literature.
Out-of-sample R²: Positive at long horizons, negative at short horizons, confirming that simple historical mean beats the d/p model month-to-month but underperforms at multi-year horizons.
Q1a_DP_Ratio.png # d/p ratio time series
Q1b_RF_ExcessReturn.png # Risk-free rate and excess returns
Q1c_SummaryStats.csv # Descriptive statistics
Q1c_Histograms.png # Return distribution
Q1c_RollingVol.png # Rolling volatility
Q1d_Scatter_Monthly.png # d/p vs. 1-month forward return scatter
Q1d_RollingBeta.png # Rolling predictive beta
Q1e_ForwardReturns_TimeSeries.png # Multi-horizon forward returns
Q1e_Scatter_1Y.png # 1-year horizon scatter
Q1e_Scatter_5Y.png # 5-year horizon scatter
Q1e_R2_byHorizon.png # R² vs. horizon (key figure)
W2_Q1_final_dataset.csv # Analysis-ready merged dataset
Python pandas numpy statsmodels matplotlib Google Colab WRDS/CRSP
Virginia Commonwealth University · MS Business (Financial Analytics) · FIRE 691 Reference: Cochrane (2008), Goyal & Welch (2008)