Этот пример показывает, как проверять, являются ли линейные временные ряды модульным корневым процессом несколькими способами. Можно оценить модульную корневую нестационарность статистически, визуально, и алгебраически.
Предположим, что истинная модель для линейных временных рядов
где инновационный ряд является 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
, чтобы получить более точные результаты.