exponenta event banner

фильтр

Фильтрация возмущений с использованием моделей ARIMA или ARIMAX

Синтаксис

[Y,E,V] = filter(Mdl,Z)
[Y,E,V] = filter(Mdl,Z,Name,Value)

Описание

[Y,E,V] = filter(Mdl,Z) нарушения фильтров, Z, для получения ответов, инноваций и условных дисперсий одномерной модели ARIMA (p, D, q).

[Y,E,V] = filter(Mdl,Z,Name,Value) фильтрация нарушений с помощью дополнительных опций, указанных одним или несколькими Name,Value аргументы пары.

Входные аргументы

Mdl

Модель ARIMA, созданная arima или estimate. Входная модель не может иметь NaN значения.

Z

numObsоколо-NumPaths матрица возмущений, zt, которая управляет инновационным процессом, αt. Для процесса дисперсии2 инновационный процесс задается

αt = starttzt.

В качестве вектора столбца Z представляет путь к нижележащему ряду возмущений. В качестве матрицы Z представляет numObs наблюдения NumPaths пути нижележащего ряда возмущений. filter предполагает, что наблюдения в любой строке выполняются одновременно. Последняя строка содержит последнее наблюдение.

Примечание

NaNs указывает на отсутствие значений. filter удаляет их из Z с использованием удаления по списку. То есть filter удаляет любую строку из Z содержащий, по крайней мере, один NaN. Это удаление уменьшает эффективный размер выборки и может вызвать нерегулярные временные ряды.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

'V0'

Положительный предварительный пример условных отклонений, которые обеспечивают начальные значения для модели. Если V0 является вектором столбца, то filter применяет его к каждому выходному пути. Если V0 является матрицей, то она требует, по крайней мере NumPaths столбцы. Если число столбцов превышает NumPaths, то filter использует первый NumPaths столбцы.

V0 требуется достаточное количество строк для инициализации компонента скользящего среднего модели ARIMA и любой модели условной дисперсии. Требуемое количество строк не менее Mdl.Q. Если включить модель условного отклонения, то filter может потребовать больше, чем Mdl.Q строк. Если количество строк в V0 превышает необходимое число, то filter использует самые последние наблюдения. Последняя строка содержит последнее наблюдение.

По умолчанию: filter устанавливает необходимые предварительные наблюдения для безусловной дисперсии процесса условной дисперсии.

'X'

Матрица данных предиктора, соответствующая регрессионной составляющей в модели условного среднего. Столбцы X представляют собой отдельные синхронизированные временные ряды с последней строкой, содержащей последние наблюдения. Количество строк X должно быть не менее числа строк Z. Когда количество строк X превышает необходимое число, то filter использует самые последние наблюдения.

По умолчанию: filter не включает компонент регрессии в модель условного среднего независимо от наличия коэффициентов регрессии в Mdl.

'Y0'

Предварительный отбор данных ответа, обеспечивающих начальные значения для модели. Если Y0 является вектором столбца, то filter применяет его к каждому выходному пути. Если Y0 является матрицей, то она требует, по крайней мере NumPaths столбцы. Если количество столбцов в Y0 превышает NumPaths, то filter использует первый NumPaths столбцы.

Y0 требует, по крайней мере, Mdl.P для инициализации модели. Если количество строк в Y0 превышает Mdl.P, то filter использует самую последнюю Mdl.P наблюдения. Последняя строка содержит последнее наблюдение.

По умолчанию: filter устанавливает необходимые предварительные наблюдения в безусловное среднее значение для стационарных процессов и в 0 для нестационарных процессов или процессов с компонентом регрессии.

'Z0'

Предварительные возмущения, обеспечивающие начальные значения для серии входных возмущений, Z. Если Z0 является вектором столбца, то filter применяет его к каждому выходному пути. Если Z0 является матрицей, то она требует, по крайней мере NumPaths столбцы. Если число столбцов превышает NumPaths, то filter использует первый NumPaths столбцы.

Z0 требуется достаточное количество строк для инициализации компонента скользящего среднего модели ARIMA и любой модели условной дисперсии. Требуемое количество строк не менее Mdl.Q, но может быть больше, если включена модель условной дисперсии. Если количество строк в Z0 превышает необходимое число, то filter использует самые последние наблюдения. Последняя строка содержит последнее наблюдение.

По умолчанию: filter устанавливает для необходимых предварительных измерений значение 0.

Примечания

  • NaNs в данных указывают отсутствующие значения и filter удаляет их. Программное обеспечение объединяет предварительные данные и основные наборы данных по отдельности, а затем использует удаление на основе списка для удаления любых NaNс. То есть, filter наборы PreSample = [Y0 Z0 V0] и Data = [Z X], то он удаляет любую строку в PreSample или Data который содержит, по крайней мере, один NaN.

  • Удаление NaNs в основных данных уменьшает эффективный размер выборки. Такое удаление может также создавать нерегулярные временные ряды.

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

  • Все серии предикторов в X (т.е. столбцы X) применяются к каждой серии возмущений в Z произвести NumPaths серия ответов Y.

Выходные аргументы

Y

numObsоколо-NumPaths матрица моделируемых откликов. Y является продолжением серии примеров Y0.

E

numObsоколо-NumPaths матрица моделируемых инноваций с условными отклонениями, V. Каждый столбец представляет собой масштабированный ряд инноваций (или возмущений), таких, что E = sqrt(V)*Z.

V

numObsоколо-NumPaths матрица условных отклонений нововведений в E такой, что E = sqrt(V)*Z. V является продолжением серии примеров V0.

Примеры

развернуть все

Укажите среднюю нулевую модель ARIMA (2,0,1 ).

Mdl = arima('Constant',0,'AR',{0.5,-0.8},'MA',-0.5,...
    'Variance',0.1);

Моделирование модели с помощью моделирования Монте-Карло. Затем стандартизируйте смоделированные инновации и фильтруйте их.

rng(1); % For reproducibility
[y,e,v] = simulate(Mdl,100);
Z = e./sqrt(v);
[Y,E,V] = filter(Mdl,Z);

Подтвердить, что выходы simulate и filter идентичны.

isequal(y,Y)
ans = logical
   1

Логическое значение 1 подтверждает, что два выхода идентичны.

Укажите среднюю нулевую модель ARIMA (2,0,1 ).

Mdl = arima('Constant',0,'AR',{0.5,-0.8},'MA',-0.5,...
    'Variance',0.1);

Смоделировать первые 20 откликов функции импульсной характеристики. Создайте серию возмущений с одноразовым единичным импульсом, а затем отфильтруйте ее. Установите все предварительные измерения равными нулю. Нормализуйте функцию импульсной характеристики, чтобы гарантировать, что первый элемент равен 1.

Z = [1;zeros(19,1)];
Y = filter(Mdl,Z,'Y0',zeros(Mdl.P,1));
Y = Y/Y(1);

Постройте график функции импульсной характеристики.

figure;
stem((0:numel(Y)-1)',Y,'filled');
title 'Impulse Response';

Figure contains an axes. The axes with title Impulse Response contains an object of type stem.

Импульсная характеристика оценивает динамическое поведение системы до одноразового единичного импульса. Вы также можете использовать impulse способ построения графика функции импульсной характеристики для процесса ARIMA.

Оцените динамическое поведение системы для постоянного изменения переменной путем построения графика ответа на шаг.

Укажите средний нулевой процесс ARIMA (2,0,1 ).

Mdl = arima('Constant',0,'AR',{0.5,-0.8},'MA',-0.5,...
    'Variance',0.1);

Смоделировать первые 20 ответов на последовательность единичных возмущений. Создайте серию возмущений, а затем отфильтруйте ее. Установите все предварительные измерения равными нулю.

Z = ones(20,1);
Y = filter(Mdl,Z,'Y0',zeros(Mdl.P,1));
Y = Y/Y(1);

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

Постройте график функции ответа на шаг.

figure;
stem((0:numel(Y)-1)',Y,'filled');
title 'Step Response';

Figure contains an axes. The axes with title Step Response contains an object of type stem.

Создайте модели для серии ответов и предикторов. Установка модели ARIMAX (2,1,3) для ответаMdlYи модель AR (1) для MdlX.

MdlY = arima('AR',{0.1 0.2},'D',1,'MA',{-0.1 0.1 0.05},...
'Constant',1,'Variance',0.5, 'Beta',2);
MdlX = arima('AR',0.5,'Constant',0,'Variance',0.1);

Моделирование серии предикторов длиной 100 x и ряд нормальных нарушений iid z со средним нулем и дисперсией 1.

rng(1);
z = randn(100,1);
x = simulate(MdlX,100);

Фильтрация возмущений z использование MdlY для создания серии ответов y, и график y.

y = filter(MdlY,z,'X',x);
figure;
plot(y);
title 'Filter to simulate ARIMA(2,1,3)';
xlabel 'Time';
ylabel 'Response';

Figure contains an axes. The axes with title Filter to simulate ARIMA(2,1,3) contains an object of type line.

Альтернативы

  • filter делает вывод simulate. То есть оба фильтруют ряд возмущений для получения выходных откликов, нововведений и условных отклонений. Однако simulate автогенерирует ряд средних нулевых, единичных дисперсий, независимых и идентично распределенных (iid) возмущений в соответствии с распределением в Mdl. Напротив, filter позволяет непосредственно указать собственные возмущения.

Ссылки

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

[2] Enders, W. Applied Econometric Time Series. Хобокен, Нью-Джерси: John Wiley & Sons, 1995.

[3] Гамильтон, Дж. Д. Анализ временных рядов. Принстон, Нью-Джерси: Princeton University Press, 1994.