Симметричная средняя абсолютная процентная ошибка (SMAPE) используется для измерения прогностической точности моделей. Он рассчитывается как:
SMAPE = (1/n) * Σ(|прогноз – фактический| / ((|фактический| + |прогноз|)/2) * 100
куда:
- Σ – символ, означающий «сумма»
- n – размер выборки
- фактический – фактическое значение данных
- прогноз – прогнозируемое значение данных
В этом руководстве объясняется, как рассчитать SMAPE в Python.
Как рассчитать SMAPE в Python
В Python нет встроенной функции для вычисления SMAPE, но мы можем создать для этого простую функцию:
import numpy as np
def smape( a , f ):
return 1/ len (a) \* np.sum (2 \* np.abs (f-a) / (np.abs (a) + np.abs (f))\*100)
Затем мы можем использовать эту функцию для вычисления SMAPE для двух массивов: одного, содержащего фактические значения данных, и другого, содержащего прогнозируемые значения данных.
#define arrays of actual and forecasted data values
actual = np.array([12, 13, 14, 15, 15,22, 27])
forecast = np.array([11, 13, 14, 14, 15, 16, 18])
#calculate SMAPE
smape(actual, forecast)
12.45302
Из результатов видно, что симметричная средняя абсолютная процентная ошибка для этой модели составляет 12,45302% .
Дополнительные ресурсы
Запись в Википедии для SMAPE
Мысли Роба Дж. Хайндмана о SMAPE
Как рассчитать MAPE в Python
Как рассчитать MAPE в R
Как рассчитать MAPE в Excel