Задайте полиномы оператора задержки

Полином коэффициентов оператора задержки

Задайте оператор задержки L такой, чтобы Liyt = yt–i. Многочлен m-degree коэффициентов, A в L оператора задержки, задан

A(L)=(A0+A1L1++AmLm).

Здесь коэффициент A 0 соответствует задержке 0, A 1 соответствует задержке 1 и так далее, Am, что соответствует задержке m.

Чтобы задать полином оператора задержки коэффициентов в Econometrics Toolbox™, используйте LagOp. Задайте (ненулевые) коэффициенты A 0,..., Am как массив ячеек, и лаги ненулевых коэффициентов как вектор.

Коэффициенты полиномиальных объектов оператора задержки разработаны, чтобы выглядеть и чувствовать себя как традиционный MATLAB® массивы ячеек. Существует, однако, важное различие: элементы массивов ячеек доступны с помощью положительной целочисленной последовательной индексации, т.е., 1, 2, 3,.... Коэффициенты полиномиальных объектов оператора задержки доступны с помощью основанной на задержке индексации. То есть можно задать любые неотрицательные целочисленные лаги, включая задержку 0.

Для примера рассмотрите установка полинома A(L)=(10.3L+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.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'

Операторные Полиномы разностной задержки

Вы можете выразить оператора дифференцирования, Δ, в обозначении полинома оператора задержки как

Δ=(1L).

В более общем плане,

ΔD=(1L)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

Точно так же сезонный оператор дифференцирования в полиномиальном обозначении с задержкой

Δs=(1Ls).

Это имеет коэффициенты 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 временных рядов, (1L)Dyt, это эквивалентно фильтрации временных рядов. Обратите внимание, что фильтрация временных рядов с помощью полинома степени D приводит к потере первых D наблюдений.

Рассмотрите взятие вторых различий yt временных рядов, (1L)2yt. Можно записать этот дифференциальный полином как (1L)2=(1L)(1L).

Создайте второй дифференцирующий полином путем умножения полинома D1 для получения полинома дифференцирования второй степени:

D2 = D1*D1
D2 = 
    1-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [1 -2 1]
                Lags: [0 1 2]
              Degree: 2
           Dimension: 1

Коэффициенты в полиноме дифференцирования второй степени соответствуют коэффициентам в разностном уравнении

(1L)2yt=yt2yt1+yt2.

Чтобы увидеть эффект фильтрации (дифференцирования) на длине временных рядов, симулируйте набор данных с 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);

См. также

|

Похожие примеры

Подробнее о