filter

Фильтруйте нарушения порядка с помощью модели 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-by- NumPaths матрица нарушений порядка, zt, которая управляет инновационным процессом, εt. Для процесса отклонения σt2, инновационный процесс дается

εt=σtzt.

Как вектор-столбец, 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-by- NumPaths матрица симулированных откликов. Y является продолжением серии предварительных образцов Y0.

E

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

V

numObs-by- 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] Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Анализ временных рядов: прогнозирование и управление 3-м эд. Englewood Cliffs, NJ: Prentice Hall, 1994.

[2] Enders, W. Applied Econometric Time Series. Hoboken, NJ: John Wiley & Sons, 1995.

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