dm_diebold_mariano – Diebold-Mariano (1995) equal-predictive-ability test with Newey-West HAC SE.#
Back to equal_predictive_test axis | Back to L6 | Browse all options
Operational op under axis
equal_predictive_test, sub-layerL6_A_equal_predictive, layerl6. Standalone callable:mf.functions.dm_test.
Function signature#
mf.functions.dm_test(
loss_a: np.ndarray,
loss_b: np.ndarray,
) -> DMTestResult
Parameters#
name |
type |
default |
constraint |
description |
|---|---|---|---|---|
|
|
— |
— |
Per-period losses for model A (e.g. squared errors). |
|
|
— |
— |
Per-period losses for model B. |
Returns#
DMTestResult — frozen dataclass with fit results.
Attribute |
Type |
Description |
|---|---|---|
|
|
DM test statistic |
|
|
Two-sided p-value |
|
|
Reject H0 at 5% |
|
|
Observations used |
|
|
HLN correction applied |
Behavior#
Pairwise test of equal expected loss between two forecasts. Implements DM with HLN small-sample correction (Harvey-Leybourne-Newbold 1997) and a configurable HAC kernel (newey_west default, andrews / parzen available). Two-sided alternative tests equality of MSE / MAE losses.
When to use
Pairwise comparison of two non-nested forecasts.
When NOT to use
Nested-model comparisons – use Clark-West (L6.B) instead.
In recipe context#
Set params.equal_predictive_test = "dm_diebold_mariano" in the relevant layer to activate this op within a recipe:
# Layer L6 recipe fragment
params:
equal_predictive_test: dm_diebold_mariano
References#
macroforecast design Part 3, L6: ‘tests must report (statistic, p-value, kernel, lag) and respect HAC dependence-correction.’
Diebold & Mariano (1995) ‘Comparing Predictive Accuracy’, JBES 13(3): 253-263.
Harvey, Leybourne & Newbold (1997) ‘Testing the equality of prediction mean squared errors’, IJF 13(2): 281-291.