Module 05 · Empirical research
Factor exposures, tested against frozen data
Daily ETF returns are regressed on the Fama–French five factors plus momentum, with HAC confidence intervals, rolling estimates, a chronological holdout, and corrections for testing six alphas at once. The result is an auditable estimate—not a stylized profile.
Revised · research record
Data provenance
A dated sample with a pinned vintage
- Status
- Loading frozen research artifact…
Factor returns come directly from the Kenneth R. French Data Library. Prices are adjusted-close snapshots stored in this repository. SHA-256 hashes below identify the exact files.
Estimate 01
ETF exposures with 95% confidence intervals
For each ETF, the model is a time-series regression of daily excess returns on MKT–RF, SMB, HML, RMW, CMA, and momentum. Intervals use Newey–West HAC covariance estimates with five lags. This is an exposure study—not the two-pass Fama–MacBeth procedure used to estimate cross-sectional factor premia.1
Estimate 02
Rolling versus full-sample QQQ betas
A full-sample beta compresses eleven years into one number. The lines below re-estimate QQQ on a trailing 252-observation window; dashed references show the corresponding full-sample estimates. Instability is evidence about model scope, not chart noise.
Estimate 03
Out-of-sample explanatory decay
The sample is split in half chronologically. Coefficients estimated on the first half are frozen, then applied to the second. Predictive R² is benchmarked against the holdout mean. A lower bar in the holdout is the measured cost of transporting the exposure map through time.
Multiplicity audit
What survives six simultaneous alpha tests?
Raw significance is not a research conclusion. The table reports unadjusted p-values, Holm family-wise adjusted p-values, and Benjamini–Hochberg q-values. On this snapshot, no ETF alpha survives a 5% false-discovery threshold—an important correction to the tempting standalone QQQ result.2
Reproduce
Inspect the computation, not just the chart
Open the
factor notebook at the source commit,
or rebuild the browser artifact with PYTHONPATH=. python3 scripts/build_frontend_research_data.py.
The page deliberately separates data vintage, estimator, uncertainty, holdout rule, and multiplicity decision.
References
- Fama, E. F., and K. R. French (2015), “A Five-Factor Asset Pricing Model,” Journal of Financial Economics 116(1), 1–22. doi:10.1016/j.jfineco.2014.10.010 ↩
- Benjamini, Y., and Y. Hochberg (1995), “Controlling the False Discovery Rate,” Journal of the Royal Statistical Society: Series B 57(1), 289–300. doi:10.1111/j.2517-6161.1995.tb02031.x ↩
- Harvey, C. R., Y. Liu, and H. Zhu (2016), “...and the Cross-Section of Expected Returns,” Review of Financial Studies 29(1), 5–68. doi:10.1093/rfs/hhv059