Calculating the Equity Premium from Dividend-Inclusive Returns
Summary
The document describes a replication attempt involving empirical equity premium prediction. It calculates a dividend-inclusive return from consecutive index prices, adds dividends to the ending index value, converts the resulting return to logarithms, and subtracts the logged risk-free return. The author then compares the computed premium with two provided market return series and reports that the values are close but not identical.
This is a brief implementation note rather than a full account of the paper’s forecasting methods or replication results. It supplies formulas and R code, but does not diagnose why the series differ, document data alignment or conventions, or establish which calculation is correct. The comparison is therefore a useful starting point for checking return construction, while leaving the discrepancy unresolved.
Key ideas
- A dividend-inclusive return can be formed by adding dividends to the ending index value before dividing by the starting price.
- The document converts gross returns and the risk-free rate to logarithms before taking their difference as the premium.
- The calculated series is compared with two reference market return series and is reported to be close but not identical.
- The note does not identify the source of the difference or fully specify data conventions and alignment.
Tags
Full text
# Replication of the paper: "A Comprehensive Look at the Empirical Performance of Equity Premium Prediction"
# Replication of the paper: "A Comprehensive Look at the Empirical Performance of Equity Premium Prediction"
I recently replicated the paper "A Comprehensive Look at the Empirical Performance of Equity Premium Prediction" and found out that my estimation of the equity premium differs from the data provided by the authors. I show my R code and how I calculate the equity premium.
$$ R_{t+1} = \frac{P_{t+1} + D_{t+1}}{P_{t}}, $$ where $P_{t+1}$ - price and $D_{t+1}$ is the dividends at time $t+1$. Then we take the log of this to obtain $r_{t+1} = \log{R_{t+1}}$ log returns. Finally we substract the log-risk free rate $r_f = \log{(R_f + 1)}$ from the log-returns $rp_{div} = r_{t+1} - r_{f}$.
Data could be downloaded from: http://www.hec.unil.ch/agoyal/
R code:
```
colnames(annualy)[1] <- "Datum"
colnames(annualy)[3] <- "Dividends"
colnames(annualy)[4] <- "Yields"
#Total Return +
annualy <- annualy[, IndexDiv := Index + Dividends]
#Log returns
annualy <- annualy[, logretdiv:= c(NA, log(annualy$IndexDiv[-1]) - log(annualy$Index[-nrow(annualy)]))]
#The logarithm of risk-free rate
annualy <- annualy[, logRfree := log(Rfree + 1)]
#Premium
annualy <- annualy[, rp_div := logretdiv - logRfree]
```
Then if you compare the final value $rp_{div}$ with CRSP_SPvw or CRSP_SPvwx you will that they are close, but not the same.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.