Как рассчитать SMAPE в Python


Симметричная средняя абсолютная процентная ошибка (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