Этот пример показывает, как оценить долгосрочный тренд с помощью симметричной функции скользящего среднего. Это свертка, которую можно реализовать, используя conv
. Временные ряды - ежемесячные международные счетчики пассажиров авиакомпаний с 1949 по 1960 год.
Загрузите набор данных авиакомпании (Data_Airline
).
load('Data_Airline.mat') y = log(Data); T = length(y); figure plot(y) h = gca; h.XLim = [0,T]; h.XTick = [1:12:T]; h.XTickLabel = datestr(dates(1:12:T),10); title 'Log Airline Passenger Counts'; hold on
Данные показывают линейный тренд и сезонный компонент с периодичностью 12.
Периодичность данных является ежемесячной, поэтому 13-долгосрочное скользящее среднее значение является разумным выбором для оценки долгосрочного тренда. Используйте вес 1/24 для первого и последнего условий, и вес 1/12 для интерьерных условий. Добавьте оценку скользящего среднего тренда к наблюдаемому графику временных рядов.
wts = [1/24;repmat(1/12,11,1);1/24]; yS = conv(y,wts,'valid'); h = plot(7:T-6,yS,'r','LineWidth',2); legend(h,'13-Term Moving Average') hold off
Когда вы используете параметр shape 'valid'
в вызове conv
, наблюдения в начале и конце ряда теряются. Здесь скользящее среднее значение имеет длину окна 13, поэтому первые и последние 6 наблюдений не имеют сглаженных значений.