При экспоненциальном сглаживании вводится начальное значение сглаживающей функции , задается параметр a Î [0,1] - коэффициент дисконтирования (обесценивания), а затем каждое следующее значение определяется по рекуррентной формуле
Если взять переменное a, a = 1/(k+ 1), получится вычисление среднего в рекуррентной форме. При a=1 - сглаживания не происходит. При a<1 степень сглаживания увеличивается с уменьшением a, но при этом в оценке появляется смещение. Для устранения смещения сглаживание, если возможно, проводят дважды: слева направо, а затем в обратном порядке, справа налево. Эти процедуры проиллюстрированы на рис.4, соответствующий сценарий приведен в Документе 2. Можно рассматривать аналогичные процедуры с большим числом параметров (фильтры Брауна) и с адаптивной настройкой параметра a (фильтры Хольта).
Очевидно, что при непараметрическом сглаживании нет четкой границы между трендом и низкочастотными колебаниями относительно тренда. Фактически эти процедуры представляют собой различные конструкции низкочастотных фильтров.
|
|
Документ 2.2. Экспоненциальное сглаживание Экспоненциальное сглаживание синусоидального сигнала на фоне аддитивного шума. Файл-сценарий exp_smooth.m |
clear; clc; T=20; t=0:0.05:T; %шкала времени s=0.4; %СКО аддитивного щума x0=sin(t); %исходный сигнал x=x0+s*randn(size(x0)); %исходный сигнал c шумом n=length(x); %длина временного ряда alpha1=0.1; alpha2=0.3; %коэффициенты дисконтирования %Объявляем размеры массивов и задаем начальные значения x1(0) и x2(0) x1=zeros(size(x)); x2=zeros(size(x)); for k=1:n-1; x1(k+1)=x1(k)+alpha1*(x(k+1)-x1(k)); x2(k+1)=x2(k)+alpha2*(x(k+1)-x2(k)); end; %Сглаживание в обратном порядке для устранения смещения x3=zeros(size(x)); x3(n)=x1(n); for k=1:n-1; x3(n-k)=x3(n-k+1)+alpha1*(x1(n-k)-x3(n-k+1)); end; subplot(4,1,1); plot(t,x,'r','LineWidth',2); grid; hold on; plot(t,x0,'LineWidth',2); title('Временной ряд и его тренд',… 'FontName','Courier New Cyr','FontSize',12); axis([0 T -2 2]); subplot(4,1,2); plot(t,x1,'r','LineWidth',2); grid; hold on; plot(t,x0,'LineWidth',2); title('Экспоненциальное сглаживание, alpha=0.1',... 'FontName','Courier New Cyr','FontSize',12); axis([0 T -2 2]); subplot(4,1,3); plot(t,x2,'r','LineWidth',2); grid; hold on; plot(t,x0,'LineWidth',2); title('Экспоненциальное сглаживание, alpha=0.3',... 'FontName','Courier New Cyr','FontSize',12); axis([0 T -2 2]); subplot(4,1,4); plot(t,x3,'r','LineWidth',2); grid; hold on; plot(t,x0,'LineWidth',2); title('Двойное экспоненциальное сглаживание, alpha=0.1',... 'FontName','Courier New Cyr','FontSize',12); axis([0 T -2 2]); |
Любая процедура выделения тренда всегда искажает корреляционную структуру случайных погрешностей. В частности, в остатках от сглаживания появляется некая ложная периодическая составляющая, что является причиной многочисленных ошибочных «открытий». Этот эффект называется эффектом Слуцкого-Юла.
Рис.2.2. Экспоненциальное сглаживание
|
|
Контрольные вопросы
1. Временной ряд
2. Цели моделирования
3. Задачи интерполяции и экстраполяции
4. Разложение Юла
5. Локально-полиномиальное сглаживание
6. Экспоненциальное сглаживание
Задания на лабораторную работу №2
Смоделировать временной ряд (1000 измерений), содержащий медленно меняющуюся периодическую компоненту (тренд) и более быстро меняющуюся сезонную компоненту (с известной частотой).
1. Получить 2 непараметрические оценки тренда
2. Выделить ряды остатков и оценить в них амплитуду и фазу сезонной составляющей
3. Вывести графики всех изученных рядов
4. Сформулировать выводы о влиянии метода выделения тренда на точность оценивания параметров сезонной составляющей.
3. РЕКУРРЕНТНЫЕ АЛГОРИТМЫ