Задайте оператор задержки L такой, чтобы Liyt = yt–i. Многочлен m-degree коэффициентов, 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. 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.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);