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- 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 применяет его к каждому выходу path. Если 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 применяет его к каждому выходу path. Если Y0 матрица, затем она требует, по крайней мере, NumPaths столбцы. Если количество столбцов в Y0 превышает NumPaths, затем filter использует первый NumPaths столбцы.

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

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

'Z0'

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

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

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

Примечания

  • NaNs в данных указывают на отсутствующие значения и filter удаляет их. Программное обеспечение объединяет преддемонстрационные данные и основные наборы данных отдельно, затем использует мудрое списком удаление, чтобы удалить любой NaNs. Таким образом, 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)*ZV продолжение преддемонстрационной серии 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';

Импульсная характеристика оценивает динамическое поведение системы к одноразовому, модульному импульсу. Можно также использовать 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';

Создайте модели для ряда предиктора и ответа. Установите модель 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';

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

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

Ссылки

[1] Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ Временных Рядов: Предсказывая и Управление 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

[2] Enders, W. Прикладные эконометрические временные ряды. Хобокен, NJ: John Wiley & Sons, 1995.

[3] Гамильтон, J. D. Анализ Временных Рядов. Принстон, NJ: Издательство Принстонского университета, 1994.

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