Этот пример показывает, как оценить сезонную модель ARIMA:
Смоделируйте сезонные эффекты с помощью мультипликативной сезонной модели.
Используйте переменные индикатора в качестве компонента регрессии для сезонных эффектов, названных сезонными макетами.
Впоследствии, их прогнозы показывают, что методы приводят к подобным результатам. Временные ряды являются ежемесячными международными числами авиапассажира от 1 949 до 1960.
Загрузите набор данных Data_Airline
и постройте естественный журнал ежемесячных пассажирских общих количеств.
load(fullfile(matlabroot,'examples','econ','Data_Airline.mat')) dat = log(Data); % Transform to logarithmic scale T = size(dat,1); y = dat(1:103); % Estimation sample
y
является частью dat
, используемого для оценки, и остальная часть dat
является выборкой затяжки, чтобы сравнить прогнозы этих двух моделей.
Создайте ARIMA модель
где независимый политик и тождественно распределил нормально распределенный ряд со средним значением 0 и отклонением . Используйте estimate
, чтобы соответствовать Mdl1
к y
.
Mdl1 = arima('Constant',0,'MALags',1,'D',1,... 'SMALags',12,'Seasonality',12); EstMdl1 = estimate(Mdl1,y);
ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution): Value StandardError TStatistic PValue ________ _____________ __________ __________ Constant 0 0 NaN NaN MA{1} -0.35732 0.088031 -4.059 4.9286e-05 SMA{12} -0.61469 0.096249 -6.3864 1.6985e-10 Variance 0.001305 0.0001527 8.5467 1.2671e-17
Подобранная модель
где iid нормально распределенный ряд со средним значением 0 и отклонением 0.0013.
Создайте модель ARIMAX(0,1,1) с периодом 12 сезонного дифференцирования и компонент регрессии,
серия вектор-столбцов T, имеющих длину 12, которые указывают в который наблюдение месяца был измерен. 1 последовательно i указывает, что наблюдение было измерено в месяце i, остальная часть элементов 0s.
Обратите внимание на то, что, если вы включаете аддитивную постоянную в модель, затем строки T матрицы проекта, X
состоит из векторов - строк . Поэтому X
имеет неполный ранг, и один коэффициент регрессии не идентифицируется. Константа упущена из этого примера, чтобы избежать отвлечения от основной цели. Отформатируйте в выборке X матриц
X = dummyvar(repmat((1:12)',12,1)); % Format the presample X matrix X0 = [zeros(1,11) 1; dummyvar((1:12)')]; Mdl2 = arima('Constant',0,'MALags',1,'D',1,... 'Seasonality',12); EstMdl2 = estimate(Mdl2,y,'X',[X0; X]);
ARIMAX(0,1,1) Model Seasonally Integrated (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 0 0 NaN NaN MA{1} -0.40711 0.084387 -4.8242 1.4053e-06 Beta(1) -0.002577 0.025168 -0.10239 0.91845 Beta(2) -0.0057769 0.031885 -0.18118 0.85623 Beta(3) -0.0022034 0.030527 -0.072179 0.94246 Beta(4) 0.00094737 0.019867 0.047686 0.96197 Beta(5) -0.0012146 0.017981 -0.067551 0.94614 Beta(6) 0.00487 0.018374 0.26505 0.79097 Beta(7) -0.0087944 0.015285 -0.57535 0.56505 Beta(8) 0.0048346 0.012484 0.38728 0.69855 Beta(9) 0.001437 0.018245 0.078758 0.93722 Beta(10) 0.009274 0.014751 0.62869 0.52955 Beta(11) 0.0073665 0.0105 0.70158 0.48294 Beta(12) 0.00098841 0.014295 0.069146 0.94487 Variance 0.0017715 0.00024657 7.1848 6.7329e-13
Подобранная модель
где iid нормально распределенный ряд со средним значением 0 и отклонением 0.0017 и вектор-столбец со значениями Beta1
- Beta12
. Обратите внимание на то, что оценки MA{1}
и Variance
между Mdl1
и Mdl2
не равны.
Используйте forecast
, чтобы предсказать обе модели 41 период в будущее с июля 1957. Постройте выборку затяжки, использующую эти прогнозы.
yF1 = forecast(EstMdl1,41,y); yF2 = forecast(EstMdl2,41,y,'X0',X(1:103,:),'XF',X(104:end,:)); l1 = plot(100:T,dat(100:end),'k','LineWidth',3); hold on l2 = plot(104:144,yF1,'-r','LineWidth',2); l3 = plot(104:144,yF2,'-b','LineWidth',2); hold off title('Passenger Data: Actual vs. Forecasts') xlabel('Month') ylabel('Logarithm of Monthly Passenger Data') legend({'Observations','Polynomial Forecast',... 'Regression Forecast'},'Location','NorthWest')
Хотя они завышают наблюдения затяжки, прогнозы обеих моделей почти эквивалентны. Одно основное различие между моделями - то, что EstMdl1
более экономен, чем EstMdl2
.
Ссылки:
Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ timeseries: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.
arima
| dummyvar
| estimate
| forecast