exponenta event banner

Оценка регрессионной модели с мультипликативными ошибками ARIMA

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

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

load('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

Figure contains 2 axes. Axes 1 with title {\bf Monthly Passenger Totals (Jan1949 - Dec1960)} contains an object of type line. Axes 2 with title {\bf Monthly Passenger Log-Totals (Jan1949 - Dec1960)} contains an object of type line.

Преобразование журнала, похоже, линеаризует временной ряд.

Построить предиктор (X), которая заключается в том, находилась ли страна в рецессии в течение выборочного периода. 0 в строке t означает, что страна не находилась в рецессии в месяце t, а 1 в строке t означает, что она находилась в рецессии в месяце t.

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;

Figure contains 4 axes. Axes 1 with title Case order plot of residuals contains 2 objects of type line. Axes 2 with title Plot of residuals vs. lagged residuals contains 3 objects of type line. Axes 3 with title Normal probability plot of residuals contains 2 objects of type line. Axes 4 with title Histogram of residuals contains an object of type patch.

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;

Figure contains 2 axes. Axes 1 with title Sample Autocorrelation Function contains 4 objects of type stem, line. Axes 2 with title Sample Partial Autocorrelation Function contains 4 objects of type stem, line.

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

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

Возьмите 1-е различие остатков и постройте график ACF и PACF разностных остатков.

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;

Figure contains 2 axes. Axes 1 with title Sample Autocorrelation Function contains 4 objects of type stem, line. Axes 2 with title Sample Partial Autocorrelation Function contains 4 objects of type stem, line.

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

Возьмем первое и 12-е различия остатков. Постройте график разностных остатков и их 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)
h = gca;
h.FontSize = 7;
axis tight
subplot(2,2,4)
parcorr(diffR)
h = gca;
h.FontSize = 7;
axis tight

Figure contains 3 axes. Axes 1 contains an object of type line. Axes 2 with title Sample Autocorrelation Function contains 4 objects of type stem, line. Axes 3 with title Sample Partial Autocorrelation Function contains 4 objects of type stem, line.

Остатки напоминают белый шум (с возможной гетероскедастичностью). Согласно Box and Jenkins (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)

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

Разбейте набор данных на предварительную выборку и выборку оценки, чтобы можно было инициализировать серию. P = Q = 13, так что предварительный пример должен быть не менее 13 периодов.

preLogY = logY(1:13);   % Presample responses
estLogY = logY(14:end); % Estimation sample responses
preX = X(1:13);         % Presample predictors
estX = X(14:end);       % Estimation sample predictors

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

PreFit = fitlm(preX,preLogY);...
    % Presample fit for presample residuals
EstFit = fitlm(estX,estLogY);...
    % Estimation sample fit for the intercept
U0 = PreFit.Residuals.Raw;

Если модель ошибки интегрирована, то пересечение регрессионной модели не идентифицируется. Набор Intercept к оцененному перехвату из линейной регрессии данных выборки оценки. Оценка регрессионной модели с ошибками IMA.

Mdl.Intercept = EstFit.Coefficients{1,1};
EstMdl = estimate(Mdl,estLogY,'X',estX,'U0',U0);
 
    Regression with ARIMA(0,1,1) Error Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution):
 
                   Value      StandardError    TStatistic      PValue  
                 _________    _____________    __________    __________

    Intercept       5.5722              0            Inf              0
    MA{1}        -0.025366        0.22197       -0.11427        0.90902
    SMA{12}       -0.80255       0.052705        -15.227     2.3349e-52
    Beta(1)      0.0027588        0.10139        0.02721        0.97829
    Variance     0.0072463     0.00015974         45.365              0

MA{1} и Beta1 существенно не отличаются от 0. Можно удалить эти параметры из модели, возможно, добавить другие параметры (например, параметры AR) и сравнить несколько вариантов модели с помощью aicbic. Обратите внимание, что оценка и предварительный пример должны быть одинаковыми по сравнению с конкурирующими моделями.

Ссылки:

Бокс, Г. Э. П., Г. М. Дженкинс и Г. К. Рейнсель. Анализ временных рядов: прогнозирование и контроль. 3-й ред. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 1994.

См. также

| |

Связанные темы