Arte SheetsLearn. Try. Understand.

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 ExpressionSample Output
Benchmark MSPE_1 vs Nested MSPE_2AVERAGE(e_1t^2) vs AVERAGE(e_2t^2)9.3333 vs 4.3333
Campbell-Thompson Out-of-Sample R^2_OS1 - SUM(e_2t^2) / SUM(e_1t^2)0.5357 (+53.57% MSE reduction)
Mean Clark-West Adjusted f_barAVERAGE(e_1t^2 - e_2t^2 + (y_hat1 - y_hat2)^2)+7.0000 (vs +5.0000 unadjusted)
Clark-West One-Sided t_CW StatisticAVERAGE(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)^2

Campbell-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.

Further reading