AQAI QuantAI research lab for systematic strategies

Automated analysis

This analysis was drafted by our research engine and has not been checked by a human editor. It may contain errors. It separates the paper’s own results from our tests, and any figures called ours come from our own backtest.

Our automated analysisOur backtest

S-LASSO cuts FNW forecast error 16.7%, adds 0.16 Sharpe post-1996

Separating lines, curves and general size interactions cuts forecast error 16.7%; equal-weighted long-shorts come without stated costs or turnover.

2026-11-04 · 7 min read · Machine Learning / Characteristics-Based Stock Selection · US equities

Reviewing: Specification LASSO and a Flexible Characteristics-Based Asset Pricing Model · Chaohua Dong, Shuyi Ge, Shaoran Li et al. · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

S-LASSO Size-Conditional Decile Ranking

Backtest period 2020-01-01 to 2024-07-01 · hypothetical, net of modelled costs

Why these figures are not the paper's (2)

Run on a different market than the paper

None; use US individual equities, with a reduced characteristic set supported by available data rather than assuming all 102 empirical characteristics are available.

The paper's own figures describe its universe and do not carry over to ours.

Our own audit found this run does not follow the paper faithfully (7)

  • Section 5.2 truncation: K = n^(1/6).: Use validation-selected K from the declared integer grid, preserving the source expression as provenance only. (invalidates: Table 1 simulation recovery and MSE values are not quantitative predictions for this implementation; Table 4 performance and MSE values are not transferable targets)
  • Section 5.2 tuning: BIC = log(MSE) + df · log(n)/n.: Select K and regularization by chronological validation MSE with nonzero coefficient count as a tie-breaker, not BIC. (invalidates: Table 3 selection frequencies; Appendix D.2 interaction-selection frequencies; Table 4 portfolio and prediction-error values)
  • Source missing-data treatment: conditional mean imputation and weighted least squares within a GMM framework. The attachment does not provide the operational equations for that referenced procedure. Complete-case eligibility in the proposed five-feature strategy is an explicit adaptation, not a reproduction of that missing-data method.: Use complete-case formation eligibility and exclude unavailable completed labels, reporting each attrition channel. (invalidates: Table 3 characteristic-selection frequencies; Table 4 portfolio statistics and MSE values)
  • Empirical predictors: 102 characteristics constructed from CRSP, Compustat, and/or I/B/E/S.: Use the task's five explicitly defined characteristics from daily_prices, PIT financial_statements_full, and sharadar_daily_metrics. (invalidates: Table 3 selection counts and frequencies; Appendix D.2 full-specification selection frequencies; Figure 3 momentum-horizon shapes; Figure 4 one-month-momentum interaction shape; Table 4 quantitative results)

3 further finding(s) are described in the note.

These are our findings about our own implementation, not criticisms of the paper. Read the figures below as a description of what we ran.

Jan 2020Total 6.9%Jul 2024
Sharpe
0.08
Total Return
6.9%
Max Drawdown
-34.3%
CAGR
1.5%
Volatility
18.8%
Beta vs SPY
0.13
Trades
13,235

What the paper reports for its own strategy

  • Long-short (equal-weighted, top 20% minus bottom 20% by predicted return, rolling 4-year estimation window), evaluation from 1984 (sample ends 2020): mean return 22.70% per year, std 13.44%, Sharpe 1.69, max drawdown 40.08%. Transaction costs not stated.
  • Same long-short strategy, evaluation from 1996: mean return 18.06%, std 14.72%, Sharpe 1.23, max drawdown 40.08%. Transaction costs not stated.
  • Out-of-sample one-month-ahead mean squared prediction error 4.03 (std 16.67, max 102.54), rolling 4-year window through 2020.

A 16.7% reduction in monthly forecast error against the Freyberger-Neuhierl-Weber (FNW) nonparametric benchmark is the result worth taking seriously. The portfolio case is thinner than its headline Sharpe of 1.69 suggests. The authors reach much the same conclusion: they frame the empirical success as out-of-sample predictive performance.

What changes from FNW?

Freyberger, Neuhierl and Weber (FNW, 2020) provide the benchmark. Their method expands each firm characteristic in a spline basis, then uses an adaptive group LASSO to retain or discard the characteristic as a block. Size can interact with other characteristics only through their product. Every characteristic that survives enters as a curve, so even a genuinely linear effect consumes a full set of basis coefficients.

Dong, Ge, Li and Su call their alternative S-LASSO (Specification LASSO). It offers three forms for each characteristic: a plain linear term, a Hermite-function expansion describing a univariate curve, and a tensor-product Hermite expansion describing a general two-variable surface with a partner. Step 1 applies ordinary LASSO to the entire dictionary. In Step 2, an adaptive group LASSO penalises each block by the inverse of its Step 1 size. A block set to zero in Step 1 receives an infinite penalty and cannot return. The selected effect can therefore be linear, curved, an interaction with size, a combination of these, or absent. BIC chooses the tuning. Under a strong irrepresentable condition on the expanded design, the theory gives sign-consistent selection and asymptotic normality.

The intended source of returns is familiar: characteristics forecast next-month returns. Getting their shape right is the proposed advantage. Lines use less estimation variance than unnecessary curves, and general interactions can retain signals that a product misses. The sample contains 102 Green-Hand-Zhang characteristics and CRSP monthly returns, covering January 1980 to December 2020 and 2,198,914 firm-months. Missing characteristics use the Freyberger et al. (2025) imputation. Only pairs involving market equity (mve) are eligible for interactions. The model is refitted over a rolling four-year window to forecast the following month. Equal-weighted portfolios buy the top 20% of forecasts and short the bottom 20%.

The simulations separate the benefit from its cost. For an interaction shaped as sin(x3+x4), with 200 observations and 300 candidate covariates, FNW finds the interaction in 15% of replications; S-LASSO finds it in 87%. The product case favours FNW by design. When the interaction depends on x3·x4, both methods select perfectly, and FNW has slightly lower error: 0.0175 against 0.0203 at P=300. This is an honest comparison. Flexibility that goes unused costs 0.0028 of MSE (0.0203 vs 0.0175). When needed, it raises interaction recovery from 15% to 87%.

Forecast gains, smaller portfolio gains

S-LASSO's out-of-sample mean squared error is 4.03, compared with 4.84 for FNW. Monthly errors are less dispersed, at 16.67 against 21.72, and the worst monthly error falls from 133.30 to 102.54. We did not find stated units for these MSEs or a standard error for the difference.

The trading improvement is narrower. From 1984, the long-short returns 22.70% annually with 13.44% volatility and a Sharpe of 1.69. FNW returns 20.82%, with 13.34% volatility and a Sharpe of 1.56. From 1996, S-LASSO returns 18.06% at 14.72% volatility, giving a Sharpe of 1.23; FNW returns 15.48% at 14.49%, with a Sharpe of 1.07. The 16.7% forecast gain translates into 0.13 of Sharpe for the full window and 0.16 for the later window. We did not find t-statistics or factor alphas for either difference.

The table's third row complicates the comparison. Its "Equal Weight" benchmark has a Sharpe of 1.14 from 1984 and 1.11 from 1996. After 1996, that puts it above FNW's 1.07 and only 0.12 below S-LASSO. We did not find this benchmark defined. Its post-1996 Sharpe advantage over FNW (1.11 vs 1.07) also accompanies a larger drawdown: 53.66%, compared with 40.29% for FNW. Even so, an undefined benchmark falls between the machine-learning models on post-1996 Sharpe, with S-LASSO ahead by just 0.12. Against that comparison, specification search adds a tenth or two of Sharpe over the last 25 years.

Size keeps a role; its partners change

The paper reports size interactions for 13 characteristics. Across ten four-year subperiods, mom36m and mve_ia persist most often, each appearing in 4 of 10. Beta appears in 2. The remaining ten, among them mom1m, gma and ms, appear once. Main effects recur much more often: cash, mom1m and turn are linear in all 10 windows, while mom1m, indmom and mve are nonlinear in all 10.

The authors defend the size restriction with a full-specification check covering all 5,151 pairs. There, "firm size is selected in all ten subsamples and is the most frequently connected characteristic". This supports giving size interaction partners. It offers less support for any particular pairing. Size has a partner in every one of the ten windows in the full check; no partner appears in more than 4 windows under the main specification.

The economics section needs to be read with that instability in mind. Figure 4 plots the mom1m-by-mve surface for 2016-2019: steep for small firms and flat for large ones. Table 3 records that interaction in one window of ten. It is a four-year predictive description, consistent with the size-dependent reversal literature cited by the paper. Selection more generally calls for the same restraint. Of 102 characteristics, 99 enter linearly at least once.

The authors acknowledge the strain on their selection theory. The irrepresentable condition, they write, "is particularly demanding in asset pricing applications, where firm characteristics are often correlated". Their response concerns entrywise selection: if only a small fraction of components violate the inequality, sign-consistency probability for a typical component "can still remain high". Their diagnostic backs that premise. With 20 active characteristics among 100 candidates, the condition holds globally in 20% of draws, yet holds entrywise for 99.37% of inactive components in the expanded design.

A forecaster needs entrywise reliability. The oracle property, and any interpretation of the selected set as the true model, requires global sign consistency. The authors say so themselves: the entrywise rate "is only a diagnostic summary and should not be interpreted as a substitute for the formal global condition". Yet both abstract and conclusion continue to advertise oracle selection consistency. The conclusion also describes the simulations as showing S-LASSO holding up with correlated covariates. Selection churn on this scale is consistent with failure of global sign consistency. Genuine time variation could also produce it, and allowing such variation is the purpose of the ten windows. We would also hesitate to build confidence bands on Theorem 4.3's unusual root-n rate for function values at a point, with a sieve growing like n to a power up to 1/4.

A 40% hole in the long-short

Maximum drawdown is 40.08% in both portfolio windows, matching to the decimal. The worst episode therefore occurs after 1996. FNW's drawdown is 40.29%. Losing 40% in a dollar-neutral book with 13% to 15% volatility amounts to roughly three years of volatility.

We did not find turnover, transaction costs, borrow costs or value-weighted results. The sample's monthly returns have skewness of 8.28 and kurtosis of 443.82. Equal-weighted sorts cover a CRSP universe with no stated price or size screens. The paper notes that many anomalies strengthen among small firms, and its fitted surface is steepest at low mve. Refitting could also generate heavy turnover: 99 of 102 characteristics enter linearly in at least one of the ten windows. The paper leaves us unable to tell whether the 22.70% survives costs.

Our adaptation used 1,000 large caps

We built an adaptation with a different universe and many fewer inputs. Its five characteristics are 12-1 momentum, book-to-market, gross profitability, asset growth and log size. The universe is the annual top 1,000 non-ADR US stocks. We used Hermite and size-tensor blocks, followed LASSO with adaptive group LASSO, and fitted a rolling 48-month window. Validation MSE chose both the penalties and a basis size from 2 to 5, replacing BIC. In the paper's simulations the basis size is fixed at n^(1/6); the empirical basis size is unstated. We traded deciles rather than quintiles as well.

Our backtest returned 6.86% in total from 2020-01-02 to 2024-07-01, with a Sharpe of 0.08 and 13,235 trades. Annualised volatility reached 18.84%, and maximum drawdown was -34.29%. The paper reports long-short volatility of 13.44% from 1984 and 14.72% from 1996, alongside a 40.08% drawdown, for a different universe and period. Our book had higher volatility and a smaller drawdown, measured over 4.5 years against 37. We charge commissions of $0.004 a share. Short borrow and market impact are excluded.

The paper's Sharpe is 1.69 from 1984 and 1.23 from 1996, more than an order of magnitude above ours. These figures come from different universes and inputs, with periods overlapping for one year. The shortfall is evidence about our setup first.

We cannot fully explain it.

Two causes look likely. Removing mom1m, indmom, turn and cash excludes the characteristics selected most frequently in the paper: mom1m is linear and nonlinear in 10 of 10 windows; cash and turn are linear in 10; indmom is nonlinear in 10 and linear in 9. Excluding small caps also removes the low-size region where the paper's one plotted size surface, mom1m by mve, is steepest. The paper identifies that region as having more pronounced anomalies. Regime is another candidate, since our sample overlaps the paper's only in 2020. Our fills occur at the close, whereas labels assume next-open execution; that mismatch could degrade the spread. We also omit delisting adjustment, which could shift the spread either way.

A value-weighted or cost-net result that retains the post-1996 advantage over FNW would move us toward trading this.

Our backtest stops at 2024-07-01, and everything after that date is deliberately left untouched so the same strategy can be checked out of sample later.

How our backtest worked

The steps the code we ran actually executed, from its strategy card. Ours, not the paper's — it is one automated implementation of the idea, not the authors' own.

At each month-end:
  1. Select the applicable annual top-1,000 non-ADR stock screen.
  2. Construct point-in-time MOM_12_1, BM, PROF, AG, and SIZE.
     Exclude incomplete/invalid feature rows without replacement.
  3. Assemble 48 trailing formation months, using only labels whose
     genuine next-rebalance exit open is available by the fit cutoff.
  4. Within each chronological fold, estimate training-only 1%/99%
     clipping thresholds, means, and population standard deviations.
  5. Build the specified dictionary: penalized constant, five linear
     terms, five K-column Hermite blocks, and four K² size tensors.
  6. Fit coefficient-wise LASSO, then adaptive group LASSO.
     Exclude zero preliminary groups with infinite adaptive weights;
     retain every column of surviving blocks.
  7. Select K and both penalty fractions by equally weighted monthly
     validation MSE across two purged six-month validation blocks.
     Reject invalid/nonconverged fits; refit on legally completed rows.
  8. Rank finite predictions, breaking ties by symbol_key. Select
     floor(0.10 × eligible_count) names per side, without overlap.
     Target +100% long and -100% short, equally weighted and capped.
     Target flat if forecasts have no dispersion or sizing is infeasible.
  9. Trade only target changes, reductions first; preserve failed-entry
     allocations as cash and retain unresolved holdings in the ledger.
 10. Hold until the next monthly rebalance; liquidate at the endpoint
     only where genuine prices exist.

Reported platform execution is at the close, with MOC fills. The specification instead requests next-session adjusted-open execution and open-to-open labels; that implementation mismatch remains unresolved. The intended estimator also penalizes the constant, whereas the supplied solver documentation describes an external unpenalized intercept.