Compounding Monthly Fama–French Factor Returns over Multiple Months
Summary
The document explains how to combine monthly Fama–French factor returns into multi-month returns. Rather than taking an arithmetic average, the response compounds the monthly returns: convert each percentage return to a growth factor, multiply those factors across the chosen period, subtract one, and convert back to a percentage. It applies this method to the last three months of the factor table and compares the calculated figures with the published figures.
The computed results are close but not identical to the reported values. The response points to rounding and the possibility that factor-mimicking portfolios are rebalanced, which can affect the return from simply chaining published monthly factors. It does not give a definitive attribution of each discrepancy or a detailed reconstruction of the library's aggregation process. The formula is a useful starting point, while exact replication may depend on source precision and portfolio rebalancing conventions.
Key ideas
- Multi-month factor returns are calculated by geometrically compounding the monthly returns.
- Each monthly percentage return is converted to a growth factor before the factors are multiplied.
- The compounded figures are close to, but not exactly the same as, the published three-month values.
- Rounding and portfolio rebalancing are offered as possible sources of the differences.
Tags
Full text
# How are Fama French Factor Returns for the last 3 and 12 months calculated?
# How are Fama French Factor Returns for the last 3 and 12 months calculated?
In the Fama/French data library the monthly research factors for the Fama-French-3-Factor-Model and the Fama-French-5-Factor-Model are presented.
I don't see how they are calculating the factor returns in the "Last 3 Months" and "Last 12 Months" columns.
```
Date Mkt.RF SMB HML RMW CMA RF
Sep 2016 0.25 1.75 -1.49 -1.92 -0.04 0.02
Oct 2016 -2.02 -3.97 4.16 1.24 0.20 0.02
Nov 2016 4.86 6.81 8.27 -0.50 3.67 0.01
Dec 2016 1.82 0.39 3.61 0.98 -0.25 0.03
Jan 2017 1.94 -1.28 -2.68 0.13 -0.94 0.04
Feb 2017 3.57 -2.14 -1.79 0.62 -1.74 0.04
Mar 2017 0.17 0.81 -3.17 0.83 -1.00 0.03
Apr 2017 1.09 0.51 -1.91 2.13 -1.55 0.05
May 2017 1.06 -3.07 -3.75 1.32 -1.84 0.06
Jun 2017 0.78 2.46 1.32 -2.13 -0.06 0.06
Jul 2017 1.87 -1.59 -0.28 -0.58 -0.14 0.07
Aug 2017 0.17 -1.87 -2.26 0.44 -2.44 0.07
Sep 2017 2.51 4.81 3.04 -1.51 1.62 0.09
```
The table above shows the most recent data from their website. I tried to calculate the arithmetic mean return over the last 3 months and also the geometric mean return but the numbers don't match up. These are the numbers I fail to come up with:
```
Fama/French 5 Research Factors (2x3)
Sep 2017 Last 3 Months Last 12 Months
Rm-Rf 2.51 4.61 19.24
SMB 4.81 1.20 1.11
HML 3.04 0.38 4.86
RMW -1.51 -1.69 3.59
CMA 1.62 -1.08 -5.58
```
It is clear that the first column consists of the last row data from the above dataset. But how to calculate the second and third column values?
## Answer by skoestlmeier (score 1)
https://quant.stackexchange.com/a/41382
It is correct to use the geometric return. Calculating the factors for the last 3 months following
$$r_{\mathrm{3month}} = \left( \prod_{1\le i \le3} \left(\frac{\mathrm{factor}_i}{100} + 1\right) - 1 \right) \cdot 100 $$
where $\mathrm{factor}_i$ is the appropriate monthly return of a certain risk factor, is correct.
This approach gives the following returns for the last 3 months ($FF$ are the original ones and $Own$ the calculated ones with the above formula):
```
Last 3 Months FF Last 3 Months - Own
Rm-Rf 4.61 4.60
SMB 1.20 1.21
HML 0.38 0.43
RMW -1.69 -1.65
CMA -1.08 -1.00
```
Why are there differences in the calculation?
You may look at these answers:
- Rounding issues (which can be ignored for practical purpose).
- Lack of rebalancing the factor mimicking portfolios when applying the geometric return.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.