Universal Portfolio Shrinkage
Bryan T. Kelly et al. (4 authors), 2023 · National Bureau of Economic Research
What the paper asks for.
Across 153 JKP factor portfolios, a rolling 120-month second-moment estimate and leave-one-out ridge-ensemble optimization can shrink the eigen-spectrum adaptively and deliver a superior out-of-sample long-short allocation.
- Type
- technical
- Implementation
- pandas
- Rebalance
- monthly
- Long-short
- yes
- Data
- Bundled public task data
- Operational scope
- The paper-defined methodological core is retained; the fixed instruction instantiates only the data mappings, interfaces, and evaluation conventions needed for execution.
- 01 Data loading
- 02 Feature engineering
- 03 Model fitting
- 04 Signal generation
- 05 Portfolio construction
- 06 Execution
24 properties · 80 attempts.
Each row is one requirement the strategy must satisfy. The bar reports the share of observed checker verdicts that pass; missing checker output is not converted into a property verdict.
- A2no global normalizestage · feature eng63/70
- A3no future data accessstage · feature eng58/70
- A4causal consistencystage · signal gen52/70
- A6train test temporal orderstage · model fit58/70
- A8transaction timingstage · execution52/70
- A9signal delay teststage · signal gen52/70
- A10e2e metric consistency45/70
- B1universe 153 jkp factor portfolios§§4.1 “Our empirical analysis uses monthly returns on 153 characteristic-managed portfolios ("factors") from Jensen et al. (2023).”provenance · paper-explicitstage · data loading59/70
- B2full sample period nov 1971 dec 2022§§4.1 “cover the period from November 1971 to December 2022.”provenance · paper-explicitstage · data loading57/70
- B3oos period starts nov 1981§§4.1 “the out-of-sample period is from November 1981 to December 2022.”provenance · paper-explicitstage · data loading57/70
- B4rolling training window t equals 120 months§§4.1 “We estimate portfolio weights using a rolling window of T = 120 months, with weights retrained and rebalanced on a monthly basis.”provenance · paper-explicitstage · model fit57/70
- B5monthly rebalancing frequency§§4.1 “weights retrained and rebalanced on a monthly basis”provenance · paper-explicitstage · portfolio58/70
- B6ridge penalty grid z 10 to minus1 powers of 10§§4.1 “We fix the grid of ridge penalties available to UPSA as Z ≡ z ∈ [10^i : i ∈ {−10, −9, · · · , −1}].”provenance · paper-explicitstage · model fit59/70
- B7ensemble size l equals 10§§4.1, Definition 2 “Given a grid Z = {z1, . . . , zL} of ridge penalties and a vector W = (wi)L i=1 of weights ... We fix the grid of ridge penalties ... i ∈ {−10, −9, · · · , −1}”provenance · paper-explicitstage · model fit59/70
- B8sample second moment formula§§2 / §3 “regularize the sample second moment matrix by shrinking its empirical eigenvalues”provenance · paper-explicitstage · feature eng57/70
- B9eigendecomposition of second moment§§3 “regularize the sample second moment matrix by shrinking its empirical eigenvalues, λ̄”provenance · paper-explicitstage · feature eng57/70
- B10ridge portfolio formula§§2 “problem relies on the ridge portfolio estimator, ... which is defined for some ridge parameter z > 0”provenance · paper-explicitstage · signal gen58/70
- B11loo cross validation for out of sample moments§§3 “we suggest estimating these out-of-sample moments using classical leave-one-out (LOO) cross-validation. The LOO method drops ... repeats this for each t = 1, ..., T.”provenance · paper-explicitstage · model fit54/70
- B12ensemble weights from markowitz on ridge portfolios§§3 “Training UPSA reduces to finding the optimal weight vector W across basic ridge portfolios that maximizes quadratic utility, which is equivalent to solving a Markowitz portfolio optimization using LOO returns of basic ridge portfolios instead of [the raw factors]”provenance · paper-explicitstage · signal gen46/70
- B13non negative ensemble weights constraint§Definition 2 / §3 “We call FC(Z) = {fZ,W : W ∈ R_+^L} the ridge ensemble. ... The constraint that the ensemble weights must be positive ensures that the second moment matrix remains positive definite.”provenance · paper-explicitstage · portfolio59/70
- B14upsa shrinkage function and final weights§Definition 2 / §3 (eq. after Definition 2) “fZ,W(λ) := Σ_{i=1..L} wi fzi(λ) = Σ_{i=1..L} wi (zi + λ)^{-1}.”provenance · paper-explicitstage · signal gen54/70
- B15variance normalization to trace of shrunk second moment§§4.1, footnote 17 “we normalize portfolio weights so that the implied in-sample variance after shrinkage equals the in-sample variance of the empirical eigenvalues, following the recommendation of Ledoit and Wolf (2020).”provenance · paper-explicitstage · portfolio52/70
- B16long short unconstrained portfolio in factor space§§4.1 “The factors are constructed as capped value-weight long-short portfolios of US stocks ... UPSA achieves a Sharpe ratio of 1.92 [over this long-short set].”provenance · paper-explicitstage · portfolio56/70
- B17data source jkp factors§§4.1, footnote 15 “The complete list of these 153 factors and their monthly returns are available at https://jkpfactors.com.”provenance · paper-explicitstage · data loading70/70
The lowest-passing observed requirement is e2e metric consistency: 45 of 70 observed checker verdicts pass. The full property list above shows whether errors concentrate in domain-level validity or the paper-specific strategy logic.