mape – Mean absolute percentage error – (100/N) Σ |y_t - ŷ_t| / |y_t|.#
Back to point_metrics axis | Back to L5 | Browse all options
Operational op under axis
point_metrics, sub-layerL5_A_metric_specification, layerl5. Standalone callable:mf.functions.mape.
Function signature#
mf.functions.mape(
y_true: np.ndarray | pd.Series,
y_pred: np.ndarray | pd.Series,
*,
eps: float = 1e-10,
) -> float
Parameters#
name |
type |
default |
constraint |
description |
|---|---|---|---|---|
|
`np.ndarray |
pd.Series` |
— |
— |
|
`np.ndarray |
pd.Series` |
— |
— |
|
|
|
— |
Small positive value added to |
Returns#
float — scalar result.
Behavior#
Point-forecast metric mape. Scale-free percentage version of MAE. Allows comparing forecasts for targets on different scales (US GDP vs Korean GDP). Pathological when targets can be zero or near-zero – the metric blows up. Hyndman & Koehler (2006) recommend MASE / sMAPE in those cases.
When to use
Cross-target / cross-country comparisons; reporting forecast accuracy in percentage terms.
When NOT to use
Targets that can be near zero (rates, growth rates) – division by tiny |y_t| makes the metric explode.
In recipe context#
Set params.point_metrics = "mape" in the relevant layer to activate this op within a recipe:
# Layer L5 recipe fragment
params:
point_metrics: mape
References#
macroforecast design Part 3, L5: ‘evaluation = (metric × benchmark × aggregation × decomposition × ranking).’
Diebold (2017) ‘Forecasting in Economics, Business, Finance and Beyond’, University of Pennsylvania (free online). https://www.sas.upenn.edu/~fdiebold/Textbooks.html
Hyndman & Koehler (2006) ‘Another look at measures of forecast accuracy’, International Journal of Forecasting 22(4): 679-688. (doi:10.1016/j.ijforecast.2006.03.001)