фильтр

Класс: regARIMA

Пропустите воздействия через модель регрессии с ошибками ARIMA

Синтаксис

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

Описание

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

[Y,E,U] = filter(Mdl,Z,Name,Value) дополнительные опции ошибок фильтров заданы одним или несколькими аргументами пары Name,Value.

Входные параметры

Mdl

Модель Regression с ошибками ARIMA, заданными как модель, возвращенная regARIMA или estimate.

Параметры Mdl не могут содержать NaN s.

Z

Ошибки, которые управляют инновационным процессом, заданным как numObs-by-numPaths матрица. Таким образом, εt = σzt является инновационным процессом, где σ является инновационным стандартным отклонением, и zt ошибки для t = 1..., T.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'U0'

Преддемонстрационные безусловные воздействия, которые обеспечивают начальные значения для ошибочной модели ARIMA, заданной как пара, разделенная запятой, состоящая из 'U0' и вектор-столбца или матрицы.

  • Если U0 является вектор-столбцом, то filter применяет его к каждому выводу path.

  • Если U0 является матрицей, то он требует, по крайней мере, столбцов numPaths. Если количество столбцов превышает numPaths, то filter использует первые столбцы numPaths.

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

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

'X'

Данные о предикторе в модели регрессии, заданной как пара, разделенная запятой, состоящая из 'X' и матрицы.

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

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

'Z0'

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

  • Если Z0 является вектор-столбцом, то filter применяет его к каждому выводу path.

  • Если Z0 является матрицей, то он требует, по крайней мере, столбцов numPaths. Если количество столбцов превышает numPaths, то filter использует первые столбцы numPaths.

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

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

Примечания

  • NaN s в Z, U0, X и Z0 указывает на отсутствующие значения, и filter удаляет их. Программное обеспечение объединяет преддемонстрационные наборы данных (U0 и Z0), затем использует мудрое списком удаление, чтобы удалить любой NaN s. filter так же удаляет NaN s из эффективных выборочных данных (Z и X). Удаление NaN s в данных уменьшает объем выборки. Такое удаление может также создать неправильные временные ряды.

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

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

  • Все ряды предиктора (т.е. столбцы) в X сопоставлены с каждым ошибочным рядом в Z, чтобы произвести серию Y ответа numPaths.

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

Y

Моделируемые ответы, возвращенные как numobs-by-numPaths матрица.

E

Моделируемые, средние 0 инноваций ошибочной модели ARIMA, возвращенной как numobs-by-numPaths матрица.

U

Моделируемые безусловные воздействия, возвращенные как numobs-by-numPaths матрица.

Примеры

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

Моделируйте ответы с помощью filter и simulate. Затем сравните моделируемые ответы.

И filter и simulate фильтруют серию ошибок произвести выходные ответы y, инновации e и безусловные воздействия u. Различие - то, что simulate генерирует ошибки от Mdl.Distribution, тогда как filter принимает случайный массив ошибок, которые вы генерируете от любого распределения.

Задайте следующую модель регрессии с ARMA (2,1) ошибки:

yt=Xt[0.1-0.2]+utut=0.5ut-1-0.8ut-2+εt-0.5εt-1,

где εt является Гауссовым с отклонением 0.1.

Mdl = regARIMA('Intercept',0,'AR',{0.5 -0.8}, ...
    'MA',-0.5,'Beta',[0.1 -0.2],'Variance',0.1);

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

rng(1);           % For reproducibility
X = randn(100,2); % Simulate predictor data
[ySim,eSim,uSim] = simulate(Mdl,100,'X',X);

Стандартизируйте моделируемые инновации и отфильтруйте их.

z1 = eSim./sqrt(Mdl.Variance);
[yFlt1,eFlt1,uFlt1] = filter(Mdl,z1,'X',X);

Подтвердите, что моделируемые ответы от simulate и filter являются идентичным использованием графика.

figure
h1 = plot(ySim);
hold on
h2 = plot(yFlt1,'.');
title '{\bf Filtered and Simulated Responses}';
legend([h1, h2],'Simulate','Filter','Location','Best')
hold off

Также моделируйте ответы путем случайной генерации собственных ошибок и передачи их в filter.

rng(1);
X = randn(100,2);
z2 = randn(100,1);
yFlt2 = filter(Mdl,z2,'X',X);
figure
h1 = plot(ySim);
hold on
h2 = plot(yFlt2,'.');
title '{\bf Filtered and Simulated Responses}';
legend([h1, h2],'Simulate','Filter','Location','Best')
hold off

Этот график совпадает с предыдущим графиком, подтверждая, что оба метода симуляции эквивалентны.

filter умножает ошибку, Z, sqrt(Mdl.Variance) прежде, чем пропустить Z через модель. Поэтому, если вы хотите задать свое собственное распределение, установите Mdl.Variance на 1, и затем сгенерируйте ваши собственные ошибки, например, random('unif',a,b) для Универсальной формы (a, b) распределение.

Моделируйте импульсный ответ инновационного шока для модели регрессии с ARMA (2,1) ошибки.

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

В моделях регрессии с ошибками ARIMA,

  • Импульсная функция отклика является инвариантной к поведению предикторов и прерывания.

  • Импульсный ответ модели задан как импульсный ответ безусловных воздействий, как управляется ошибочным компонентом ARIMA.

Задайте следующую модель регрессии с ARMA (2,1) ошибки:

yt=utut=0.5ut-1-0.8ut-2+εt-0.5εt-1,

где εt является Гауссовым с отклонением 0.1.

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

Когда вы создаете импульсную функцию отклика для модели регрессии с ошибками ARIMA, необходимо установить Intercept на 0.

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

z = [sqrt(Mdl.Variance);zeros(29,1)]; % Shock of 1 std
yFltr  = filter(Mdl,z);
yImpls = impulse(Mdl,30);

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

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

figure
subplot(2,1,1)
stem((0:numel(yFltr)-1)',yFltr,'filled')
title...
    ('Impulse Response to Shock of One Standard Deviation');
subplot(2,1,2)
stem((0:numel(yImpls)-1)',yImpls,'filled')
title 'Impulse Response to Unit Shock';

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

Моделируйте функцию переходного процесса модели регрессии с ARMA (2,1) ошибки.

Переходной процесс оценивает динамическое поведение системы к персистентному шоку. Как правило, значение шока равняется 1. Также это может быть более значимо, чтобы исследовать переходной процесс персистентного инновационного шока со значением одного стандартного отклонения. Этот пример строит переходной процесс персистентного инновационного шока в модели без прерывания и матрицы предиктора для регрессии. Однако обратите внимание, что filter гибок в этом, он принимает персистентные инновации или шок предиктора, что вы создаете использование любого значения, затем пропускает его через модель.

Задайте следующую модель регрессии с ARMA (2,1) ошибки:

yt=utut=0.5ut-1-0.8ut-2+εt-0.5εt-1,

где εt является Гауссовым с отклонением 0.1.

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

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

z = sqrt(Mdl.Variance)*ones(30,1);...
    % Persistent shock of one std
y = filter(Mdl,z);            
y = y/y(1);  % Normalize relative to y(1)

Постройте функцию переходного процесса.

figure
stem((0:numel(y)-1)',y,'filled')
title('Step Response for Persistent Shock of One STD')

Переходной процесс улаживает приблизительно 0,4.

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

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

Ссылки

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

[2] Дэвидсон, R. и Дж. Г. Маккиннон. Эконометрическая теория и методы. Оксфорд, Великобритания: Издательство Оксфордского университета, 2004.

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

[4] Гамильтон, J. D. Анализ timeseries. Принстон, NJ: Издательство Принстонского университета, 1994.

[5] Pankratz, A. Прогнозирование с моделями динамической регрессии. John Wiley & Sons, Inc., 1991.

[6] Tsay, R. S. Анализ Финансовых Временных рядов. 2-й редактор Хобокен, NJ: John Wiley & Sons, Inc., 2005.