Accuracy versus ranking
R² asks how close the predicted return is; IC asks whether the order of stocks is right. For picking stocks, order is what counts.
Data table
The neural net is the clearest case of overfitting: 15.1% R² in training, −21.3% on the test years. Ridge and Lasso barely move OLS, which suggests the problem is not too many coefficients but a relationship that is not linear.
From predictions to a portfolio
Each month: rank every stock by predicted return, buy the top 100 in equal weights, hold one month.
Annualized Sharpe ratio
top-100 equal-weight, test period, before costsThese returns are gross of trading costs and come from an equal-weighted basket that tilts toward small stocks, so the absolute level (about 4.4% a month) overstates what could be earned. The comparison between models is the useful part: LightGBM's edge comes from lower volatility (12.4% vs. about 13.4%), not from a higher average return.
What the trees used
LightGBM split gain for the 20 most important of the 50 selected features. Market-wide variables are highlighted.
macro_ep aggregate earnings-to-pricemacro_tms term spread
macro_svar stock market variancemacro_dp aggregate dividend-to-price
macro_dfy default yield spreadmacro_ntis net equity issuance
mom12m / mom6m / mom1m past 12, 6 and 1-month returnbaspread bid-ask spread
The top three are all macro variables: the trees mostly learned when the cross-section of returns behaves differently, then used momentum and trading-cost characteristics to sort stocks within those regimes. That interaction is exactly what a linear model cannot represent.
Limits
What this result does not show.
The best model explains 1.45% of return variance. The training window (2009–2017) contains no crash comparable to 2008, so behaviour in a crisis is untested. Features were screened by their correlation with returns; running that screen on the training years only rules out any look-ahead. Transaction costs are ignored. Next steps would be expanding-window validation, a cost model and ensembles.