Оцените стационарность временных рядов

В этом примере показано, как проверять, являются ли линейные временные ряды модульным корневым процессом несколькими способами. Можно оценить модульную корневую нестационарность статистически, визуально, и алгебраически.

Симулируйте данные

Предположим, что истинная модель для линейных временных рядов

$$(1 - 0.2L)(1 - L)y_t = (1 - 0.5L)\varepsilon_t$$

где инновационный ряд$\varepsilon_t$ является iid со средним значением 0 и отклонением 1.5. Симулируйте данные из этой модели. Эта модель является модульным корневым процессом, потому что полином задержки правой стороны имеет характеристический корень 1.

Mdl = arima('AR',0.2,'MA',-0.5,'D',1,'Constant',0,...
'Variance',1.5);
T = 30;
rng(5);
Y = simulate(Mdl,T);

Оцените стационарность статистически

Econometrics Toolbox™ имеет четыре формальных теста, чтобы выбрать из проверять, являются ли временные ряды неустановившимися: adftest, kpsstest, pptest, и vratiotest. Используйте adftest выполнять Более полный Дики тест на данных, которые вы симулировали на предыдущих шагах.

adftest(Y)
ans =

  logical

   0

Результат испытаний указывает, что вы не должны отклонять нулевую гипотезу, что ряд является модульным корневым процессом.

Оцените стационарность визуально

Предположим, что у вас нет модели временных рядов, но у вас есть данные. Смотрите график данных. Кроме того, смотрите графики демонстрационной автокорреляционной функции (ACF) и демонстрационной частичной автокорреляционной функции (PACF).

plot(Y);
title('Simulated Time Series')
xlabel('t')
ylabel('Y')

subplot(2,1,1)
autocorr(Y)
subplot(2,1,2)
parcorr(Y)

Нисходящий скошенный из графика показывает модульный корневой процесс. Продолжительности линейных сегментов на графике ACF постепенно затухают и продолжают этот шаблон для увеличения задержек. Это поведение указывает на неустановившийся ряд.

Оцените стационарность алгебраически

Предположим, что у вас есть модель в стандартной форме:

$$y_t = 1.2y_{t - 1} - 0.2y_{t - 2} + \varepsilon_t - 0.5\varepsilon_{t - 1}.$$

Напишите уравнение в обозначении оператора задержки и решите для$y_t$ добраться

$$y_t = \frac{1 - 0.5L}{1 - 1.2L + 0.2L^2}\varepsilon_t.$$

Используйте LagOp преобразовывать рациональный полином в полином. Кроме того, используйте isStable смотреть характеристические корни знаменателя.

num = LagOp([1 -0.5]);
denom = LagOp([1 -1.2 0.2]);
quot = mrdivide(num,denom);

[r1,r2] = isStable(denom)
Warning: Termination window not currently open and coefficients
         are not below tolerance. 

r1 =

  logical

   0


r2 =

    1.0000
    0.2000

Это предупреждение указывает, что получившееся частное имеет степень, больше, чем 1 001, например, не может быть завершающей работу степени. Это указывает на нестабильность. r1 = 0 указывает, что знаменатель нестабилен. r2 вектор из корней характеристик, один из корней равняется 1. Поэтому это - модульный корневой процесс.

isStable числовая стандартная программа, которая вычисляет характеристические значения полинома. Если вы используете quot в качестве аргумента к isStable, затем выход может указать, что полином устойчив (т.е. все характеристические значения немного меньше 1). Вы можете должны быть настроить опции допуска isStable получить более точные результаты.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте