Задайте оператор задержки L, таким образом что Liyt = yt–i. m - полиномом степени коэффициентов A в операторе задержки L дают
Здесь, коэффициент, A 0 соответствует задержке 0, A 1, соответствует задержке 1, и так далее, Am, который соответствует, чтобы изолировать m.
Чтобы задать содействующий полином оператора задержки в Econometrics Toolbox™, используйте LagOp
. Задайте (ненулевые) коэффициенты A 0..., Am как массив ячеек и задержки ненулевых коэффициентов как вектор.
Коэффициенты объектов полинома оператора задержки разработаны к стили как традиционные массивы ячеек MATLAB®. Существует, однако, важное различие: элементы массивов ячеек доступны положительной целочисленной последовательной индексацией, т.е. 1, 2, 3.... Коэффициенты объектов полинома оператора задержки доступны основанной на задержке индексацией. Таким образом, можно задать любые неотрицательные целочисленные задержки, включая задержку 0.
Например, рассмотрите определение полинома Этот полином имеет коэффициент 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. Объект 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.4
A = 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'
Можно выразить оператор дифференцирования, Δ, в обозначении полинома оператора задержки как
В более общем плане,
Чтобы задать первый полином оператора дифференцирования использование 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
Точно так же сезонный оператор дифференцирования в обозначении полинома задержки
Это имеет коэффициенты 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, , это эквивалентно фильтрации временных рядов. Обратите внимание на то, что фильтруя временные ряды с помощью полинома степени D приводит к потере первых наблюдений D.
Считайте берущие вторые различия временных рядов yt, Можно записать этот полином дифференцирования как
Создайте второй полином дифференцирования путем умножения полиномиального D1
к себе, чтобы получить полином дифференцирования второй степени:
D2 = D1*D1
D2 = 1-D Lag Operator Polynomial: ----------------------------- Coefficients: [1 -2 1] Lags: [0 1 2] Degree: 2 Dimension: 1
Коэффициенты в полиноме дифференцирования второй степени соответствуют коэффициентам в разностном уравнении
Чтобы видеть эффект фильтрации (дифференцирования) на длине временных рядов, моделируйте набор данных с 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);