Optimal versus naive diversification: the results in charts
The replication of DeMiguel, Garlappi and Uppal (2009) on Ken French's data and the extension to a tracking-error mandate on French's 49 industries, 1979-07 to 2026-08, in ten figures. Each chart is drawn from the output files of the repository's notebooks, named under it; hover for the numbers. Terms are defined at the end of the page.
1. The replication: this study beside the paper
Each point is one rule on one dataset over the paper's out-of-sample months (1973-07 to 2004-11). On the left the Sharpe ratio: 29 of the 30 cells that carry the band of 0.03 (the shaded strip around the diagonal) sit inside it, and a red point is a gated cell outside its band; the hollow points carry no verdict, because the rule's turnover makes its Sharpe ratio fragile. On the right turnover relative to 1/N on log scales, with the 25 per cent band: 30 of 30 gated cells inside it.
Source: results/202608/replication_sharpe_202608.csv and results/202608/replication_turnover_202608.csv (notebook 03); published values from DeMiguel, Garlappi and Uppal (2009), Tables 3 and 5.
2. The months since the paper
Each rule's Sharpe ratio in the paper's period (grey) and in the 261 months since (2004-12 to 2026-08, coloured), by dataset. The vertical line is 1/N in the new period. 1 of 32 rule-dataset cells beat 1/N at the 5 per cent level in the new period; the cells that fall below it at that level are the minimum-variance rules on MKT/SMB/HML and on FF-4-factor.
Source: results/202608/extended_sample_sharpe_202608.csv and results/202608/extended_sample_vs_1N_202608.csv (notebook 07).
3. The benchmark: the 49 industries against French's market
The cap-weighted combination of the 49 industries, rebuilt from French's firm counts and average sizes, tracks French's market return within 46.7 basis points a year over 686 months from 1969-07. The upper panel shows growth of one unit in each (log scale); the lower panel the cumulative gap in basis points, which comes from French's end-of-June formation (a firm listed since June is in the market and in no industry until the next July); a direct test on the CRSP monthly file accounts for 84 per cent of the gap's variance.
The benchmark's own composition moved: the share of each of the eight largest industries on average (Oil, Banks, Drugs, Rtail, Softw, Telcm, Util, Chips), every third month, on one scale; Oil and Utilities are two of the three industries the tilt holds at half their weight.
Source: results/202608/benchmark_returns_202608.csv and results/202608/benchmark_weights_202608.csv (notebook 08).
4. Four covariance estimators without the mandate
The realised volatility, per year, of the minimum-variance portfolio each estimator builds, over the 566 months, unconstrained and long-only, on 120 monthly returns and on three years of daily returns. On monthly data the sample covariance realises 14.1 per cent against 12.1 to 12.8 for the structured estimators; long-only, every estimator at either frequency lands between 12.1 and 12.3.
Source: results/202608/covariance_estimators_202608.csv (notebook 10).
5. The tracking-error frontier: what each constraint costs
Left: realised tracking error as the constraints accumulate from long-only to the mandate. Right: under the mandate, each estimator's own forecast (hollow) beside what it realised (filled), in the order of the realised value. Under the mandate the four estimators built from daily returns realise 84.7 to 93.4 basis points a year and the monthly sample covariance 95.8: a range of 8.8 across the daily four on a level of about 90.
Source: results/202608/rolling_evaluation_202608.csv (notebook 12).
6. Forecast bias by decade
The bias statistic under the mandate: each month's active return is divided by that month's forecast standard deviation, and the statistic is the standard deviation of those ratios over the months, 1 for a calibrated forecast and above 1 for an under-forecast. Over the whole period the daily estimators run at 1.22 to 1.39 and the monthly covariance at 1.61; calibrating each month's forecast by the same path's ratio of realised to forecast tracking error over the previous 60 months, with nothing from the future, brings the daily estimators to 1.11 to 1.17. The chart's two states carry two measures: the first shows, for each decade, the realised tracking error divided by the mean forecast of the same months, a ratio of two tracking errors; the second the bias statistic of the calibrated forecast, decade by decade.
Source: results/202608/rolling_evaluation_by_decade_202608.csv and results/202608/rolling_evaluation_calibration_202608.csv (notebook 12).
7. The active return, month by month
Cumulative active return (portfolio minus benchmark, in percentage points) of the seven paths. The tilt alone ends at +2 to +7 basis points a year against a standard error of 12 to 13; the mandate's two additions, beta neutrality and the exclusions, cost 8 to 10 basis points a year against the tilt alone.
Source: results/202608/active_returns_202608.csv (notebook 12); standard errors from results/202608/attribution_summary_202608.csv (notebook 13).
8. Turnover and trading cost
One-way turnover per month under the mandate, 0.86 to 1.54 per cent against the benchmark's own 0.39, and the cost at 50 basis points per unit of turnover, 5.1 to 9.2 basis points a year against the index fund's 2.3; the right panel sets that cost beside the gross active return.
Source: results/202608/rolling_evaluation_202608.csv (notebook 12).
9. Where the active return came from
The attribution splits each path's active return into six factor contributions and a residual, the industries' own returns. Left: the mean active exposure to each factor (beta neutrality shows in the market column). Right: the contributions and the residual, in basis points a year, with the active return as the black mark. The factors explain 14 to 28 per cent of the active return's variance across the fourteen paths; under the tilt alone the exposures cost 9 to 13 basis points a year and the residual paid 12 to 20.
By decade, for the sample covariance's path under the mandate: the factor part was largest in 1979 to 1989, the decade in which the tilt away from Oil was largest and the oil price doubled and then collapsed.
Source: results/202608/attribution_summary_202608.csv, results/202608/attribution_mandate_cost_202608.csv and results/202608/attribution_by_decade_202608.csv (notebook 13).
10. The optimiser: the tilt's forecast cost, and the speed limit
Left: the forecast tracking error of the tilt alone and of the mandate at three months, by estimator; the tilt costs 35 to 36 basis points a year at 2026-08 and up to 108 at 1979-07, when Oil held 15 per cent of the benchmark. Right: the turnover cap as a speed limit: starting from 1/N, 0.53 of one-way turnover from the benchmark, 24 rebalances at the cap of 2 per cent bring the forecast tracking error from 708 to 28 basis points a year and leave 0.08 of the distance to close; the optimiser trades the industries that reduce the tracking error most first, which is a different order from closing the distance.
Source: results/202608/optimiser_fixes_202608.csv and results/202608/optimiser_speed_limit_202608.csv (notebook 11).
Terms
- 1/N
- the rule that holds every asset at the same weight and rebalances to it each month.
- rule
- any of the nine portfolio rules of the replication: 1/N, sample-based mean-variance, Bayes-Stein, minimum variance, the value-weighted market, and the short-sale-constrained versions of the three optimising rules, with the generalised minimum-variance rule.
- Sharpe ratio
- the mean monthly excess return divided by its standard deviation; an excess return is a return minus the one-month Treasury bill rate.
- turnover
- the sum of absolute weight changes at a rebalance; one-way turnover is half of it.
- band
- an interval, fixed before the code ran, within which a replicated number counts as matching the published one; a cell a band applies to is gated and receives a verdict, pass or miss.
- benchmark
- the index the portfolio tracks, the cap-weighted (weighted by market capitalisation) combination of the 49 industries.
- tracking error
- the standard deviation of the monthly difference between the portfolio's return and the benchmark's, times the square root of 12; the forecast is the optimiser's own, the realised the measured one.
- basis point
- a hundredth of a percentage point.
- covariance estimator
- a method that turns a window of returns into a covariance matrix, the table of the assets' variances and covariances: the sample covariance, Ledoit-Wolf shrinkage towards a scaled identity, a six-factor model, a principal-component model; the robust portfolio minimises the worst forecast across the five estimates, and RiskMetrics is an exponentially weighted sample covariance.
- minimum-variance portfolio
- the portfolio with the smallest forecast variance under its constraints.
- constraint set
- one of the cumulative sets C0 to C3: long-only; plus an active weight bound of 2 percentage points per industry; plus a one-way turnover cap of 2 per cent a month; plus the mandate (the tilt, the exclusions of tobacco and weapons and a beta of one to the benchmark). The tilt alone, C2 plus the tilt, runs beside them as a sensitivity and is the fourth step of figure 5.
- bias statistic
- the standard deviation, over the months, of the monthly active return divided by that month's forecast standard deviation; 1 for a calibrated forecast, above 1 an under-forecast. Figure 6's first state shows a different measure of the same miss, each decade's realised tracking error divided by its mean forecast.
- active return
- the portfolio's return minus the benchmark's; the active weight of an industry is its portfolio weight minus its benchmark weight.
- factor
- a return series that many assets move with: the market (Mkt-RF), size (SMB), value (HML), profitability (RMW), investment (CMA) and momentum (Mom) factors of Fama and French and Carhart.
- active exposure
- the sum over industries of the active weight times the industry's beta (the slope of its return on the factor's) to the factor.
- attribution
- the split of a month's active return into the six contributions (exposure times the factor's return) and a residual; the factor share is one minus the variance of the residual over the variance of the active return.
- standard error
- the standard deviation of an estimate; for a mean active return over 47 years, the realised tracking error over the square root of 47.
- vintage
- the version of French's files on the download date, named by the CRSP cut French built them from.
- excess return
- a return minus the one-month Treasury bill rate.
- out-of-sample
- said of a return earned in the month after the estimation window, the 120 months a rule sees when it forms its weights.
- gated
- said of a cell a band applies to.
- verdict
- pass or miss for a gated cell; a cell with no band is reported beside the published number and has no verdict.
- Bayes-Stein
- the rule of Jorion (1986) that shrinks each estimated mean towards one common value.
- shrinkage
- pulling an estimate towards a simpler target.
- beta
- the slope of an asset's return on a factor's return, or on the benchmark's.
- active weight
- the portfolio weight minus the benchmark weight.
- market capitalisation
- the number of a firm's shares times their price.
- cap-weighted
- weighted by market capitalisation.
- value-weighted
- said of French's industry returns: each firm counts in proportion to its market capitalisation at the start of the month.
- turnover cap
- an upper limit on one-way turnover per rebalance, 2 per cent a month in the extension.
- tilt
- a constraint holding named industries below their benchmark weight, here Coal, Oil and Utilities at no more than half of it.
- mandate
- the whole set of rules the extension's portfolio obeys: the tilt, the exclusion of tobacco and weapons, and a beta of one to the benchmark, within the active weight bound and the turnover cap.
- residual
- the active return minus the six factor contributions, the part the industries' own returns account for.
- contribution
- the part of a month's active return one factor accounts for, the active exposure to it times its return in the month.
- estimation window
- the months of returns a rule sees when it forms its weights, 120 in the paper.