Скользящая средняя

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
График исходной функции (синий) и его скользящая средняя (красная) с шириной окна n = 2.

Скользя́щая сре́дняя, скользя́щее сре́днее (англ. moving average, англ. MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания краткосрочных колебаний и выделения основных тенденций или циклов[1][2]. Математически скользящее среднее является одним из видов свёртки, и поэтому его можно рассматривать как фильтр низких частот, используемых в обработке сигналов.

Применение[править | править исходный текст]

Скользящие средние используются:

Этимология[править | править исходный текст]

Так как при расчёте скользящего среднего значение функции вычисляется каждый раз заново[2], при этом учитывается конечное значимое[3] множество предыдущих значений скользящее среднее «перемещается» (движется), как бы «скользя» по временному ряду.

Виды скользящих средних[править | править исходный текст]

Общий случай[править | править исходный текст]

В общем случае, взвешенные скользящие средние вычисляются по формуле[2]:

\textit{WWMA}_t  =  \sum_{i=0}^{n-1} w_{t-i} \cdot p_{t-i}, (WWMA 1)

где \textit{WWMA}_t — значение взвешенного скользящего среднего в точке t; n — количество значений исходной функции для расчёта скользящего среднего; w_{t-i} — нормированный вес (весовой коэффициент) t-i-го значения исходной функции; p_{t-i} — значение исходной функции в момент времени, отдалённый от текущего на i интервалов.

Нормирование весовых коэффициентов означает, что[2]:

\sum_{i=0}^{n-1} w_{t-i} = 1.

Указанную выше формулу с произвольными значениями весовых коэффициентов можно переписать в виде:

\textit{WWMA}_t  =  \frac{\sum_{i=0}^{n-1} W_{t-i} \cdot p_{t-i}}{\sum_{i=0}^{n-1} W_{t-i}}, (WWMA 2)

где \textit{WWMA}_t — значение взвешенного скользящего среднего в точке t, n — количество значений исходной функции для расчёта скользящего среднего, W_{t-i} — вес (весовой коэффициент) t-i-го значения исходной функции, p_{t-i} — значение исходной функции в момент времени, отдалённый от текущего на i интервалов.

Весовые коэффициенты в формулах (WWMA 1) и (WWMA 2) соотносятся как:

w_{t-i} = \frac{W_{t-i}}{\sum_{i=0}^{n-1} W_{t-i}}.

Зачастую, в качестве веса используют либо 1 (для простого скользящего среднего — SMA), либо формальные ряды, например, арифметическая прогрессия (WMA) или экспоненциальная функция (EMA). Но в качестве весового коэффициента могут выступать и значения связанного временного ряда. Например, для взвешивания биржевых цен по объёмам сделки (VMA) в качестве p_{t-i} следует рассматривать цену сделки по инструменту, а в качестве W_{t-i} = V_{t-i} — объём в момент времени t-i:

\textit{VMA}_t  =  \frac{\sum_{i=0}^{n-1} V_{t-i} \cdot p_{t-i}}{\sum_{i=0}^{n-1} V_{t-i}}.

Простое скользящее среднее[править | править исходный текст]

Исходная функция и её простые скользящие средние по четырём значениям (n = 4).
Зелёная линия — центрирование по середине интервала (истинное положение).
Красная линия — сдвиг графика вправо к последнему значению окна.

Простое скользящее среднее, или арифметическое скользящее среднее (англ. simple moving average, англ. SMA) численно равно среднему арифметическому значений исходной функции за установленный период[1][4] и вычисляется по формуле[2]:

\textit{SMA}_t = \frac{1}{n}\sum_{i=0}^{n-1} p_{t-i}  =  \frac{p_t+p_{t-1}+\cdots+p_{t-i}+\cdots+p_{t-n+2}+p_{t-n+1}}{n},

где \textit{SMA}_t — значение простого скользящего среднего в точке t; n — количество значений исходной функции для расчёта скользящего среднего (сглаживающий интервал[1]), чем шире сглаживающий интервал, тем более плавным получается график функции[1]; p_{t-i} — значение исходной функции в точке t-i.

Полученное значение простой скользящей средней относится к середине выбранного интервала[1], однако, традиционно его относят к последней точке интервала[2].

Из предыдущего своего значения простое скользящее среднее может быть получено по следующей рекуррентной формуле[2]:

\textit{SMA}_t = \textit{SMA}_{t-1} - \frac{p_{t-n}}{n} + \frac{p_{t}}{n},

где \textit{SMA}_t — значение простого скользящего среднего в точке t, \textit{SMA}_{t-1} — предыдущее значение простого скользящего среднего, p_{t-n} — значение исходной функции в точке t-n (в случае временного ряда, самое «раннее» значение исходной функции, используемое для вычисления предыдущей скользящей средней), p_{t} — значение исследуемой функции точке t (в случае временного ряда, текущее — последнее значение). Данной формулой удобно пользоваться для избежания регулярного суммирования всех значений.

Например, простое скользящее среднее для временного ряда с количеством периодов равным 10 вычисляется как:

\textit{SMA}_t = \frac{p_t+p_{t-1}+p_{t-2}+p_{t-3}+p_{t-4}+p_{t-5}+p_{t-6}+p_{t-7}+p_{t-8}+p_{t-9}}{10} = \textit{SMA}_{t-1} - \frac{p_{t-10}}{10} + \frac{p_{t}}{10},

где \textit{SMA}_t — значение простого скользящего среднего в точке t, p_{t-i} — значение исходной функции в момент времени, отдалённый от текущего на i интервалов.

Выделяют следующие недостатки простого скользящего среднего[2]:

  1. Равенство весового коэффициента 1.
  2. Двойная реакция на каждое значение (смотрите рекуррентную формулу): в момент входа в окно вычислений и в момент выхода из него.

Взвешенные скользящие средние[править | править исходный текст]

Общие положения[править | править исходный текст]

Иногда, при построении скользящей средней, некоторые значения исходной функции целесообразно сделать более значимым. Например, если предполагается, что внутри интервала сглаживания имеет место нелинейная тенденция[1], или в случае временных рядов, последние — более актуальные данные могут быть весомее предыдущих.

Бывает, что исходная функция многомерна, то есть представлена сразу несколькими связанными рядами. В этом случае, может возникнуть необходимость объединить в итоговой функции скользящей средней все полученные данные. Например, временные ряды биржевых цен, обычно, для каждого момента времени представлены как минимум двумя значениями — ценой сделки и её объёмом. Необходим инструмент для вычисления скользящей средней цены, взвешенной по объёму.

В этих и подобных случаях применяются взвешенные скользящие средние.

Взвешенное скользящее среднее[править | править исходный текст]

Веса значений исходной функции при вычислении WMA с n = 15

Взвешенное скользящее среднее (англ. weighted moving average — англ. WMA), точнее линейно взвешенное скользящее среднее — скользящее среднее, при вычислении которого вес каждого члена исходной функции, начиная с меньшего, равен соответствующему члену арифметической прогрессии. То есть, при вычислении WMA для временного ряда, мы считаем последние значения исходной функции более значимы чем предыдущие, причём функция значимости линейно убывающая.

Например, для арифметической прогрессии с начальным значением и шагом, равным 1, формула вычисления скользящей средней примет вид[2]:

\textit{WMA}_t  =  \frac{n \cdot p_t+(n-1) \cdot p_{t-1}+\cdots+(n-i) \cdot p_{t-i}+\cdots+2 \cdot p_{t-n}+1 \cdot p_{t-n+1}}{n+(n-1)+\cdots+(n-i)+\cdots+2+1} = \frac{2}{n \cdot (n+1)}\sum_{i=0}^{n-1} (n-i) \cdot p_{t-i},

где \textit{WMA}_t — значение взвешенного скользящего среднего в точке t, n — количество значений исходной функции для расчёта скользящего среднего, p_{t-i} — значение исходной функции в момент времени, отдалённый от текущего на i интервалов.

Несложно заметить, что знаменатель функции, в этом случае, равен треугольному числу — сумме членов арифметической прогрессии с начальным членом и шагом равными 1:

\frac{n \cdot (n+1)}{2}.

Экспоненциально взвешенное скользящее среднее[править | править исходный текст]

Веса значений исходной функции при вычислении EMA с n = 15

Экспоненциально взвешенное скользящее среднее, экспоненциальное скользящее среднее (англ. exponentially weighted moving average — англ. EWMA, англ. exponential moving average — англ. EMA) — разновидность взвешенной скользящей средней, веса которой убывают экспоненциально[5] и никогда не равны нулю[3]. Определяется следующей формулой[6][1][7][8][2]:

\textit{EMA}_t  = \alpha \cdot p_t + (1-\alpha) \cdot \textit{EMA}_{t-1},

где \textit{EMA}_t — значение экспоненциального скользящего среднего в точке t (последнее значение, в случае временного ряда), \textit{EMA}_{t-1} — значение экспоненциального скользящего среднего в точке t-1 (предыдущее значение в случае временного ряда), p_t — значение исходной функции в момент времени t (последнее значение, в случае временного ряда), \ \alpha (сглаживающая константа от англ. smoothing constant) — коэффициент характеризующий скорость уменьшения весов, принимает значение от 0 и до 1, чем меньше его значение тем больше влияние предыдущих значений на текущую величину среднего.

Первое значение экспоненциального скользящего среднего, обычно принимается равным первому значению исходной функции:

\textit{EMA}_0  = p_0.

Коэффициент \ \alpha, может быть выбран произвольным образом, в пределах от 0 до 1, например, выражен через величину окна усреднения:

\ \alpha = \frac{2}{n + 1}.

Экспоненциальное скользящее среднее произвольного порядка[править | править исходный текст]

Веса экспоненциально взвешенной скользящей средней третьего порядка — TMA с окном n=10.

В обычном экспоненциальном скользящем среднем сглаживанию подвергается значения исходной функции, однако, сглаживанию могут подвергаться и значения результирующей функции[2]. Поэтому некоторые авторы определяют понятие экспоненциальные скользящее среднее произвольного порядка[2], которые вычисляются по формуле:

\textit{EMA}_t^{(n)}  = \alpha \cdot \textit{EMA}_t^{(n-1)} + (1-\alpha) \cdot \textit{EMA}_{t-1}^{(n)},

где \textit{EMA}_t^{(n)} — значение экспоненциального скользящего среднего n-го порядка в точке t (последнее значение, в случае временного ряда), \textit{EMA}_{t-1}^{(n)} — значение экспоненциального скользящего среднего n-го порядка в точке t-1 (предыдущее значение в случае временного ряда), {EMA}_t^{(n-1)} — значение экспоненциального скользящего среднего (n-1)-го порядка в точке t (последнее значение, в случае временного ряда), \ \alpha — сглаживающая константа.

Экспоненциально взвешенные скользящие средние второго и третьего порядка обозначают иногда как, соответственно \textit{DMA} (от англ. double exponential moving average — двойное (двукратное) экспоненциальное скользящее среднее) и \textit{TMA} (от англ. triple exponential moving average — тройное (трёхкратное) экспоненциальное скользящее среднее)[2]:

\textit{DMA}_t  = \alpha \cdot \textit{EMA}_t + (1-\alpha) \cdot \textit{DMA}_{t-1},
\textit{TMA}_t  = \alpha \cdot \textit{DMA}_t + (1-\alpha) \cdot \textit{TMA}_{t-1}.

Модифицированное скользящее среднее[править | править исходный текст]

Модифицированное скользящее среднее (от англ. modified moving average — англ. MMA; иногда называемое англ. running moving average — англ. RMA и англ. smoothed moving average) определятся как:

\text{MMA}_t = \frac{p_t + (n - 1) \cdot \text{MMA}_{t-1}}{n},

где \textit{MMA}_t — значение модифицированного скользящего среднего в точке t (последнее значение, в случае временного ряда),), \textit{MMA}_{t-1} — значение экспоненциального скользящего среднего в точке t-1 (предыдущее значение в случае временного ряда), n — количество значений исходной функции для расчёта скользящего среднего (сглаживающий интервал).

Несложно заметить, что модифицированное скользящее среднее является частным случаем экспоненциального скользящего среднего, для которого сглаживающая константа равна обратному значению величины сглаживающего интервала:

\alpha = \frac{1}{n}.

Смежные функции[править | править исходный текст]

Скользящие на основе других усредняющих функций[править | править исходный текст]

По аналогии со скользящими средними значениями, построенными на основе арифметического среднего, можно использовать и другие усредняющие функции (среднее степенное: среднее квадратическое, среднее гармоническое и т. д.; среднее геометрическое; медиану и т. п.) и их взвешенные аналоги. Конкретный выбор зависит от природы исследуемой исходной функции.

Простая скользящая медиана[править | править исходный текст]

Простая скользящая медиана (англ. simple moving median — англ. SMM) — функция, значение которой в каждой точке определения численно равна медиане значений исходной функции за установленный период:

\textit{SMM}_t = \text{Median}( p_t, p_{t-1}, \ldots, p_{t-n+1}),

где \textit{SMM}_t — значение простой скользящей медианы в точке t; n — количество значений исходной функции для расчёта скользящей медианы (сглаживающий интервал); p_{t-i} — значение исходной функции в точке t-i.

Динамические скользящие средние[править | править исходный текст]

В 1990-х годах был предложен ряд скользящих средних с динамически изменяемой шириной окна (или сглаживающим коэффициентом), смотрите, например, Адаптивная скользящая средняя Кауфмана.

Кумулятивное скользящее среднее[править | править исходный текст]

Кумулятивное скользящее среднее (англ. cumulative moving average) численно равно среднему арифметическому значений исходной функции за весь период наблюдений:

\textit{CA}_t = \frac{1}{t} \sum_{i=1}^{t}p_i = \frac{p_t+p_{t-1}+\cdots+p_{2}+p_{1}}{t},

где \textit{CA}_t — кумулятивное скользящее среднее в момент t, t — количество доступных, для вычисления интервалов, p_i — значение исходной функции в точке i.

В реальных вычислениях, когда предыдущее значение кумулятивного скользящего среднего известны, применяются также следующие формулы:

\textit{CA}_t = \frac{p_t + (t - 1) \cdot \textit{CA}_{t-1}}{t} = \textit{CA}_{t-1} + \frac{p_t - \textit{CA}_{t-1}}{t},

где \textit{CA}_t — кумулятивное скользящее среднее в момент t, \textit{CA}_{t-1} — кумулятивное скользящее среднее в момент t-1 (предыдущее значение, в случае временного ряда), p_t — значение исходной функции в момент времени t (в случае временного ряда — последнее значение), t — количество доступных, для вычисления интервалов. Причём, \textit{CA}_0 = 0.

Кумулятивная сумма[править | править исходный текст]

Кумулятивное скользящее среднее не следует путать с кумулятивной суммой, которая вычисляется суммированием всех значений ряда нарастающим итогом:

\textit{Cumulative}_t = p_t + \textit{Cumulative}_{t-1} =  \sum_{i=1}^{t}p_i = p_t+p_{t-1}+\cdots+p_{2}+p_{1},

где \textit{Cumulative}_t, \textit{Cumulative}_{t-1} — текущее и предыдущее значения кумулятивной суммы, p_i — значение исходного ряда в момент i.

См. также[править | править исходный текст]

Примечания[править | править исходный текст]

  1. 1 2 3 4 5 6 7 Грешилов А. А., Стакун В. А., Стакун А. А. Математические методы построения прогнозов. — М.: Радио и связь, 1997.- 112 с. — ISBN 5-256-01352-1.
  2. 1 2 3 4 5 6 7 8 9 10 11 12 13 Булашев С. В. Статистика для трейдеров -М.: Компания Спутник+, 2003. — 245с.
  3. 1 2 При расчёте экспоненциально взвешенного скользящего среднего теоретически учитываются все значения временного ряда, однако, на практике, начиная с какого-то вклад исходных значений ниже погрешности вычислений. Поэтому ими можно пренебречь и считать множество предыдущих значений конечным.
  4. Moving Average Filter (англ.).
  5. Exponentially Weighted Moving Average Filter (англ.).
  6. В некоторых источниках используется «обратное» представление данной формулы:
    \textit{EMA}_t  = (1-\alpha) \cdot p_t + \alpha \cdot \textit{EMA}_{t-1},
    Математического смысла это не меняет, однако, при использовании и анализе следует внимательно отнестись к контекстному определению.
  7. Single Exponential Smoothing (англ.) на сайте Национального института стандартов и технологий США.
  8. EWMA Control Charts (англ.) на сайте Национального института стандартов и технологий США.