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

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

Моделируйте данные

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

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

SimMod = arima('AR',0.2,'MA',-0.5,'D',1,'Constant',0,...
'Variance',1.5);
T = 30;
rng(5);
Y = simulate(SimMod,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 постепенно затухают и продолжают этот шаблон для увеличения задержек. Это поведение указывает на неустановившийся ряд.

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

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

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

Используйте 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, чтобы получить более точные результаты.

Похожие темы