Skip to main content

Forecast Model Selection

Compare forecast accuracy between competing models.


Diebold-Mariano Test

Compare predictive accuracy of two forecasts.

Parameters

ParameterTypeRequiredDefaultDescription
actualDOUBLEYes-Actual values
forecast1DOUBLEYes-First forecast
forecast2DOUBLEYes-Second forecast
optionsMAPNo-Configuration options

Options MAP:

OptionTypeDefaultDescription
lossVARCHARmsemse, mae, or mape
alternativeVARCHARtwo_sidedtwo_sided, less, greater

Output

FieldTypeDescription
statisticDOUBLEDM test statistic
p_valueDOUBLEp-value
better_modelINTEGER1 or 2 (which forecast is better)

Example

SELECT anofox_stats_diebold_mariano_agg(
actual,
forecast1,
forecast2,
MAP {'loss': 'mse'}
) as result
FROM forecast_data;

Clark-West Test

Nested model comparison for forecasts. More powerful than Diebold-Mariano when comparing nested models.

Parameters

ParameterTypeRequiredDefaultDescription
actualDOUBLEYes-Actual values
forecast1DOUBLEYes-First forecast (restricted model)
forecast2DOUBLEYes-Second forecast (unrestricted model)

Output

FieldTypeDescription
statisticDOUBLECW test statistic
p_valueDOUBLEp-value

Example

SELECT anofox_stats_clark_west_agg(
actual,
forecast1,
forecast2
) as result
FROM forecast_data;

Choosing Between Tests

ScenarioRecommended Test
Non-nested modelsDiebold-Mariano
Nested modelsClark-West
Large errors matter moreDM with loss: 'mse'
Robust to outliersDM with loss: 'mae'
Percentage errorsDM with loss: 'mape'
🍪 Cookie Settings