Тренд и сезонные составляющие

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

C cos (wt+f) = C cos(f)cos(wt) - C sin(f) sin(wt) = = A cos(wt) + B sin(wt).               

При использовании МНК одно из основных исходных предположений состоит в некоррелированности случайных погрешностей измерений. При анализе временных рядов это предположение, как правило, не выполняет­ся. В инженерной практике корреляциями случайных погрешностей при оце­нивании тренда и сезонной составляющей приходится пренебрегать. Обычно при этом ссылаются на асимптотические результаты, оправдывающие такую практику. В действительности при конечном размере выборок корреляции погрешностей могут существенно снижать ожидаемую точность оценивания.

     Процедуры непараметрического оценивания тренда называют   сглаживанием. Наибольшее распространение имеют два подхода : локально-полиноми­альное сглаживание и экспоненциальное сглаживание.

2.3. Локально-полиноми­альное сглаживание

При локально-полиномиальном сглаживании ряда { xk }, k= 1 ,...,n за­даются двумя параметрами: шириной сглаживающего окна (2 l+ 1) и степенью аппроксимирующего полинома р. Для получения сглаженного значения в точке t k  берут члены ряда

xk-l, xk-l+ 1 ,..., xk,..., xk+l

и аппроксимируют их по МНК полиномом степени р. Сглаженное значение в точке tk  получа­ется как значение этого полинома в точке tk. Сглаженные значения в крайних правых и в крайних левых точках получаются так же, но точка xk уже не является центром окна. Легко доказать, что в вычислительном от­ношении эта процедура сводится к суммированию членов ряда, попавших в выбранное окно, с весами, которые определены заранее и зависят от пара­метров l и p. Таблицы таких весов можно найти во всех основных книгах по анализу временных рядов. Эта процедура проиллюстрирована на рис.3, соответствующие сценарии, в том числе программа вычисления весов weights, приведены в Докумен­те 2. 1.

Рис. 2.1. Локально-полиномиальное сглаживание

Документ 1. Локально-полиномиальное сглаживание
Экспоненциальное сглаживание синусоидального сигнала на фоне аддитивного шума. Файл poly_smooth.m clear; clc; T=20; t=0:0.05:T;         %шкала времени s=0.4;              %СКО аддитивного щума x0=sin(t);          %исходный сигнал x=x0+s*randn(size(x0)); %исходный сигнал c шумом x1=polysmooth_f(x,2,7); x2=polysmooth_f(x,3,12); x3=polysmooth_f(x,4,25); 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('Полиномиальное сглаживание, m=2, l=7', '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('Полиномиальное сглаживание, m=3,l=12', '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('Полиномиальное сглаживание, m=4, l=20', 'FontName','Courier New Cyr','FontSize',12); axis([0 T -2 2]);
Сглаживание ряда х полиномом степени m на окне шириной 2* l +1. Процедура-функция polysmooth_f.m
function y=polysmooth_f(x,m,l); n=length(x); x=reshape(x,1,n);   %x предполагается строкой x1=zeros(size(x));  %начальное значение и объявление размера  %Сглаживание концов ряда for k=1:l; C=weights(m,l,k); %веса для k-й точки W=x(1:2*l+1);   %крайнее левое окно y(k)=C*W'; W=x(n-2*l:n); C=fliplr(C);      %веса в обратном порядке y(n-k+1)=C*W'; end; %Сглаживание центральной части ряда for k=l+1:n-l; C=weights(m,l,l+1); %веса для центральной части W=x(k-l:k+l);   %окно y(k)=C*W'; end;
Вычисление вектора коэффициентов для локально-полиномиального сглаживания. Процедура-функция weights.m
function C=weights(m,l,k); %Вычисляется вектор С весовых коэффициентов %при полиномиальном сглаживании на равномерной сетке. %m - степень сглаживающего полинома,(2l+1) - ширина окна сглаживания %k - номер точки интерполяции; для центральной точки k=l+1;  t=1:2*l+1; for i=1:m+1; A(1:2*l+1,i)=t'.^(i-1); end; z=A(k,:); C=z*inv(A'*A)*A';         %весовые коэффициенты по МНК %plot(C)

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: