Skip to content

Forest through the Trees: Bryzgalova, Pelger & Zhu (2025)

Distilled · extracted by claude-sonnet-4-6 May 31, 2026, last verified by claude-sonnet-4-6 Jun 4, 2026, extracted by claude-opus-4-8 May 31, 2026

JEL (IAR-assigned): G12, G11, C58 · assigned from the abstract, not the journal

Full structured metadata (methods, scope, relatesTo, topics, datasets): raw Markdown (.md)

paper-summaryasset-pricingfactorsanomaliescross-sectionportfolio-sortdecision-treesfactor-modelsmachine-learningopen-accesscc-bypeer-reviewedunreplicateddata:wrdsdata:ken-french

What this is. The paper’s core results, the model it builds on (the SDF projected on stock returns), and the method it contributes (AP Trees and AP Pruning) with the defining equations: enough to know what it found and how, without reading all 60 pages. To replicate or extend it, read the full source at the original.

The paper proposes Asset Pricing Trees (AP Trees): a decision-tree method that groups individual stocks into managed portfolios by conditional characteristic splits, then selects a sparse subset via global SDF-spanning pruning (LASSO + robust mean/variance shrinkage). Applied to 10 CRSP/Compustat characteristics (Jan 1964 to Dec 2016, 53 years of monthly data), AP Trees deliver small cross-sections of 10 to 40 long-only portfolios whose combined out-of-sample Sharpe ratio is up to three times higher than conventional double/triple sorts, and whose SDF alpha is significant against all leading factor models. The key drivers are (i) modeling characteristic interactions via conditional splits and (ii) optimizing the SDF-spanning objective rather than return prediction.

Magnitudes and significance are as reported; **/*** = 5%/1%. Locators point into the source PDF.

#ResultLocatorMagnitude
R1AP Trees deliver out-of-sample Sharpe ratios up to three times higher than conventional triple sorts across all 36 three-characteristic cross-sectionsFigure 6, Panel A, p. 2474; Table B.II, p. 2497AP Tree SR ranges from ~0.24 to ~0.65 (monthly); triple-sort SR rarely exceeds 0.4; difference is up to 3x for cross-sections including investment, idiosyncratic volatility, or profitability
R2AP Tree SDF alphas are large and significant against FF3, FF5, XSF, and FF11 models; triple-sort SDFs are routinely spannedTable I, p. 2482; Figure 6, Panel B, p. 2474For size/OP/investment: AP Trees (10) α = 0.94 vs FF3 (t=10.11), 0.81 vs FF5 (t=8.76); triple sorts α = 0.75 vs FF3 (t=7.40), 0.47 vs FF5 (t=5.57)
R3Cross-sectional fit (XS-R²) is far lower for AP Trees, confirming they contain pricing information not in standard factor modelsTable I, p. 2482AP Trees (10) XS-R² vs FF5 = 11%; triple sorts (32) XS-R² vs FF5 = 91%; AP Trees (40) = 64% vs 91% for TS(32)
R4Interaction nodes account for roughly half of AP Trees’ SR; removing interactions halves the out-of-sample Sharpe ratioFigure 8, p. 2478AP Tree (10) monthly SR ~0.4–0.65 with interactions; dropping interactions reduces SR to roughly that of XSF long-short factors (~0.2); similar pattern for AP Trees (40)
R5SDF-spanning objective drives the result: V-Trees (same splits, variance criterion only) have 2–3x lower SR; ML return-prediction portfolios (deep learning, random forest) have SR at best half that of AP TreesFigure 9, p. 2481; Figure 15, p. 2494AP Trees monthly SR ~0.4–0.65; V-Trees ~0.2–0.3; DL-MV, RF-MV ~0.2–0.35 across 10-characteristic cross-sections
R610 pruned AP Tree portfolios retain ~90% of the SR of 40-portfolio cross-sections, showing the quality of the cross-section is not driven by sizeFigure 7, p. 2477; Table I, p. 2482AP Trees (10) SR = 0.65 vs AP Trees (40) SR = 0.69 for size/OP/investment; 10 portfolios already span ~90% of the SDF
R7In the large-dimension setting (10 characteristics), AP Trees raise monthly SR by ~0.1 over the best 25x9 double-sort cross-section (roughly 20% gain), and 80–100% over anomaly-based decilesFigure 14, p. 2493; §VAP Trees (10/40) achieve SR ~0.5; best DS25 combination reaches ~0.4–0.45; decile-sort SR ~0.3; quintile SR ~0.25
R8Microcaps do not drive results: excluding small caps (size quantile below 0.4) or restricting to the top 600 stocks by market cap, AP Trees still roughly double the SR of triple sortsTable III, p. 2490Top-600-stocks AP Trees (10): SR = 0.30, alpha vs FF3 = 0.70 (t=5.04), alpha vs FF5 = 0.32 (t=3.87); triple sorts SR = 0.17 (TS32) / 0.17 (TS64)

Overall (paper’s conclusion). Conventional single/double/triple sorts and their stacked combinations, including the size and value sorts of Fama and French (1993), do not span the conditional SDF and so provide an unreliable and often misspecified benchmark for asset pricing models. AP Trees resolve this by finding a small, interpretable, well-diversified cross-section that genuinely spans the conditional SDF projected on characteristics, enabling better model evaluation and construction of tradable risk factors.

The economic object is the stochastic discount factor (SDF) that prices individual stocks. Under no-arbitrage there is a unique minimum-variance SDF spanned by individual stock excess returns. Given a set of firm characteristics Ct1C_{t-1} (an N×KN \times K matrix for NN stocks, KK characteristics) as the conditioning information, the conditional SDF is its projection on individual stock excess returns RtR_t (p. 2455):

MtC=1i=1Nbt1,i(Rt,iEt1[Rt,i]),bt1,i=f(Ct1,i)M_t^C = 1 - \sum_{i=1}^N b_{t-1,i} \left( R_{t,i} - \mathbb{E}_{t-1}[R_{t,i}] \right), \qquad b_{t-1,i} = f(C_{t-1,i})

with f()f(\cdot) a general, potentially nonlinear and nonseparable function. Reduced-form models approximate this dependence with JJ basis functions fj()f_j(\cdot), so f(Ct1,i)jfj(Ct1,i)wjf(C_{t-1,i}) \sim \sum_j f_j(C_{t-1,i}) w_j. That turns the conditional problem into an unconditional one over JJ managed portfolios (equation 1, p. 2455):

MtC=1j=1Jwj(Rt,jmanE[Rt,jman]),Rt,jman=i=1Nfj(Ct1,i)Rt,iM_t^C = 1 - \sum_{j=1}^J w_j \left( R^{\text{man}}_{t,j} - \mathbb{E}[R^{\text{man}}_{t,j}] \right), \qquad R^{\text{man}}_{t,j} = \sum_{i=1}^N f_j(C_{t-1,i}) R_{t,i}

There is a one-to-one mapping between the basis functions fjf_j and the managed portfolios RmanR^{\text{man}}. Managed portfolios span the projected SDF exactly when their mean-variance-efficient combination achieves the highest Sharpe ratio (p. 2456); pricing a spanning set is then equivalent to pricing the SDF itself.

The paper’s theoretical contribution is a misspecification result. Suppose a researcher uses only a subset RselectR^{\text{select}} of the spanning managed portfolios and omits RomitR^{\text{omit}}, then proposes a KK-factor model FF that prices RselectR^{\text{select}} (intercept αselect=0\alpha^{\text{select}} = 0). Proposition 1 (p. 2457) bounds the mispricing of the omitted assets by a Sharpe-ratio gap:

SR2(Rselect,Romit)SR2(F)αomit(Σomit)1αomitSR2(Rselect,Romit)SR2(Rselect),\text{SR}^2(R^{\text{select}}, R^{\text{omit}}) - \text{SR}^2(F) \leq {\alpha^{\text{omit}}}' (\Sigma^{\text{omit}})^{-1} \alpha^{\text{omit}} \leq \text{SR}^2(R^{\text{select}}, R^{\text{omit}}) - \text{SR}^2(R^{\text{select}}),

with equalities if RselectR^{\text{select}} spans the factors, that is, if SR(Rselect)=SR(Rselect,F)\text{SR}(R^{\text{select}}) = \text{SR}(R^{\text{select}}, F). In words: a model that perfectly explains the chosen test assets can still be a grossly misspecified model for individual stocks if those test assets do not span the SDF. The proof follows the spanning arguments of Barillas and Shanken (2016) and is given in the Internet Appendix. This is why the choice of test assets, not just the candidate model, matters, and it motivates constructing a cross-section that provably spans the SDF.

Identification. Fully out-of-sample evaluation with a train / validate / test split (Figure 5, p. 2472): portfolio selection and tuning are fixed on the first two blocks before the test block, so there is no look-ahead bias.

The method has two parts: building the tree-based managed portfolios (AP Trees) and selecting a sparse spanning subset of them (AP Pruning). It builds on decision-trees and conditional-sorts for the portfolios, and on lasso, ridge-shrinkage, sdf-projection, and robust-mean-variance-optimization for the selection.

AP Trees. Stocks are grouped by a sequence of conditional consecutive splits (median splits at each node, without loss of generality), so each final and intermediate node is a managed portfolio that traces back to firm fundamentals (Figure 1, p. 2449). Trees are grown to depth four. With MM candidate splitting characteristics and depth dd, this yields Md×2dM^d \times 2^d overlapping portfolios that capture up to dd-way interactions. Equivalently, AP Trees are a nonparametric estimator of the SDF mapping (p. 2463):

f(Ct1,i)=j=1Jwj1{Ct1,iAj},regions Aj given by the recursive tree nodesf(C_{t-1,i}) = \sum_{j=1}^J w_j \cdot \mathbf{1}\{ C_{t-1,i} \in A_j \}, \qquad \text{regions } A_j \text{ given by the recursive tree nodes}

AP Pruning. The naive SDF weights solving E[RmanMC]=0\mathbb{E}[R^{\text{man}} M^C] = 0 are ω=Σ1μ\omega = \Sigma^{-1} \mu, whose sample version ω^naive=Σ^1μ^\hat{\omega}_{\text{naive}} = \hat{\Sigma}^{-1} \hat{\mu} overfits in high dimension. AP Pruning instead selects a sparse set of tree nodes that span the SDF, with robust moments. Definition 1 (p. 2466), step one, estimates robust SDF weights on the training data:

minω  12(μ^robustΣ^robustω)(Σ^robust)1(μ^robustΣ^robustω)+λ1ω1\min_{\omega} \; \tfrac{1}{2} \left( \hat{\mu}^{\text{robust}} - \hat{\Sigma}^{\text{robust}} \omega \right)' \left(\hat{\Sigma}^{\text{robust}}\right)^{-1} \left( \hat{\mu}^{\text{robust}} - \hat{\Sigma}^{\text{robust}} \omega \right) + \lambda_1 \|\omega\|_1 withΣ^robust=Σ^+λ2IN,μ^robust=μ^+λ01\text{with} \quad \hat{\Sigma}^{\text{robust}} = \hat{\Sigma} + \lambda_2 I_N, \qquad \hat{\mu}^{\text{robust}} = \hat{\mu} + \lambda_0 \mathbf{1}

where ω1=iwi\|\omega\|_1 = \sum_i |w_i|, 1\mathbf{1} is a vector of ones, and NN is the number of assets. The tuning parameters (λ0,λ1,λ2)(\lambda_0, \lambda_1, \lambda_2) are chosen on the validation block to maximize the robust-SDF Sharpe ratio, then performance is evaluated only on the untouched test block.

Proposition 2 (p. 2468) shows AP Pruning is equivalent to a robust tangency portfolio (Definition 2, equation 2):

minω  12ωΣ^ω+λ1ω1+12λ2ω22\min_{\omega} \; \tfrac{1}{2} \omega' \hat{\Sigma} \omega + \lambda_1 \|\omega\|_1 + \tfrac{1}{2} \lambda_2 \|\omega\|_2^2 subject toω1=1,ω(μ^+rf1)μ0+rf\text{subject to} \quad \omega' \mathbf{1} = 1, \qquad \omega' \left( \hat{\mu} + r_f \mathbf{1} \right) \geq \mu_0 + r_f

The mapping is exact: the LASSO term λ1\lambda_1 induces sparsity (a small set of AP Tree basis assets), the target return μ0\mu_0 corresponds to shrinking the mean toward its cross-sectional average, and the ridge term λ2\lambda_2 corresponds to variance shrinkage of the covariance matrix. This generalizes the robust SDF recovery of Kozak, Nagel, and Santosh (2020), which shrinks only the covariance, by also shrinking the mean (Proposition 3). Proposition 4 gives a robust-control reading: the shrinkage solves a minimax problem over joint estimation uncertainty in means and variances.

Estimation runs on monthly CRSP/Compustat data, January 1964 to December 2016, split into training (first 20 years), validation (10 years), and out-of-sample testing (last 23 years). Each headline result is the test-block value of one of the following constructions, not an OLS regression with fixed effects:

  • Out-of-sample Sharpe ratio (R1, R6, R7, R8). For a given cross-section, the SDF / tangency portfolio is estimated on training, tuned on validation (Definition 1-2), then its realized monthly SR is computed on the test block. AP Trees are compared against triple sorts, double sorts (25x9), deciles, and quintiles of the same characteristics.
  • SDF alpha (R2). The candidate factor models FF3, FF5, XSF (cross-section-specific factors), and FF11 are confronted with each cross-section; the SDF alpha is the pricing error of the cross-section’s implied SDF against the model, with tt-statistics reported (Table I, p. 2482; Figure 6 Panel B). Spanning is assessed by whether one cross-section’s SDF is priced by another’s factors.
  • Cross-sectional fit, XS-R² (R3). The share of cross-sectional variation in average managed-portfolio returns explained by the candidate model (Table I).
  • Channel decompositions (R4, R5). Re-running the construction with interaction nodes removed (R4, Figure 8), with a variance-only split criterion (V-Trees, R5, Figure 9), and against ML return-prediction portfolios built from Gu, Kelly, and Xiu (2020) tools (random forest, neural nets; Figure 15), isolating the contribution of interactions and of the SDF-spanning objective.

Robustness reported in the paper: excluding microcaps or restricting to the top 600 stocks by market cap (Table III, p. 2490), and rolling-window time-varying SDF weights (Figure C.6, p. 2502).

DatasetRole in paperWiki page
CRSP monthly stock returns and market dataPortfolio returns, market cap, momentum, short-term reversal, idiosyncratic volatilityWRDS / CRSP (licensed)
Compustat annual fundamentalsBook-to-market, investment, operating profitability, accruals, turnover, long-term reversalWRDS / Compustat (licensed)
Kenneth French Data Library10 firm-specific characteristic definitions (Table A.I); Fama-French factor returns for benchmarking (FF3, FF5)Ken French library
One-month Treasury bill rateProxy for the risk-free rateNo page yet

Sample: January 1964 to December 2016 (53 years, monthly). Training sample: first 20 years; validation: 10 years; testing (out-of-sample): last 23 years.

Use the original if you are: replicating (the Internet Appendix contains formal proofs and additional robustness); building new cross-sections beyond the 10 characteristics studied; evaluating whether a candidate factor model spans the SDF; or extending AP Trees to other asset classes or conditional models. The locators above point to the exact tables and figures.

Source: peer-reviewed, The Journal of Finance 80(5). This distillation was extracted by an LLM on 2026-05-31 and is not human-verified or independently reproduced. The CC BY 4.0 licence permits mirroring; the verbatim PDF is not hosted in this batch.

Attribution (CC BY 4.0). Bryzgalova, Svetlana, Markus Pelger, and Jason Zhu. “Forest through the Trees: Building Cross-Sections of Stock Returns.” The Journal of Finance 80, no. 5 (October 2025): 2447–2506. DOI: 10.1111/jofi.13477. © 2025 The Author(s). Licensed under CC BY 4.0. This page is an adaptation by the Institute for Automated Research: core results extracted and re-expressed; changes were made.

Found an error or want a topic covered? Open an issue, use the Edit page link above, or email contact@instituteforautomatedresearch.org. Edits are reviewed before publishing; provenance and accuracy are the point.