Русская Википедия:Скользящая средняя

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Другие значения

Файл:Movingaverage3.svg
График исходной функции (синий) и его скользящая средняя (красная) с шириной окна n = 2

Скользя́щая сре́дняя, скользя́щее сре́днее (Шаблон:Lang-en, Шаблон:Lang-en2) — общее название для семейства функций, значения которых в каждой точке определения равны некоторому среднему значению исходной функции за предыдущий период.

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

Математически скользящее среднее является одним из видов свёртки.

Применение

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

Этимология

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

Виды скользящих средних

Общий случай

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

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

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

<math>\sum_{i=0}^{n-1} w_{t-i} = 1.</math>

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

<math>\textit{WWMA}_t = \frac{\sum_{i=0}^{n-1} W_{t-i} \cdot p_{t-i}}{\sum_{i=0}^{n-1} W_{t-i}},</math> (WWMA 2)
где <math>\textit{WWMA}_t</math> — значение взвешенного скользящего среднего в точке <math>t</math>;
<math>n</math> — количество значений исходной функции для расчёта скользящего среднего;
<math>W_{t-i}</math> — вес (весовой коэффициент) <math>t-i</math>-го значения исходной функции;
<math>p_{t-i}</math> — значение исходной функции в момент времени, отдалённый от текущего на <math>i</math> интервалов.

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

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

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

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

Простое скользящее среднее

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

Простое скользящее среднее, или арифметическое скользящее среднее (Шаблон:Lang-en, Шаблон:Lang-en) численно равно среднему арифметическому значений исходной функции за установленный период[1] и вычисляется по формуле[2]:

<math>\textit{SMA}_t = \frac{1}{n}\sum_{i=0}^{n-1} p_{t-i} =</math>
<math>= \frac{p_t+p_{t-1}+\cdots+p_{t-i}+\cdots+p_{t-n+2}+p_{t-n+1}}{n},</math>
где <math>\textit{SMA}_t</math> — значение простого скользящего среднего в точке <math>t</math>;
<math>n</math> — количество значений исходной функции для расчёта скользящего среднего (сглаживающий интервал[1]), чем шире сглаживающий интервал, тем более плавным получается график функции[1];
<math>p_{t-i}</math> — значение исходной функции в точке <math>t-i</math>.

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

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

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

Данной формулой удобно пользоваться, чтобы избежать регулярного суммирования всех значений.

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

<math>\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} =</math>
<math>= \textit{SMA}_{t-1} - \frac{p_{t-10}}{10} + \frac{p_{t}}{10},</math>
где <math>\textit{SMA}_t</math> — значение простого скользящего среднего в точке <math>t</math>;
<math>p_{t-i}</math> — значение исходной функции в момент времени, отдалённый от текущего на <math>i</math> интервалов.

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

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

Взвешенные скользящие средние

Общие положения

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

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

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

Взвешенное скользящее среднее

Файл:Weighted moving average weights N=15.svg
Веса значений исходной функции при вычислении WMA с n = 15

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

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

<math>\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+2}+1 \cdot p_{t-n+1}}{n+(n-1)+\cdots+(n-i)+\cdots+2+1} =</math>
<math>= \frac{2}{n \cdot (n+1)}\sum_{i=0}^{n-1} (n-i) \cdot p_{t-i},</math>
где <math>\textit{WMA}_t</math> — значение взвешенного скользящего среднего в точке <math>t</math>;
<math>n</math> — количество значений исходной функции для расчёта скользящего среднего, : : <math>p_{t-i}</math> — значение исходной функции в момент времени, отдалённый от текущего на <math>i</math> интервалов.

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

<math>\frac{n \cdot (n+1)}{2}.</math>

Экспоненциально взвешенное скользящее среднее

Шаблон:See also

Файл:Exponential moving average weights N=15.svg
Веса значений исходной функции при вычислении EMA с n = 15

Экспоненциально взвешенное скользящее среднее, экспоненциальное скользящее среднее (Шаблон:Lang-en — Шаблон:Lang-en, Шаблон:Lang-en — Шаблон:Lang-en) — разновидность взвешенной скользящей средней, веса которой убывают экспоненциально и никогда не равны нулю[3]. Определяется следующей формулой[1][2][4][5][6]:

<math>\textit{EMA}_t = \alpha \cdot p_t + (1-\alpha) \cdot \textit{EMA}_{t-1},</math>
где <math>\textit{EMA}_t</math> — значение экспоненциального скользящего среднего в точке <math>t</math> (последнее значение, в случае временного ряда);
<math>\textit{EMA}_{t-1}</math> — значение экспоненциального скользящего среднего в точке <math>t-1</math> (предыдущее значение в случае временного ряда);
<math>p_t</math> — значение исходной функции в момент времени <math>t</math> (последнее значение, в случае временного ряда);
<math>\alpha</math> — (сглаживающая константа от Шаблон:Lang-en) коэффициент характеризующий скорость уменьшения весов, принимает значение от 0 и до 1, чем меньше его значение тем больше влияние предыдущих значений на текущую величину среднего.

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

<math>\textit{EMA}_0 = p_0.</math>

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

<math>\ \alpha = \frac{2}{n + 1}.</math>

Экспоненциальное скользящее среднее произвольного порядка

Файл:Triple exponential moving average weightings N=10.svg
Веса экспоненциально взвешенной скользящей средней третьего порядка — TMA с окном n=10.

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

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

Экспоненциально взвешенные скользящие средние второго и третьего порядка обозначают иногда как, соответственно <math>\textit{DMA}</math> (от Шаблон:Lang-en — двойное (двукратное) экспоненциальное скользящее среднее) и <math>\textit{TMA}</math> (от Шаблон:Lang-en — тройное (трёхкратное) экспоненциальное скользящее среднее)[2]:

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

Модифицированное скользящее среднее

Модифицированное скользящее среднее (от Шаблон:Lang-en — Шаблон:Lang-en; иногда называемое Шаблон:Lang-en — Шаблон:Lang-en и Шаблон:Lang-en) определятся как:

<math>\text{MMA}_t = \frac{p_t + (n - 1) \cdot \text{MMA}_{t-1}}{n},</math>
где <math>\textit{MMA}_t</math> — значение модифицированного скользящего среднего в точке <math>t</math> (последнее значение, в случае временного ряда);
<math>\textit{MMA}_{t-1}</math> — значение модифицированного скользящего среднего в точке <math>t-1</math> (предыдущее значение в случае временного ряда);
<math>n</math> — количество значений исходной функции для расчёта скользящего среднего (сглаживающий интервал).

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

<math>\alpha = \frac{1}{n}.</math>

Смежные функции

Скользящие на основе других усредняющих функций

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

Простая скользящая медиана

Простая скользящая медиана (Шаблон:Lang-en — Шаблон:Lang-en) — функция, значение которой в каждой точке определения численно равна медиане значений исходной функции за установленный период:

<math>\textit{SMM}_t = \text{Median}( p_t, p_{t-1}, \ldots, p_{t-n+1}),</math>
где <math>\textit{SMM}_t</math> — значение простой скользящей медианы в точке <math>t</math>;
<math>n</math> — количество значений исходной функции для расчёта скользящей медианы (сглаживающий интервал);
<math>p_{t-i}</math> — значение исходной функции в точке <math>t-i</math>.

Динамические скользящие средние

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

Кумулятивное скользящее среднее

Кумулятивное скользящее среднее (Шаблон:Lang-en) численно равно среднему арифметическому значений исходной функции за весь период наблюдений:

<math>\textit{CA}_t = \frac{1}{t} \sum_{i=1}^{t}p_i = \frac{p_t+p_{t-1}+\cdots+p_{2}+p_{1}}{t},</math>
где <math>\textit{CA}_t</math> — кумулятивное скользящее среднее в момент <math>t</math>;
<math>t</math> — количество доступных для вычисления интервалов;
<math>p_i</math> — значение исходной функции в точке <math>i.</math>

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

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

Кумулятивная сумма

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

<math>\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},</math>
где <math>\textit{Cumulative}_t, \textit{Cumulative}_{t-1}</math> — текущее и предыдущее значения кумулятивной суммы;
<math>p_i</math> — значение исходного ряда в момент <math>i.</math>

См. также

Примечания

Шаблон:Примечания

Шаблон:Среднее

  1. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 Ошибка цитирования Неверный тег <ref>; для сносок math.methods не указан текст
  2. 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 2,12 Ошибка цитирования Неверный тег <ref>; для сносок stat.trad не указан текст
  3. 3,0 3,1 Ошибка цитирования Неверный тег <ref>; для сносок exp.war не указан текст
  4. Ошибка цитирования Неверный тег <ref>; для сносок exp.war2 не указан текст
  5. Ошибка цитирования Неверный тег <ref>; для сносок itl.nist.gov.pmc431 не указан текст
  6. Ошибка цитирования Неверный тег <ref>; для сносок itl.nist.gov.pmc324 не указан текст