Methodology
We evaluate each factor parameter configuration using the Gibbons et al. (1989) test (GRS), which tests whether all intercepts (alphas) from time-series regressions of test portfolio returns on the factor model are jointly zero.
A higher GRS p-value indicates the factor model better prices the cross-section (we fail to reject : all ).
Test Assets
Following Liu, Tsyvinski & Wu (2022, Tables III–VI), we form quintile (5-way) value-weighted portfolios sorted on 8 characteristics, yielding 40 test assets:
| Market capitalisation |
MCAP |
III |
Prior-week market cap |
| Price level |
PRC |
III |
Prior-week closing price |
| Dollar volume |
PRCVOL |
V |
Prior-week mean daily volume |
| 1-week return |
|
IV |
Return over prior 1 week |
| 2-week return |
|
IV |
Return over prior 2 weeks |
| 3-week return |
|
IV |
Return over prior 3 weeks (baseline) |
| 4-week return |
|
IV |
Return over prior 4 weeks |
| Skip-week return |
|
IV |
Return over 3 weeks, skipping most recent |
All sort variables are lagged by one week relative to the portfolio return period to avoid look-ahead bias. Test portfolios are always value-weighted quintile sorts regardless of the factor model’s weighting scheme.
Factor Configurations Tested
Each factor model is characterised by 6 parameters. We test all 288 combinations:
| Exclusions |
All (stables + wrapped + derivs), Stablecoins only, None |
| Calendar |
Sharp year (Liu et al., 2022), Monday–Monday |
| Weighting |
Equal-weighted, Value-weighted |
| Size breakpoints |
Median (2), Tercile (3), Quintile (5), Decile (10) |
| Momentum lookback |
2, 3, 4 weeks |
| Delisting returns |
Off, On (-100%) |
The test portfolios (LHS) share the same exclusion, calendar, and delisting settings as the factor model (RHS) to ensure a consistent universe.
Results
Results are generated by scripts/test_factor_pricing_liu.R and will be updated after each pipeline run. The table below shows the most recent results.
Top 20 Configurations
| 1 |
all |
sharp |
Off |
EW |
10 |
2 |
1.82 |
0.0018 |
0.00864 |
0.628 |
| 2 |
nostable |
sharp |
Off |
EW |
10 |
2 |
1.85 |
0.0014 |
0.00818 |
0.618 |
| 3 |
all |
sharp |
Off |
VW |
10 |
2 |
1.87 |
0.0012 |
0.00779 |
0.457 |
| 4 |
nostable |
sharp |
Off |
VW |
10 |
2 |
1.91 |
0.0008 |
0.00735 |
0.450 |
| 5 |
none |
sharp |
Off |
EW |
10 |
2 |
1.93 |
0.0007 |
0.00832 |
0.616 |
| 6 |
none |
mon |
Off |
EW |
10 |
4 |
1.94 |
0.0006 |
0.00648 |
0.587 |
| 7 |
all |
sharp |
Off |
EW |
10 |
3 |
1.95 |
0.0005 |
0.00896 |
0.620 |
| 8 |
nostable |
sharp |
Off |
EW |
10 |
3 |
1.97 |
0.0005 |
0.00863 |
0.615 |
| 9 |
none |
mon |
Off |
VW |
10 |
4 |
1.97 |
0.0005 |
0.00621 |
0.551 |
| 10 |
all |
sharp |
Off |
VW |
10 |
4 |
1.98 |
0.0004 |
0.00723 |
0.469 |
| 11 |
all |
sharp |
Off |
VW |
10 |
3 |
1.98 |
0.0004 |
0.00794 |
0.455 |
| 12 |
all |
sharp |
Off |
EW |
10 |
4 |
1.99 |
0.0004 |
0.00720 |
0.538 |
| 13 |
nostable |
sharp |
Off |
EW |
10 |
4 |
1.99 |
0.0004 |
0.00674 |
0.531 |
| 14 |
nostable |
sharp |
Off |
VW |
10 |
4 |
1.99 |
0.0004 |
0.00724 |
0.464 |
| 15 |
none |
sharp |
Off |
VW |
10 |
2 |
2.00 |
0.0003 |
0.00751 |
0.445 |
| 16 |
nostable |
sharp |
Off |
VW |
10 |
3 |
2.03 |
0.0003 |
0.00783 |
0.452 |
| 17 |
none |
mon |
Off |
EW |
10 |
2 |
2.03 |
0.0003 |
0.00661 |
0.601 |
| 18 |
nostable |
mon |
Off |
EW |
10 |
4 |
2.04 |
0.0002 |
0.00621 |
0.596 |
| 19 |
all |
mon |
Off |
EW |
10 |
4 |
2.08 |
0.0002 |
0.00675 |
0.598 |
| 20 |
nostable |
mon |
Off |
VW |
10 |
4 |
2.09 |
0.0001 |
0.00610 |
0.560 |
Marginal Effects by Parameter Dimension
Exclusion
|
Exclusion
|
Mean GRS p
|
Median GRS p
|
Mean |α|
|
Mean R²
|
n
|
|
all
|
0.000055
|
0.000000
|
0.00807
|
0.637
|
96
|
|
nostable
|
0.000046
|
0.000000
|
0.00787
|
0.633
|
96
|
|
none
|
0.000031
|
0.000000
|
0.00804
|
0.630
|
96
|
Calendar
|
Calendar
|
Mean GRS p
|
Median GRS p
|
Mean |α|
|
Mean R²
|
n
|
|
sharp
|
0.000070
|
0.000000
|
0.00902
|
0.624
|
144
|
|
mon
|
0.000018
|
0.000000
|
0.00696
|
0.642
|
144
|
Delist Return
|
Delist Return
|
Mean GRS p
|
Median GRS p
|
Mean |α|
|
Mean R²
|
n
|
|
FALSE
|
0.000088
|
0.000002
|
0.00816
|
0.610
|
144
|
|
TRUE
|
0.000001
|
0.000000
|
0.00782
|
0.656
|
144
|
Weighting
|
Weighting
|
Mean GRS p
|
Median GRS p
|
Mean |α|
|
Mean R²
|
n
|
|
ew
|
0.000053
|
0.000000
|
0.00801
|
0.655
|
144
|
|
vw
|
0.000036
|
0.000000
|
0.00798
|
0.611
|
144
|
Size Breakpoints
|
Size Breakpoints
|
Mean GRS p
|
Median GRS p
|
Mean |α|
|
Mean R²
|
n
|
|
10
|
0.000169
|
0.000006
|
0.00735
|
0.581
|
72
|
|
5
|
0.000007
|
0.000000
|
0.00781
|
0.612
|
72
|
|
3
|
0.000001
|
0.000000
|
0.00823
|
0.653
|
72
|
|
2
|
0.000000
|
0.000000
|
0.00857
|
0.687
|
72
|
Mom Lookback
|
Mom Lookback
|
Mean GRS p
|
Median GRS p
|
Mean |α|
|
Mean R²
|
n
|
|
2
|
0.000073
|
0.000000
|
0.00797
|
0.632
|
96
|
|
4
|
0.000040
|
0.000000
|
0.00787
|
0.631
|
96
|
|
3
|
0.000020
|
0.000000
|
0.00814
|
0.637
|
96
|
Best Configuration per Exclusion Level
| all |
sharp |
Off |
EW |
10 |
2 |
1.82 |
0.001809 |
0.00864 |
0.628 |
| none |
sharp |
Off |
EW |
10 |
2 |
1.93 |
0.000672 |
0.00832 |
0.616 |
| nostable |
sharp |
Off |
EW |
10 |
2 |
1.85 |
0.001369 |
0.00818 |
0.618 |
Interpretation
The GRS test evaluates whether a given three-factor model (CMKT, CSMB, CMOM) can fully explain the cross-sectional return variation across the 40 test portfolios. Key metrics:
- GRS F-statistic: lower is better (smaller unexplained alpha)
- GRS p-value: higher is better (fail to reject H₀ that all alphas = 0)
- Mean |α|: average absolute pricing error across test assets (lower is better)
- Avg R²: average time-series explanatory power (higher is better)
References
Gibbons, M. R., Ross, S. A., & Shanken, J. (1989). A test of the efficiency of a given portfolio.
Econometrica,
57(5), 1121–1152.
https://doi.org/10.2307/1913625
Liu, Y., Tsyvinski, A., & Wu, X. (2022). Common risk factors in cryptocurrency.
The Journal of Finance,
77(2), 1133–1177.
https://doi.org/10.1111/jofi.13119