Quantitative Finance & Forecasting
Clark-West Nested MSPE-Adjusted Test and Out-of-Sample R-Squared
Evaluate nested predictive regressions against a historical-mean or random-walk benchmark using Campbell-Thompson R^2_OS and Clark & West’s (2007) noise-adjusted f_t statistic.
Understand why raw out-of-sample MSE unfairly penalizes nested factor models!
When Model 1 is a parsimonious benchmark (such as a random walk or historical mean y_hat1,t) nested inside Model 2 (y_hat2,t, which estimates extra predictor slopes), under the null hypothesis that the extra slopes equal zero, Model 2’s out-of-sample forecast still suffers finite-sample parameter estimation noise (y_hat1,t - y_hat2,t)^2 > 0! Consequently, Model 2’s raw MSPE_2 is systematically LARGER than MSPE_1 under the null, making standard Diebold-Mariano severely undersized.
Clark and West (2007) add back the squared forecast difference to form adjusted differential f_t = e_{1t}^2 - (e_{2t}^2 - (y_hat1,t - y_hat2,t)^2) and test H0 via t_CW = AVERAGE(f_t) / (STDEV(f_t) / SQRT(P)), reported alongside Campbell and Thompson’s (2008) out-of-sample R^2_OS = 1 - SUM(e_{2t}^2) / SUM(e_{1t}^2). Verify on 6 out-of-sample periods: benchmark squared error sum is 56 vs nested 26 (R^2_OS = 30 / 56 = 0.5357), and adding back (y_hat1 - y_hat2)^2 lifts mean f_bar from +5.0000 to +7.0000 with one-sided t_CW = +2.5281 (> 1.645 critical)!
| Out-of-Sample Metric (P = 6) | Formula Expression | Sample Output |
|---|---|---|
| Benchmark MSPE_1 vs Nested MSPE_2 | AVERAGE(e_1t^2) vs AVERAGE(e_2t^2) | 9.3333 vs 4.3333 |
| Campbell-Thompson Out-of-Sample R^2_OS | 1 - SUM(e_2t^2) / SUM(e_1t^2) | 0.5357 (+53.57% MSE reduction) |
| Mean Clark-West Adjusted f_bar | AVERAGE(e_1t^2 - e_2t^2 + (y_hat1 - y_hat2)^2) | +7.0000 (vs +5.0000 unadjusted) |
| Clark-West One-Sided t_CW Statistic | AVERAGE(f_t) / (STDEV(f_t) / SQRT(P)) | +2.5281 (> 1.645 critical!) |
Period Clark-West MSPE-Adjusted Differential f_t Formula
Compute e_{1t}^2 - e_{2t}^2 + (y_hat1,t - y_hat2,t)^2 row by row in column E (which algebraically equals 2 * e_{1t} * (y_hat2,t - y_hat1,t) !).
=(B2 - C2)^2 - (B2 - D2)^2 + (C2 - D2)^2Campbell-Thompson Out-of-Sample R^2_OS & Clark-West t_CW Formula
Notice that even when R^2_OS is slightly negative (e.g., -0.5%), t_CW can be legitimately positive because parameter-estimation variance inflated MSPE_2; however, Campbell and Thompson recommend requiring BOTH R^2_OS > 0 AND statistically significant t_CW before deploying a return predictor!
=LET(ss_bm, SUMPRODUCT((B2:B7 - C2:C7)^2), ss_md, SUMPRODUCT((B2:B7 - D2:D7)^2), IF(ss_bm <= 0, "Zero Benchmark Error", ROUND(1 - ss_md / ss_bm, 4)))Try the example
Use the original values or change them to test your understanding.