threshold

Создайте пороговые переходы

Описание

threshold создает пороговые переходы от заданных уровней и типа перехода, или дискретного или сглаженного. Используйте threshold объект задать переключающийся механизм переключающей порог модели динамической регрессии (tsVAR).

Чтобы изучить пороговую модель переходов, передайте полностью заданный threshold возразите против объектной функции. Можно задать уровни перехода и уровни как неизвестные параметры (NaN значения), который можно оценить, когда вы соответствуете tsVAR модель к данным при помощи estimate.

В качестве альтернативы, чтобы создать случайный механизм переключения, которым управляет дискретная цепь Маркова, для переключающей Маркова модели динамической регрессии, смотрите dtmc и msVAR.

Создание

Описание

пример

tt = threshold(levels) создает пороговый объект tt переходов для переходов дискретного состояния, заданных переходом середина уровней levels.

пример

tt = threshold(levels,Name,Value) свойства наборов с помощью синтаксиса аргумента значения имени. Например, threshold([0 1],Type="exponential",Rates=[0.5 1.5]) задает сглаженные, экспоненциальные переходы в середине уровней 0 и 1 с уровнями 0.5 и 1.5, соответственно.

Входные параметры

развернуть все

Переход середина уровней t 1, t 2, … t n в виде увеличивающегося числового вектора.

Уровни t j разделяют пороговые данные о переменной на n + 1 состояние, представленное интервалами (− ∞, t 1), [t 1, t 2), … [t n, ∞).

NaN записи указывают на допускающие оценку уровни перехода. estimate функция tsVAR обрабатывает известные элементы levels как ограничения равенства во время оптимизации.

threshold хранилища levels в свойстве Levels

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

Свойства

развернуть все

Можно установить большинство свойств, когда вы создаете модель при помощи синтаксиса аргумента значения имени. Можно изменить только StateNames при помощи записи через точку. Например, создайте логистический переход с двумя состояниями в 0, и затем пометьте первые и вторые состояния Depression и Recession, соответственно.

tt = threshold(0,Type="logistic");
tt.StateNames = ["Depression" "Recession"];

Это свойство доступно только для чтения.

Тип переходов в виде вектора символов или строкового скаляра.

Функция перехода F (zt, tj, rj) сопоставляет тип перехода с каждым пороговым уровнем tj, где zt является пороговой переменной и rj, является специфичным для уровня уровнем перехода. Каждый функциональный F ограничен между 0 и 1. Эта таблица содержит поддерживаемые типы переходов:

ЗначениеОписание
"discrete" (значение по умолчанию)

Дискретные переходы: F(zt,tj)={0,zt<tj1,zt>=tj.

Дискретные переходы не имеют уровней перехода.

"normal"

Совокупные нормальные переходы: F (zt, tj, rj) = normcdf (zt, tj, 1/rj).

"logistic"

Логистические переходы: F(zt,tj,rj)=11+erj(zttj).

"exponential"

Экспоненциальные переходы: F(zt,tj,rj)=1erj(zttj)2.

"custom"Пользовательская функция перехода задана указателем на функцию свойства TransitionFunction

Пример: "normal"

Типы данных: char | string

Это свойство доступно только для чтения.

Переход середина уровней t 1, t 2, … t n в виде увеличивающегося числового вектора. levels входной параметр устанавливает Levels.

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

Это свойство доступно только для чтения.

Уровни перехода r 1, r 2, … r n в виде положительного числового вектора из длины n, количество уровней. Каждый уровень соответствует уровню в levels.

NaN значения указывают на допускающие оценку уровни. estimate функция tsVAR обрабатывает известные элементы Rates как ограничения равенства во время оптимизации.

threshold игнорирует уровни для дискретных переходов.

Пример: [0.5 1.5]

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

Это свойство доступно только для чтения.

Количество состояний в виде положительной скалярной величины и выведенный из Levels.

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

Метки состояния в виде вектора строки, вектора ячейки из векторов символов или числового вектора из длины numStates.

StateNames(1) называет соответствие состояния (− ∞, t 1), StateName(2) называет соответствие состояния [t 1, t 2), … и StateNames(n + 1) называет соответствие состояния [t n, ∞).

Пример: ["Depression" "Recession" "Stagnant" "Boom"]

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

Это свойство доступно только для чтения.

Пользовательская функция перехода F (zt, tj, rj) в виде указателя на функцию. Указатель должен задать функцию со следующим синтаксисом:

function f = transitionfcn(z,tj,rj)
где:

  • Можно заменить имя transitionfcn.

  • z числовой вектор из пороговых данных о переменной.

  • tj пороговый уровень числового скаляра.

  • rj уровень числового скаляра.

  • f числовой вектор из в интервале [0,1].

Когда Type не "custom", threshold игнорирует TransitionFunction.

Пример: @transitionfcn

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

Функции объекта

ttplotПостройте пороговые переходы
ttdataДанные о функции перехода
ttstatesДанные о переменной Threshold утверждают путь

Примеры

свернуть все

Создайте пороговый переход в среднего уровня t1=0.

t1 = 0;
tt = threshold(t1)
tt = 
  threshold with properties:

          Type: 'discrete'
        Levels: 0
         Rates: []
    StateNames: ["1"    "2"]
     NumStates: 2

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

Учитывая одномерную пороговую переменную, tt делит область значений переменной в два отличных состояния, который tt маркирует "1" и "2". tt также задает переключающийся механизм переключающей порог авторегрессивной модели (TAR), представленной tsVAR объект. Учитывая значения наблюдаемой одномерной переменной перехода:

  • Модель TAR находится в "1" состояния когда переменная перехода находится в интервале (-,0).

  • Модель TAR находится в "2" состояния когда переменная перехода находится в интервале [0,).

Это, которое показывают примеры, как создать два логистических пороговых перехода с различными уровнями перехода, и затем отобразить график градиента переходов.

Загрузите ежегодную канадскую инфляцию и набор данных процентных ставок. Извлеките уровень инфляции на основе CPI (INF_C) из таблицы и графика ряд.

load Data_Canada
INF_C = DataTable.INF_C;

plot(dates,INF_C);
axis tight

Figure contains an axes object. The axes object contains an object of type line.

Примите следующие характеристики ряда уровня инфляции:

  • Уровни ниже 2% являются низкими.

  • Уровни по крайней мере 2% и ниже 8% являются средними.

  • Уровни по крайней мере 8% высоки.

  • Логистическая функция перехода описывает переход между состояниями хорошо.

  • Переход между низкими и средними уровнями быстрее, чем переходы между носителем и высоко.

Создайте пороговые переходы, чтобы описать канадский уровень инфляции.

t = [2 8];      % Thresholds
r = [3.5 1.5];  % Transition rates
statenames = ["Low" "Med" "High"];
tt = threshold(t,Type="logistic",Rates=r,StateNames=statenames)
tt = 
  threshold with properties:

          Type: 'logistic'
        Levels: [2 8]
         Rates: [3.5000 1.5000]
    StateNames: ["Low"    "Med"    "High"]
     NumStates: 3

Постройте пороговые переходы; покажите градиент функции перехода между состояниями и наложите данные.

figure
ttplot(tt,Data=INF_C)

Figure contains an axes object. The axes object with title Threshold Transitions contains 3 objects of type patch, line.

Два основных компонента переключающей порог динамической регрессии (tsVAR) модель:

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

  • Набор авторегрессивных моделей, описывающих динамическую систему среди состояний. Коэффициенты подмодели и ковариации являются допускающими оценку.

Прежде чем вы создадите переключающую порог модель, необходимо задать ее пороговые переходы при помощи theshold. Если вы планируете подбирать переключающую порог модель к данным, можно полностью задать его пороговые переходы, если вы знаете всю середину уровни перехода и уровни. Если необходимо оценить некоторых или всю середину уровней и уровней, можно ввести NaN значения как заполнители для неизвестных параметров. estimate обработки все заданные параметры как ограничения равенства во время оценки. Независимо, чтобы соответствовать пороговым параметрам перехода к данным, необходимо задать частично заданный threshold возразите как переключающийся механизм переключающей порог модели.

Подготовьте все допускающие оценку параметры к оценке

Считайте плавный переход авторегрессивной моделью (ЗВЕЗДА), которая переключается между тремя состояниями (два порога) с экспоненциальной функцией перехода.

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

t1 = [NaN NaN]; % Two unknown mid-levels
r1 = [NaN NaN]; % Two unknown transition rates
tt1 = threshold(t1,Type="exponential",Rates=r1)
tt1 = 
  threshold with properties:

          Type: 'exponential'
        Levels: [NaN NaN]
         Rates: [NaN NaN]
    StateNames: ["1"    "2"    "3"]
     NumStates: 3

tt частично заданный threshold возразите, чтобы передать tsVAR как переключающийся механизм. estimate функция tsVAR соответствует двум серединам уровней и уровней перехода к данным любыми неизвестными параметрами подмодели в переключающей порог модели.

Задайте ограничения равенства

Считайте плавный переход авторегрессивной моделью (ЗВЕЗДА), которая имеет переключающийся механизм со следующими качествами:

  • Пороги в-1 и 1.

  • Функция перехода экспоненциальна.

  • Уровень перехода между первым и вторым состоянием 0.5, но уровень между вторыми и третьими состояниями неизвестен.

Создайте переключающийся механизм.

t2 = [-1 1];
r2 = [0.5 NaN];
tt2 = threshold(t2,Type="exponential",Rates=r2)
tt2 = 
  threshold with properties:

          Type: 'exponential'
        Levels: [-1 1]
         Rates: [0.5000 NaN]
    StateNames: ["1"    "2"    "3"]
     NumStates: 3

tt частично заданный threshold возразите, чтобы передать tsVAR как переключающийся механизм. estimate функция tsVAR делает следующее:

  • Обработайте середину уровней tt.Levels и первый уровень перехода tt.Rates(1) как ограничения равенства

  • Соответствуйте второму уровню перехода tt.Rates(2) к данным любыми неизвестными параметрами подмодели в переключающей порог модели

Создайте сглаженные пороговые переходы со следующими качествами:

  • Середина уровней в-1, 1, и 2.

  • Функция перехода является Студентом t cdf, который позволяет, чтобы более постепенное смешалось, чем нормальный cdf.

  • Уровни перехода, которые являются степенями свободы распределения, равняются 3, 10, и 100.

t = [-1 1 2];
r = [3 10 100];
ttransfcn = @(z,ti,ri)tcdf(z,ri);
tt = threshold(t,Type="custom",TransitionFunction=ttransfcn,Rates=r)
tt = 
  threshold with properties:

          Type: 'custom'
        Levels: [-1 1 2]
         Rates: [3 10 100]
    StateNames: ["1"    "2"    "3"    "4"]
     NumStates: 4

Постройте графики каждой функции перехода.

figure
ttplot(tt,Type="graph")
legend(string(tt.Levels))

Figure contains an axes object. The axes object with title Transition Functions contains 3 objects of type line. These objects represent -1, 1, 2.

Больше о

развернуть все

Советы

  • Чтобы расширить полосу плавного перехода, чтобы показать более постепенное смешивание состояний, уменьшите уровень перехода путем определения Rates аргумент значения имени, когда вы создаете пороговые переходы.

Ссылки

[1] Enders, Уолтер. Прикладные эконометрические временные ряды. Нью-Йорк: John Wiley & Sons, Inc., 2009.

[2] Teräsvirta, Tima. "Моделируя экономические отношения с регрессиями плавного перехода". В А. Аллэхэнде и D.E.A. Джайлс (редакторы)., руководство прикладной экономической статистики, 507 — 552. Нью-Йорк: Марсель Деккер, 1998.

[3] ван Дейк, Дик. Модели Плавного перехода: Расширения и Выброс Устойчивый Вывод. Роттердам, Нидерланды: Ряд Исследования Института Тинбергена, 1999.

Смотрите также

Объекты

Функции

Введенный в R2021b