Задайте модель регрессии с ошибками SARIMA

Этот пример показывает, как задать модель регрессии с мультипликативными сезонными ошибками ARIMA.

Загрузите набор данных Авиакомпании от корневой папки MATLAB® и загрузите набор данных рецессии. Постройте ежемесячные пассажирские общие количества и логарифмические общие количества.

load(fullfile(matlabroot,'examples','econ','Data_Airline.mat'))
load Data_Recessions; 

y = Data; 
logY = log(y); 

figure
subplot(2,1,1) 
plot(y)
title('{\bf Monthly Passenger Totals (Jan1949 - Dec1960)}')
datetick
subplot(2,1,2)
plot(log(y))
title('{\bf Monthly Passenger Log-Totals (Jan1949 - Dec1960)}')
datetick

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

Создайте этот предиктор, который является, была ли страна в рецессии в выбранный период. 0 означает, что страна не была в рецессии, и 1 означает, что это было в рецессии.

X = zeros(numel(dates),1); % Preallocation
for j = 1:size(Recessions,1)
    X(dates >= Recessions(j,1) & dates <= Recessions(j,2)) = 1;
end

Соответствуйте простой модели линейной регрессии,

yt=c+Xtβ+ut

к данным.

Fit = fitlm(X,logY);

Fit является LinearModel, который содержит оценки методом наименьших квадратов.

Выполните остаточный диагноз путем графического вывода невязок несколько путей.

figure
subplot(2,2,1)
plotResiduals(Fit,'caseorder','ResidualType','Standardized',...
    'LineStyle','-','MarkerSize',0.5)
h = gca;
h.FontSize = 8; 
subplot(2,2,2)
plotResiduals(Fit,'lagged','ResidualType','Standardized')
h = gca;
h.FontSize = 8;
subplot(2,2,3)
plotResiduals(Fit,'probability','ResidualType','Standardized')
h = gca;
h.YTick = h.YTick(1:2:end); 
h.YTickLabel = h.YTickLabel(1:2:end,:); 
h.FontSize = 8;
subplot(2,2,4)
plotResiduals(Fit,'histogram','ResidualType','Standardized')
h = gca;
h.FontSize = 8; 

r = Fit.Residuals.Standardized;
figure
subplot(2,1,1)
autocorr(r)
h = gca;
h.FontSize = 9;
subplot(2,1,2)
parcorr(r)    
h = gca;
h.FontSize = 9;

Остаточные графики показывают, что невязки автокоррелируются. График вероятности и гистограмма, кажется, указывают, что невязки являются Гауссовыми.

ACF невязок подтверждает, что они автокоррелируются.

Возьмите 1-е различие невязок и постройте ACF и PACF differenced невязок.

dR = diff(r);

figure
subplot(2,1,1)
autocorr(dR,'NumLags',50)
h = gca;
h.FontSize = 9;
subplot(2,1,2)
parcorr(dR,'NumLags',50)    
h = gca;
h.FontSize = 9;

ACF показывает, что существуют значительно большие автокорреляции, особенно в каждой 12-й задержке. Это указывает, что невязки имеют 12-ю степень сезонное интегрирование.

Возьмите первые и 12-е различия невязок. Постройте differenced невязки, и их ACF и PACF.

DiffPoly = LagOp([1 -1]);
SDiffPoly = LagOp([1 -1],'Lags',[0, 12]);
diffR = filter(DiffPoly*SDiffPoly,r);

figure
subplot(2,1,1)
plot(diffR)
axis tight
subplot(2,2,3)
autocorr(diffR)
axis tight
h = gca;
h.FontSize = 7;
subplot(2,2,4)
parcorr(diffR)
axis tight    
h = gca;
h.FontSize = 7; 

Невязки напоминают белый шум (с возможным heteroscedasticity). Согласно Полю и Дженкинсу (1994), Глава 9, ACF и PACF указывают, что безусловные воздействия IMA(0,1,1)×(0,1,1)12 модель.

Задайте модель регрессии с IMA(0,1,1)×(0,1,1)12 ошибки:

yt=Xtβ+ut(1-L)(1-L12)ut=(1+b1L)(1+B12L12)εt.

Mdl = regARIMA('MALags',1,'D',1,'Seasonality',12,'SMALags',12) 
Mdl = 
  regARIMA with properties:

     Description: "ARIMA(0,1,1) Error Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
       Intercept: NaN
            Beta: [1×0]
               P: 13
               D: 1
               Q: 13
              AR: {}
             SAR: {}
              MA: {NaN} at lag [1]
             SMA: {NaN} at lag [12]
     Seasonality: 12
        Variance: NaN

Mdl является моделью регрессии с IMA(0,1,1)×(0,1,1)12 ошибки. По умолчанию инновации являются Гауссовыми, и всеми параметрами является NaN. Свойство:

  • P = p + D + sps + s = 0 + 1 + 0 + 12 = 13.

  • Q = q + sqs = 1 + 12 = 13.

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

Передайте Mdl, y и X в estimate, чтобы оценить модель. В порядке моделировать или предсказать ответы с помощью simulate или forecast, необходимо установить значения ко всем параметрам.

Ссылки:

Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ timeseries: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

Смотрите также

| | | |

Связанные примеры

Больше о