Определите оператор задержки L таким образом, чтобы Liyt = yt-i. Многочлен m-градуса коэффициентов А в операторе L запаздывания задается как
. + AmLm).
Здесь коэффициент A0 соответствует запаздыванию 0, A1 соответствует запаздыванию 1 и так далее, Ам, что соответствует запаздыванию m.
Чтобы задать многочлен оператора задержки коэффициента в Econometrics Toolbox™, используйте LagOp. Укажите (ненулевые) коэффициенты, A0,...,Am как массив ячеек, а задержки ненулевых коэффициентов - как вектор.
Коэффициенты полиномиальных объектов оператора запаздывания разработаны так, чтобы выглядеть и чувствовать себя как традиционные массивы ячеек MATLAB ®. Есть, однако, важное отличие: элементы клеточных массивов доступны при положительном целочисленном последовательном индексировании, т.е. 1, 2, 3,.... Коэффициенты полиномиальных объектов оператора запаздывания доступны при индексировании на основе запаздывания. То есть можно указать любые неотрицательные целочисленные запаздывания, включая запаздывание 0.
Например, рассмотрим задание многочлена 0 .6L4). Этот многочлен имеет коэффициент 1 при запаздывании 0, коэффициент -0,3 при запаздывании 1 и коэффициент 0,6 при запаздывании 4. Введите:
A = LagOp({1,-0.3,0.6},'Lags',[0,1,4])A =
1-D Lag Operator Polynomial:
-----------------------------
Coefficients: [1 -0.3 0.6]
Lags: [0 1 4]
Degree: 4
Dimension: 1
Созданный объект оператора задержки A соответствует многочлену оператора запаздывания степени 4. A LagOp объект имеет ряд свойств, описывающих его:
Coefficientsмассив коэффициентов ячейки.
Lagsвектор, указывающий задержки ненулевых коэффициентов.
Degree, степень полинома.
Dimension, размерность многочлена (релевантная для многомерного временного ряда).
Для доступа к свойствам модели используйте точечную нотацию. То есть введите имя переменной, а затем имя свойства, разделенное точкой. Чтобы получить доступ к определенным коэффициентам, используйте точечную нотацию вместе с синтаксисом массива ячеек (совместим с Coefficients тип данных).
Для иллюстрации возвращает коэффициент с запаздыванием 4:
A.Coefficients{4}ans = 0.6000
Возвращает коэффициент на запаздывании 0:
A.Coefficients{0}ans = 1
Последняя команда иллюстрирует индексирование запаздывания. Индекс 0 является допустимым и соответствует коэффициенту запаздывания 0.
Обратите внимание, что произойдет, если проиндексировать отставание, превышающее степень полинома:
A.Coefficients{6}ans = 0
Это не возвращает ошибку. Скорее, возвращается Oкоэффициент на запаздывании 6 (и все остальные запаздывания с нулевым коэффициентом).
Аналогичный синтаксис используется для добавления новых ненулевых коэффициентов. Например, для добавления коэффициента 0,4 при запаздывании 6,
A.Coefficients{6} = 0.4A =
1-D Lag Operator Polynomial:
-----------------------------
Coefficients: [1 -0.3 0.6 0.4]
Lags: [0 1 4 6]
Degree: 6
Dimension: 1
Полиномиальный объект оператора запаздывания A теперь имеет ненулевые коэффициенты на лагах 0, 1, 4 и 6 и является степенью 6.
Когда индексы запаздывания помещаются в круглые скобки, результатом является другой массив ячеек на основе запаздывания, который представляет подмножество исходного многочлена.
A0 = A.Coefficients(0)
A0 =
1-D Lag-Indexed Cell Array Created at Lags [0] with
Non-Zero Coefficients at Lags [0].
A0 является новым объектом, который сохраняет индексацию на основе запаздывания и подходит для назначения многочлену оператора запаздывания и из него.
class(A0)
ans = 'internal.econ.LagIndexedArray'
В отличие от этого, при размещении индексов запаздывания внутри фигурных скобок получается тот же тип данных, что и сами индексы:
class(A.Coefficients{0})ans = 'double'
Можно выразить дифференциальный оператор Δ в многочленовом представлении оператора запаздывания как
L).
В более общем плане
L) D.
Задание первого многочлена разностного оператора с помощью LagOp, укажите коэффициенты 1 и -1 на лагах 0 и 1:
D1 = LagOp({1,-1},'Lags',[0,1])D1 =
1-D Lag Operator Polynomial:
-----------------------------
Coefficients: [1 -1]
Lags: [0 1]
Degree: 1
Dimension: 1
Аналогично, оператор сезонной дифференциации в многочлене запаздывания является
Ls).
Это имеет коэффициенты 1 и -1 на лагах 0 и s, где s - периодичность сезонности. Например, для ежемесячных данных с периодичностью s = 12,
D12 = LagOp({1,-1},'Lags',[0,12])D12 =
1-D Lag Operator Polynomial:
-----------------------------
Coefficients: [1 -1]
Lags: [0 12]
Degree: 12
Dimension: 1
Это приводит к полиномиальному объекту со степенью 12.
Когда к временному ряду yt, Dyt применяется полином оператора разностного запаздывания, это эквивалентно фильтрации временного ряда. Обратите внимание, что фильтрация временного ряда с использованием полинома степени D приводит к потере первых D-наблюдений.
Рассмотрим возможность взятия вторых разностей временного ряда yt, 2yt. Этот разностный многочлен можно записать − L) (1 − L).
Создание второго разностного многочлена путем умножения многочлена D1 чтобы получить полином разностной второй степени:
D2 = D1*D1
D2 =
1-D Lag Operator Polynomial:
-----------------------------
Coefficients: [1 -2 1]
Lags: [0 1 2]
Degree: 2
Dimension: 1
Коэффициенты в разностном многочлене второй степени соответствуют коэффициентам в разностном уравнении
− 1 + yt − 2.
Чтобы увидеть влияние фильтрации (разностной фильтрации) на длину временного ряда, смоделируйте набор данных с 10 наблюдениями для фильтрации:
rng('default')
Y = randn(10,1);Фильтрация временных рядов Y использование D2:
Yf = filter(D2,Y); length(Yf)
ans = 8
Отфильтрованный ряд имеет два наблюдения меньше, чем исходный ряд. Можно дополнительно вернуть временные индексы для новой серии:
Следует отметить, что временные индексы даны относительно времени 0. То есть оригинальный ряд соответствует временам 0,..., 9. Отфильтрованный ряд теряет наблюдения в первые два раза (раз 0 и 1), в результате чего получается ряд, соответствующий временам 2,..., 9.
Можно также фильтровать временной ряд, скажем Y, с многочленом оператора запаздывания, скажем D2, используя этот сокращенный синтаксис:
Yf = D2(Y);