exponenta event banner

arma2ar

Преобразование модели ARMA в модель AR

Описание

пример

ar = arma2ar(ar0,ma0) возвращает коэффициенты аппроксимации модели AR с усеченным бесконечным порядком в модель ARMA, имеющую коэффициенты AR и MA, указанные ar0 и ma0соответственно.

arma2ar:

  • Принимает:

  • Адаптирует одномерные или многомерные модели временных рядов (т. е. numVars переменные составляют модель), стационарную или интегрированную, структурную или в уменьшенной форме и обратимую.

  • Предполагает, что константа модели c равна 0.

пример

ar = arma2ar(ar0,ma0,numLags) возвращает первое ненулевое значение numLags коэффициенты запаздывания аппроксимации модели AR бесконечного порядка модели ARMA, имеющей коэффициенты AR ar0 и коэффициенты МА ma0.

Примеры

свернуть все

Найти коэффициенты запаздывания усеченной, AR аппроксимации этой одномерной, стационарной и обратимой модели ARMA

yt = 0 .2yt-1-0.1yt-2 + αt + 0 .5αt-1.

Модель ARMA представлена в виде уравнения разности, поскольку левая сторона содержит только yt и его коэффициент 1. Создайте вектор, содержащий коэффициенты члена задержки AR в порядке от t до 1.

ar0 = [0.2 -0.1];

Можно также создать вектор ячейки скалярных коэффициентов.

Создайте вектор, содержащий коэффициент члена задержки MA.

ma0 = 0.5;

Преобразование модели ARMA в модель AR путем получения коэффициентов усеченного приближения многочлена с бесконечным запаздыванием.

ar = arma2ar(ar0,ma0)
ar = 1×7

    0.7000   -0.4500    0.2250   -0.1125    0.0562   -0.0281    0.0141

ar является числовым вектором, поскольку ar0 и ma0 числовые векторы.

Приблизительная модель AR, усеченная на 7 лагах,

yt = 0 .7yt-1-0.45yt-2 + 0 .225yt-3-0.1125yt-4 + 0 .0562yt-5 +... -0.0281yt-6 + 0 0141yt-7 + αt

Найти первые пять коэффициентов запаздывания аппроксимации AR этой одномерной и обратимой модели MA (3)

yt = αt-0,2αt-1 + 0 .5αt-3.

Модель MA представлена в виде уравнения разности, поскольку левая сторона содержит только yt и ее коэффициент 1. Создайте клеточный вектор, содержащий коэффициент члена запаздывания МА, в порядке, начинающемся с t-1. Поскольку отсутствует второй член задержки модели MA, укажите 0 за его коэффициент.

ma0 = {-0.2 0 0.5};

Преобразуйте модель MA в модель AR с максимум пятью коэффициентами запаздывания усеченного аппроксимации многочлена бесконечного запаздывания. Поскольку вклад AR отсутствует, укажите пустую ячейку ({}) для коэффициентов AR.

numLags = 5;
ar0 = {}; 
ar = arma2ar(ar0,ma0,numLags)
ar=1×5 cell array
    {[-0.2000]}    {[-0.0400]}    {[0.4920]}    {[0.1984]}    {[0.0597]}

ar является клеточным вектором скаляров, поскольку, по крайней мере, один из ar0 и ma0 - клеточный вектор.

Приблизительная модель AR (5)

yt =-0.2yt-1-0.04yt-2+0.492yt-3+0.1984yt-4+0.0597yt-5 +εt

Найти коэффициенты усеченного структурного эквивалента VAR структурной, стационарной и обратимой модели VARMA

{[10,2-0,10,031-0,150,9-0,251] - [-0.50.20.10.30.1-0,1-0,40.20.05] L4- [-0.050.020.020.010.010.001-0,040.020.005] L8} yt = {[100010001] + [-0.020.030.30.0030.0010.010.30.010.010.01] L4}

где yt = [y1ty2ty3t] ′ и αt = [α1tε2tα3t] ′.

Модель VARMA представлена оператором запаздывания, поскольку векторы отклика и инноваций находятся на противоположных сторонах уравнения.

Создайте вектор ячейки, содержащий коэффициенты матрицы VAR. Поскольку эта модель является конструктивной, начните с коэффициента yt и введите остальные в порядке отставания. Поскольку уравнение находится в нотации оператора запаздывания, включите знак перед каждой матрицей. Создайте вектор, который указывает степень члена запаздывания для соответствующих коэффициентов.

var0 = {[1 0.2 -0.1; 0.03 1 -0.15; 0.9 -0.25 1],...
    -[-0.5 0.2 0.1; 0.3 0.1 -0.1; -0.4 0.2 0.05],...
    -[-0.05 0.02 0.01; 0.1 0.01 0.001; -0.04 0.02 0.005]};
var0Lags = [0 4 8];

Создайте вектор ячейки, содержащий коэффициенты матрицы VMA. Так как эта модель является конструктивной, начните с коэффициента, равного αt, и введите остальные в порядке запаздывания. Создайте вектор, который указывает степень члена запаздывания для соответствующих коэффициентов.

vma0 = {eye(3),...
    [-0.02 0.03 0.3; 0.003 0.001 0.01; 0.3 0.01 0.01]};
vma0Lags = [0 4];

arma2ar требует LagOp многочлены оператора запаздывания для входных аргументов, которые содержат структурные модели VAR или VMA. Построить отдельно LagOp полиномы, описывающие компоненты VAR и VMA модели VARMA.

VARLag = LagOp(var0,'Lags',var0Lags);
VMALag = LagOp(vma0,'Lags',vma0Lags);

VARLags и VMALags являются LagOp полиномы операторов запаздывания, описывающие компоненты VAR и VMA модели VARMA.

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

VAR = arma2ar(VARLag,VMALag)
VAR = 
    3-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 4 Non-Zero Coefficients]
                Lags: [0 4 8 12]
              Degree: 12
           Dimension: 3

VAR является LagOP полином оператора запаздывания. Все коэффициенты, за исключением коэффициентов, соответствующих интервалам 0, 4, 8 и 12, представляют собой матрицы нулей 3 на 3.

Преобразуйте коэффициенты в нотацию уравнения разности, отражая многочлен оператора задержки VAR вокруг нуля задержки.

VARDiffEqn = reflect(VAR);

Отображение ненулевых коэффициентов результирующих моделей VAR.

lag2Idx = VAR.Lags + 1; % Lags start at 0.  Add 1 to convert to indices.

varCoeff = toCellArray(VAR);
varDiffEqnCoeff = toCellArray(VARDiffEqn);

fprintf    ('          Lag Operator     |   Difference Equation\n')
          Lag Operator     |   Difference Equation
for j = 1:numel(lag2Idx)
    fprintf('_________________________Lag %d_________________________\n',...
        lag2Idx(j) - 1)
    fprintf('%8.3f %8.3f %8.3f | %8.3f %8.3f %8.3f\n',...
        [varCoeff{lag2Idx(j)} varDiffEqnCoeff{lag2Idx(j)}]')
    fprintf('_______________________________________________________\n')
end
_________________________Lag 0_________________________
   1.000    0.200   -0.100 |    1.000    0.200   -0.100
   0.030    1.000   -0.150 |    0.030    1.000   -0.150
   0.900   -0.250    1.000 |    0.900   -0.250    1.000
_______________________________________________________
_________________________Lag 4_________________________
   0.249   -0.151   -0.397 |   -0.249    0.151    0.397
  -0.312   -0.099    0.090 |    0.312    0.099   -0.090
   0.091   -0.268   -0.029 |   -0.091    0.268    0.029
_______________________________________________________
_________________________Lag 8_________________________
   0.037    0.060   -0.012 |   -0.037   -0.060    0.012
  -0.101   -0.007    0.000 |    0.101    0.007   -0.000
  -0.033    0.029    0.114 |    0.033   -0.029   -0.114
_______________________________________________________
_________________________Lag 12_________________________
   0.014   -0.007   -0.034 |   -0.014    0.007    0.034
   0.000   -0.000   -0.001 |   -0.000    0.000    0.001
  -0.010   -0.018    0.002 |    0.010    0.018   -0.002
_______________________________________________________

Коэффициенты интервалов 4, 8 и 12 являются противоположными между VAR и VARDiffEqn.

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

yt = 1,5 + 0 .2yt-1-0.1yt-2 + αt + 0 .5αt-1.

Модель ARMA представлена в виде уравнения разности, поскольку левая сторона содержит только yt и ее коэффициент 1. Создайте отдельные векторы для коэффициентов членов задержки AR и MA в порядке от t до 1.

ar0 = [0.2 -0.1];
ma0 = 0.5;

Преобразование модели ARMA в модель AR путем получения первых пяти коэффициентов усеченного приближения многочлена с бесконечным запаздыванием.

numLags = 5;
ar = arma2ar(ar0,ma0,numLags)
ar = 1×5

    0.7000   -0.4500    0.2250   -0.1125    0.0562

Для вычисления константы AR-модели рассмотрим ARMA-модель в нотации оператора запаздывания.

(1-0,2L + 0,1L2) yt = 1,5 + (1 + 0,5L)

или

Start( L) yt = 1,5 + Start( L) αt

Часть преобразования включает в себя предварительное перемножение обеих сторон уравнения с помощью обратного многочлена оператора запаздывания МА, как в этом уравнении.

Θ-1 (L) (L) yt = Θ-1 (L) 1,5 + αt

Для вычисления обратного многочлена оператора задержки MA используйте функцию объекта левого деления оператора задержки. mldivide.

Theta = LagOp([1 0.5]);
ThetaInv = mldivide(Theta,1,'RelTol',1e-5);

ThetaInv является LagOp полином оператора запаздывания.

Применение многочленов оператора запаздывания к константам приводит к произведению константы на сумму коэффициентов. Обратиться ThetaInv на константу модели ARMA для получения константы модели AR.

arConstant = 1.5*sum(cell2mat(toCellArray(ThetaInv)))
arConstant = 1.0000

Приблизительная модель AR

yt = 1 + 0 .7yt-1-0,45yt-2 + 0 .225yt-3-0,1125yt-4 + 0 0,0562yt-5 + αt.

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

свернуть все

Авторегрессивные коэффициенты модели ARMA (p, q), определенные как числовой вектор, вектор ячейки квадрата, числовые матрицы или LagOp объект полинома оператора запаздывания. Если ar0 - вектор (числовой или клеточный), то коэффициент yt - тождество. Чтобы задать структурный многочлен AR (т.е. коэффициент yt не является идентичностью), используйте LagOp многочлены оператора запаздывания.

  • Для одномерных моделей временных рядов ar0 - числовой вектор, клеточный вектор скаляров или одномерный LagOp полином оператора запаздывания. Для векторов: ar0 имеет длину p и элементы соответствуют запаздывающим откликам, составляющим многочлен AR в нотации «разность-уравнение». То есть ar0(j) или ar0{j} - коэффициент yt-j.

  • Для numVars- модели размерных временных рядов, ar0 является клеточным вектором numVarsоколо-numVars числовые матрицы или numVars- размерный LagOp полином оператора запаздывания. Для векторов ячеек:

    • ar0 имеет длину p.

    • ar0 и ma0 должен содержать numVarsоколо-numVars матрицы.

    • Элементы ar0 соответствуют запаздывающим ответам, составляющим многочлен AR в нотации дифференциального уравнения. То есть ar0{j} - матрица коэффициентов yt-j.

    • Строка k матрицы коэффициентов AR содержит коэффициенты AR в уравнении переменной yk. Впоследствии столбец k должен соответствовать переменной yk, и порядок столбцов и строк всех коэффициентов авторегрессии и скользящего среднего должен быть последовательным.

  • Для LagOp многочлены оператора запаздывания:

    • Первый элемент Coefficients свойство соответствует коэффициенту yt (для размещения структурных моделей). Все остальные элементы соответствуют коэффициентам последующих лагов в Lags собственность.

    • Для построения одномерной модели в уменьшенном виде укажите 1 для первого коэффициента. Для numVars-мерные многомерные модели, укажите eye(numVars) для первого коэффициента.

    • При работе с моделью в нотации «разность-уравнение» для построения полиномиального эквивалента «запаздывание-оператор» необходимо свести на нет коэффициенты AR запаздывающих откликов. Например, рассмотрим yt = 0 .5yt 1 0 .8yt 2 + αt 0 .6αt − 1 + 0 .08αt − 2. Модель имеет форму «разность-уравнение». Для преобразования в AR-модель введите в командное окно следующее.

      ar = arma2ar([0.5 -0.8], [-0.6 0.08]);

      Модель ARMA, записанная в нотации «лаг-оператор», - (1 − 0 .5L + 0 .8L2) yt = (1 0 .6L + 0 .08L2) αt. Коэффициенты AR запаздывающих откликов сводятся на нет по сравнению с соответствующими коэффициентами в формате разностного уравнения. В этой форме для получения того же результата введите в командное окно следующее.

      ar0 = LagOp({1 -0.5 0.8});
      ma0 = LagOp({1 -0.6 0.08});
      ar = arma2ar(ar0, ma0);

Это лучшая практика для ar0 для формирования стационарной или корневой стационарной (интегрированной) модели временных рядов.

Если модель ARMA является строго моделью MA, то укажите [] или {} для ar0.

Коэффициенты скользящего среднего модели ARMA (p, q), определенные как числовой вектор, вектор ячейки квадрата, числовые матрицы или LagOp объект полинома оператора запаздывания. Если ma0 является вектором (числовым или клеточным), то коэффициент δ t - тождество. Для задания структурного многочлена MA (то есть, коэффициент αt не является тождеством) используйте LagOp многочлены оператора запаздывания.

  • Для одномерных моделей временных рядов ma0 - числовой вектор, клеточный вектор скаляров или одномерный LagOp полином оператора запаздывания. Для векторов: ma0 имеет длину q и элементы соответствуют запаздывающим нововведениям, составляющим многочлен AR в нотации «разность-уравнение». То есть ma0(j) или ma0{j} - коэффициент δ t-j.

  • Для numVars- модели размерных временных рядов, ma0 - вектор ячейки числового numVarsоколо-numVars числовые матрицы или numVars- размерный LagOp полином оператора запаздывания. Для векторов ячеек:

    • ma0 имеет длину q.

    • ar0 и ma0 оба должны содержать numVarsоколо-numVars матрицы.

    • Элементы ma0 соответствуют запаздывающим ответам, составляющим многочлен AR в нотации дифференциального уравнения. То есть ma0{j} - матрица коэффициентов yt-j.

  • Для LagOp многочлены оператора запаздывания:

    • Первый элемент Coefficients свойство соответствует коэффициенту δ t (для размещения структурных моделей). Все остальные элементы соответствуют коэффициентам последующих лагов в Lags собственность.

    • Для построения одномерной модели в уменьшенном виде укажите 1 для первого коэффициента. Для numVars-мерные многомерные модели, укажите eye(numVars) для первого коэффициента.

Это лучшая практика для ma0 для формирования обратимой модели временных рядов.

Максимальное количество возвращаемых коэффициентов запаздывания, указанное как положительное целое число.

При указании 'numLags', то arma2ar усечение выходного многочлена с максимумом numLags lag terms, а затем возвращает оставшиеся коэффициенты. В результате выходной вектор имеет numLags элементы или не более степени numLags LagOp полином оператора запаздывания.

По умолчанию arma2ar определяет количество коэффициентов запаздывания, возвращаемых по критерию остановки mldivide.

Типы данных: double

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

свернуть все

Коэффициенты усеченного аппроксимации модели AR модели ARMA, возвращаемые как числовой вектор, вектор ячейки квадрата, числовые матрицы или a LagOp объект полинома оператора запаздывания. ar имеет numLags элементы или, самое большее, степень numLags LagOp полином оператора запаздывания.

Типы данных и ориентации ar0 и ma0 определить тип данных и ориентацию ar. Если ar0 или ma0 имеют один и тот же тип данных или одинаковую ориентацию, затем ar использует общий тип данных или ориентацию. Если хотя бы один из ar0 или ma0 является LagOp полином оператора запаздывания, затем ar является LagOp полином оператора запаздывания. В противном случае, если хотя бы один из ar0 или ma0 является клеточным вектором, то ar - клеточный вектор. Если ar0 и ma0 являются клеточными или числовыми векторами и, по крайней мере, один является вектором строки, то ar - вектор строки.

Если ar является ячейкой или числовым вектором, то порядок элементов ar соответствует порядку коэффициентов запаздывающих откликов в нотации «разность-уравнение», начинающейся с коэффициента yt-1. Полученная модель AR находится в уменьшенном виде.

Если ar является LagOp оператор запаздывания многочлен, затем порядок коэффициентов ar соответствует порядку коэффициентов запаздывающих откликов в нотации оператора запаздывания, начиная с коэффициента yt. Если Φ0InumVars, то полученная модель AR является структурной. Чтобы просмотреть коэффициенты в нотации разности-уравнения, передайте ar кому reflect.

Подробнее

свернуть все

Обозначение разности-уравнения

Линейная модель временного ряда, записанная в виде дифференциального уравнения, позиционирует текущее значение отклика и его структурный коэффициент в левой части уравнения. Правая часть уравнения содержит сумму запаздывающих откликов, текущих нововведений и запаздывающих нововведений с соответствующими коэффициентами.

Другими словами, линейный временной ряд, записанный в нотации разность-уравнение, является

Φ0yt=c +Φ1yt−1 +... + Φpyt−p +Θ0εt +Θ1εt−1 +... + Θqεt−q,

где

  • yt является numVars-мерный вектор, представляющий отклики numVars переменные в момент времени t, для всех t и для numVars ≥ 1.

  • αt - это numVars-мерный вектор, представляющий нововведения в момент времени t.

  • Фj - это numVarsоколо-numVars матрица коэффициентов AR отклика yt-j, для j = 0,..., p.

  • Startk - это numVarsоколо-numVars матрица коэффициентов MA нововведения αt-k., k = 0,..., q.

  • c - константа n-мерной модели.

  • Φ0 = Θ0 = InumVars, который является numVars- матрица размерного тождества, для моделей в уменьшенном виде.

Нотация оператора задержки

Модель временного ряда, записанная в нотации оператора запаздывания, позиционирует полином оператора запаздывания p-градуса на данном ответе в левой части уравнения. Правая часть уравнения содержит константу модели и полином оператора q-градусного запаздывания в настоящем новшестве.

Другими словами, линейная модель временного ряда, записанная в нотации оператора запаздывания, является

Start( L) yt = c + Start( L) αt,

где

  • yt является numVars-мерный вектор, представляющий отклики numVars переменные в момент времени t, для всех t и для numVars ≥ 1.

  • Λ (L) = Φ0 Φ1L Φ2L2 ... − ФрЛп, который является авторегрессионным, запаздывающим операторным многочленом.

  • L - оператор обратного сдвига, другими словами, Ljyt = yt − j.

  • Фj - это numVarsоколо-numVars матрица коэффициентов AR отклика yt-j, для j = 0,..., p.

  • αt - это numVars-мерный вектор, представляющий нововведения в момент времени t.

  • Start( L) = Θ0 + Θ1L + Θ2L2 +... + StartqLq, который является многочленом оператора скользящего среднего, запаздывания.

  • Startk - это numVarsоколо-numVars матрица коэффициентов MA нововведения αt-k., k = 0,..., q.

  • c - numVars- константа размерной модели.

  • Φ0 = Θ0 = InumVars, который является numVars- матрица размерного тождества, для моделей в уменьшенном виде.

При сравнении нотации оператора запаздывания с нотацией «разность-уравнение» признаки запаздывающих коэффициентов AR оказываются сведенными на нет относительно соответствующих терминов в нотации «разность-уравнение». Знаки коэффициентов скользящего среднего одинаковы и появляются на одной стороне.

Дополнительные сведения о нотации оператора задержки см. в разделе Нотация оператора задержки.

Совет

  • Для размещения структурных моделей ARMA задайте входные аргументы ar0 и ma0 как LagOp многочлены оператора запаздывания.

  • Доступ к вектору ячейки полиномиальных коэффициентов оператора запаздывания выходного аргумента ar, введите toCellArray(ar).

  • Для преобразования коэффициентов модели выходного аргумента из нотации оператора запаздывания в коэффициенты модели в нотации «разность-уравнение» введите

    arDEN = toCellArray(reflect(ar));
    arDEN - клеточный вектор, содержащий не более numLags + 1 коэффициенты, соответствующие членам запаздывания в ar.Lags эквивалента модели AR входной модели ARMA в нотации «разность-уравнение». Первый элемент - коэффициент yt, второй элемент - коэффициент yt-1 и так далее.

Алгоритмы

  • Программное обеспечение вычисляет многочлен с бесконечным запаздыванием результирующей AR-модели согласно этому уравнению в нотации оператора запаздывания:

    Λ 1 (L) (L)

    где (L) =∑j=0pΦjLj и (L) =∑k=0qΘkLk.

  • arma2ar аппроксимирует коэффициенты модели AR, ar0 и ma0 составляют стабильный многочлен (многочлен, который является стационарным или обратимым). Для проверки устойчивости используйте isStable.

    isStable требует LagOp полином оператора запаздывания в качестве входного сигнала. Например, если ar0 является вектором, введите следующий код для проверки ar0 для стационарности.

    ar0LagOp = LagOp([1 -ar0]);
    isStable(ar0LagOp)

    A 0 указывает, что многочлен не стабилен.

    Можно также проверить аппроксимацию AR к модели ARMA (ar) является стационарным.

Ссылки

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

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

[3] Lutkepohl, H. Новое введение в анализ множественных временных рядов. Спрингер-Верлаг, 2007.

Представлен в R2015a