Байесовская модель вектора авторегрессии (VAR) с сопряженной предшествующей для вероятности данных
Объект модели Bayesian VAR conjugatebvarm
определяет совместное предшествующее или следующее распределение массива коэффициентов модели Λ и инновационная ковариационная матрица Σ вара <reservedrangesplaceholder1>-D (<reservedrangesplaceholder0>) модель. Априорное распределение соединений (И, И) является зависимой, матричной-нормальной-обратной-Wishart сопряженной моделью.
В целом, когда вы создаете объект модели Bayesian VAR, он задает совместное предшествующее распределение и характеристики только модели VARX. То есть объект модели является шаблоном, предназначенным для дальнейшего использования. В частности, чтобы включить данные в модель для апостериорного анализа распределения, передайте объект модели и данные в соответствующую функцию объекта.
Как создать conjugatebvarm
объект используйте либо conjugatebvarm
функцию (описанную здесь) или bayesvarm
функция. Синтаксисы для каждой функции схожи, но опции различаются. bayesvarm
позволяет вам легко установить предыдущие значения гиперзначений параметров для Миннесоты до [1] регуляризации, в то время какconjugatebvarm
требует полной спецификации предшествующих гиперпараметров распределения.
создает PriorMdl
= conjugatebvarm(numseries
,numlags
)numseries
-D Bayesian VAR (numlags
) объект модели PriorMdl
, который задает размерности и предыдущие допущения для всех коэффициентов модели и инновации ковариация, где:
numseries
= m, количество переменных временных рядов откликов.
numlags
= p, полином AR порядка.
Совместное априорное распределение (И, И) является зависимой, матричной-нормальной-обратной-Wishart сопряженной моделью.
устанавливает свойства, доступные для записи (кроме PriorMdl
= conjugatebvarm(numseries
,numlags
,Name,Value
)NumSeries
и P
) с использованием аргументов пары "имя-значение". Заключайте каждое имя свойства в кавычки. Для примера, conjugatebvarm(3,2,'SeriesNames',["UnemploymentRate" "CPI" "FEDFUNDS"])
задает имена трех переменных отклика в модели Bayesian VAR (2).
numseries
- Количество временных рядов m1
(по умолчанию) | положительное целое числоКоличество m временных рядов, заданное как положительное целое число. numseries
задает размерность многомерной переменной отклика yt и инновационных εt.
numseries
устанавливает NumSeries
свойство.
Типы данных: double
numlags
- Количество откликов с отставаниемКоличество отстающих ответов в каждом уравнении y t, заданное в виде неотрицательного целого числа. Получившаяся модель является VAR (numlags
) модель; каждая задержка имеет numseries
-by- numseries
матрица коэффициентов.
numlags
устанавливает P
свойство.
Типы данных: double
Можно задать значения свойств записи, когда вы создаете объект модели с помощью синтаксиса аргумента пары "имя-значение" или после того, как вы создаете объект модели с помощью записи через точку. Например, чтобы создать 3-D модель Bayesian VAR (1) и пометить переменные первой-третьей характеристики, а затем включить линейный временной термин тренда, введите:
PriorMdl = conjugatebvarm(3,1,'SeriesNames',["UnemploymentRate" "CPI" "FEDFUNDS"]); PriorMdl.IncludeTrend = true;
Description
- Описание моделиОписание модели, заданное как строковый скаляр или вектор символов. Значение по умолчанию описывает размерность модели, например '2-Dimensional VAR(3) Model'
.
Пример: "Model 1"
Типы данных: string
| char
NumSeries
- Количество временных рядов mЭто свойство доступно только для чтения.
Количество m временных рядов, заданное как положительное целое число. NumSeries
задает размерность многомерной переменной отклика yt и инновационных εt.
Типы данных: double
P
- Многомерный авторегрессионный полиномиальный порядокЭто свойство доступно только для чтения.
Многомерный авторегрессионный полином порядка, заданный как неотрицательное целое число. P
- это максимальная задержка, которая имеет ненулевую матрицу коэффициентов.
P
задает количество предварительных наблюдений, необходимых для инициализации модели.
Типы данных: double
SeriesNames
- Имена рядов ответовИмена рядов ответов, заданные как NumSeries
длина строки вектор. Значение по умолчанию является ['Y1' 'Y2'... '
. Y <reservedrangesplaceholder0>
']conjugatebvarm
хранит SeriesNames
как строковый вектор.
Пример: ["UnemploymentRate" "CPI" "FEDFUNDS"]
Типы данных: string
IncludeConstant
- Флаг включения модели константы ctrue
(по умолчанию) | false
Флаг для включения постоянной c модели, заданный как значение в этой таблице.
Значение | Описание |
---|---|
false | Уравнения отклика не включают константу модели. |
true | Все уравнения отклика содержат константу модели. |
Типы данных: logical
IncludeTrend
- Флаг включения терминов линейного тренда δtfalse
(по умолчанию) | true
Флаг для включения линейного временного термина тренда δt, заданный как значение в этой таблице.
Значение | Описание |
---|---|
false | Уравнения отклика не включают линейный срок тренда времени. |
true | Все уравнения отклика содержат линейный срок тренда времени. |
Типы данных: logical
NumPredictors
- Количество переменных экзогенного предиктора в компоненте регрессии модели0
(по умолчанию) | неотрицательное целое числоКоличество переменных экзогенного предиктора в компоненте регрессии модели, заданное в виде неотрицательного целого числа. conjugatebvarm
включает все переменные предиктора симметрично в каждое уравнение отклика.
Mu
- Среднее значение векторизованной матрицы normal previous наzeros(NumSeries*(NumSeries*P + IncludeIntercept + IncludeTrend + NumPredictors),1)
(по умолчанию) | числовой векторСреднее значение векторизованной матрицы normal on, заданное как NumSeries
-by-1 числовой вектор, где * k
(количество коэффициентов в уравнении отклика).k
= NumSeries * P + IncludeIntercept + IncludeTrend + NumPredictors
Му (1
соответствует всем коэффициентам в уравнении переменной отклика : k
)SeriesNames(1)
, Му (
соответствует всем коэффициентам в уравнении переменной отклика (k
+ 1): (2* k
))SeriesNames(2)
и так далее. Для набора индексов, соответствующих уравнению:
Элементы 1
через NumSeries
соответствуют задержке 1 AR коэффициентов переменных отклика, упорядоченных по SeriesNames
.
Элементы NumSeries + 1
через 2*NumSeries
соответствуют задержке 2 коэффициентов AR переменных отклика, упорядоченных по SeriesNames
.
В целом элементы (
через q
- 1) * NumSeries + 1
соответствует задержке q
* NumSeries
Коэффициенты AR переменных отклика, упорядоченные по q
SeriesNames
.
Если IncludeConstant
является true
, элемент NumSeries*P + 1
является моделью постоянной.
Если IncludeTrend
является true
, элемент NumSeries*P + 2
- линейный коэффициент тренда времени.
Если NumPredictors
> 0, элементы NumSeries*P + 3
через
составляют вектор коэффициентов регрессии экзогенных переменных.k
Этот рисунок показывает структуру транспонирования Mu
для 2-D модели VAR (3), которая содержит постоянный вектор и четыре экзогенных предиктора:
где
ϕ q jk является элементом (j, k) матрицы коэффициентов AR q задержки.
c j является моделью, константой в уравнении переменной j отклика.
B j u является коэффициентом регрессии экзогенной переменной, u в уравнении переменной отклика j.
Совет
bayesvarm
позволяет вам задавать Mu
легко при использовании метода регуляризации Миннесоты. Чтобы задать Mu
непосредственно:
Установите отдельные переменные для предыдущего среднего значения каждой матрицы коэффициентов и вектора.
Горизонтально конкатенируйте все средства коэффициентов в этом порядке:
Векторизация транспонирования средней матрицы коэффициентов.
Mu = Coeff.'; Mu = Mu(:);
Типы данных: double
V
- Масштабированная условная ковариационная матрица векторизованной матрицы normal previous oneye(NumSeries*P + IncludeIntercept + IncludeTrend + NumPredictors)
(по умолчанию) | положительную определенную числовую матрицуМасштабированная условная ковариационная матрица векторизованной матрицы normal pormal on, заданная как
-by- k
симметричная, положительно определенная матрица, где k
(количество коэффициентов в уравнении отклика).k
= NumSeries * P + IncludeIntercept + IncludeTrend + NumPredictors
Индексы строка и столбец соответствуют всем коэффициентам модели относительно коэффициентов в уравнении первой переменной отклика y 1, t (для получения дополнительной информации см. «Алгоритмы»).
Элементы 1
через NumSeries
соответствуют задержке 1 AR коэффициентов переменных отклика, упорядоченных по SeriesNames
.
Элементы NumSeries + 1
через 2*NumSeries
соответствуют задержке 2 коэффициентов AR переменных отклика, упорядоченных по SeriesNames
.
В целом элементы (
через q
- 1) * NumSeries + 1
соответствуют задержке q
* NumSeries
Коэффициенты AR переменных отклика, упорядоченные по q
SeriesNames
.
Элементный NumSeries*P + 1
является моделью постоянной.
Элементный NumSeries*P + 2
- линейный коэффициент тренда времени.
Элементный NumSeries*P + 3
через
составляют вектор коэффициентов регрессии экзогенных переменных.k
Например, рассмотрим 3-D модель VAR (2), содержащую постоянную и четыре экзогенные переменные.
V(1,1)
является Var (ϕ 1,11), Var (ϕ 1,21) и Var (ϕ 1,31).
V(1,4)
Co (ϕ 1,11, ϕ 2,11), Co (ϕ 1,21, ϕ 2,21) и Co (ϕ 1,31, ϕ 2,31).
V(8,9)
является Cov (β 11, β 12), Co (β 21, β 22) и Co (β 31, β 32), которые являются ковариациями коэффициентов регрессии первой и второй экзогенных переменных для всех уравнений.
Совет
bayesvarm
позволяет вам создать любую предшествующую модель Bayesian VAR и задать V
легко при использовании метода регуляризации Миннесоты.
Типы данных: double
Omega
- Матрица шкалы обратного желанияeye(numseries)
(по умолчанию) | положительную определенную числовую матрицуМатрица шкалы Обратного Желания, заданная как NumSeries
-by- NumSeries
положительная определенная числовая матрица.
Типы данных: double
DoF
- Обратные степени свободы Wishartnumseries + 10
(по умолчанию) | положительный числовой скалярОбратные степени свободы Wishart, заданные как положительный числовой скаляр.
Для правильного распределения задайте значение, которое больше numseries – 1
. Для распределения с конечным средним задайте значение, которое больше numseries + 1
.
Типы данных: double
AR
- Распределение, среднее из авторегрессивных матриц коэффициентов Φ1..., Φ <reservedrangesplaceholder0>Это свойство доступно только для чтения.
Распределение, среднее из авторегрессивных матриц коэффициентов Φ1..., Φ <reservedrangesplaceholder1> связался с изолированными ответами, определенными как P
-D вектор камеры NumSeries
-by- NumSeries
числовые матрицы.
AR
is, {j
}j
, матрица коэффициентов задержки j
. Строки соответствуют уравнениям, а столбцы соответствуют отстающим переменным отклика; SeriesNames
определяет порядок переменных отклика и уравнений. Знаки коэффициентов являются знаками модели VAR, выраженными в обозначении разностного уравнения.
Если P
= 0, AR
- пустая камера. В противном случае AR
- набор средств коэффициентов AR, извлеченных из Mu
.
Типы данных: cell
Constant
- Среднее распределение постоянных c моделиЭто свойство доступно только для чтения.
Среднее распределение модели константы c (или точки пересечения), заданное как NumSeries
-by-1 числовой вектор. Константа
- константа в уравнении (j
)j
; SeriesNames
определяет порядок уравнений.
Если IncludeConstant
= false
, Constant
- пустой массив. В противном случае Constant
- модель среднего вектора константы, извлеченная из Mu
.
Типы данных: double
Trend
- Среднее распределение линейного временного тренда δЭто свойство доступно только для чтения.
Среднее распределение линейного временного δ тренда, заданное как NumSeries
-by-1 числовой вектор. Тренд
- линейный временной тренд в уравнении (j
)j
; SeriesNames
определяет порядок уравнений.
Если IncludeTrend
= false
(по умолчанию), Trend
- пустой массив. В противном случае Trend
- среднее значение коэффициента линейного временного тренда, извлеченное из Mu
.
Типы данных: double
Beta
- Среднее распределение матрицы коэффициента регрессии ΒЭто свойство доступно только для чтения.
Среднее распределение матрицы коэффициента регрессии B, сопоставленной с переменными экзогенного предиктора, заданное как NumSeries
-by- NumPredictors
числовая матрица.
Бета
содержит коэффициенты регрессии каждого предиктора в уравнении переменной отклика j
y j(j
,:), т.
Бета
содержит коэффициенты регрессии в каждом уравнении предиктора xk. По умолчанию все переменные предиктора находятся в регрессионном компоненте всех уравнений отклика. Можно уменьшить вес предиктора из уравнения, задав, для соответствующего коэффициента, предшествующее среднее значение 0 в (:, k
)Mu
и небольшое отклонение в V
.
Когда вы создаете модель, переменные предиктора являются гипотетическими. Вы задаете данные предиктора, когда вы работаете с моделью (для примера, когда вы оцениваете апостериор при помощи estimate
). Столбцы данных предиктора определяют порядок столбцов Beta
.
Типы данных: double
Covariance
- Среднее распределение инноваций ковариационная матрицаЭто свойство доступно только для чтения.
Среднее распределение ковариационной матрицы NumSeries
инновации в каждый момент времени t = 1,..., T, заданные как NumSeries
-by- NumSeries
положительная определенная числовая матрица. Строки и столбцы соответствуют инновациям в уравнениях переменных отклика, упорядоченных по SeriesNames
.
Типы данных: double
estimate | Оцените апостериорное распределение параметров модели Байесовской векторной авторегрессии (VAR) |
forecast | Прогнозные отклики из модели байесовской векторной авторегрессии (VAR) |
simsmooth | Сглаживание симуляции модели байесовской векторной авторегрессии (VAR) |
simulate | Симулируйте коэффициенты и инновации ковариационной матрицы модели Байесовской векторной авторегрессии (VAR) |
summarize | Сводная статистика распределения модели байесовской векторной авторегрессии (VAR) |
Рассмотрим 3-D модель VAR (4) для инфляции в США (INFL
), безработица (UNRATE
), и федеральные фонды (FEDFUNDS
) ставки.
Для всех , - серия независимых 3-D нормальных инноваций со средним значением 0 и ковариацией . Примите следующие предыдущие распределения:
, где M является матрицей средств 13 на 3 и - матрица шкалы между коэффициентами 13 на 13. Эквивалентно, .
, где является матрицей шкалы 3 на 3 и - степени свободы.
Создайте сопряженную предшествующую модель для параметров модели 3-D VAR (4).
numseries = 3; numlags = 4; PriorMdl = conjugatebvarm(numseries,numlags)
PriorMdl = conjugatebvarm with properties: Description: "3-Dimensional VAR(4) Model" NumSeries: 3 P: 4 SeriesNames: ["Y1" "Y2" "Y3"] IncludeConstant: 1 IncludeTrend: 0 NumPredictors: 0 Mu: [39x1 double] V: [13x13 double] Omega: [3x3 double] DoF: 13 AR: {[3x3 double] [3x3 double] [3x3 double] [3x3 double]} Constant: [3x1 double] Trend: [3x0 double] Beta: [3x0 double] Covariance: [3x3 double]
PriorMdl
является conjugatebvarm
Байесовский объект модели VAR, представляющий предшествующее распределение коэффициентов и инноваций ковариации модели 3-D VAR (4). На отображении командной строки показаны свойства модели. Можно отобразить свойства при помощи записи через точку.
Отобразите предыдущие средние матрицы четырех коэффициентов AR путем установки каждой матрицы в камере на переменную.
AR1 = PriorMdl.AR{1}
AR1 = 3×3
0 0 0
0 0 0
0 0 0
AR2 = PriorMdl.AR{2}
AR2 = 3×3
0 0 0
0 0 0
0 0 0
AR3 = PriorMdl.AR{3}
AR3 = 3×3
0 0 0
0 0 0
0 0 0
AR4 = PriorMdl.AR{4}
AR4 = 3×3
0 0 0
0 0 0
0 0 0
conjugatebvarm
центрируют все коэффициенты AR в 0
по умолчанию. The AR
свойство доступно только для чтения, но определяется из свойства writable Mu
.
Рассмотрим 1-D байесовскую модель AR (2) для ежедневных возвратов NASDAQ со 2 января 1990 года по 31 декабря 2001 года .
Априорными являются:
, где является вектором коэффициентных средств 3 на 1 и является масштабированной ковариационной матрицей 3 на 3.
, где является степенями свободы и - шкала.
Создайте сопряженную предшествующую модель для параметров модели AR (2).
numseries = 1; numlags = 2; PriorMdl = conjugatebvarm(numseries,numlags)
PriorMdl = conjugatebvarm with properties: Description: "1-Dimensional VAR(2) Model" NumSeries: 1 P: 2 SeriesNames: "Y1" IncludeConstant: 1 IncludeTrend: 0 NumPredictors: 0 Mu: [3x1 double] V: [3x3 double] Omega: 1 DoF: 11 AR: {[0] [0]} Constant: 0 Trend: [1x0 double] Beta: [1x0 double] Covariance: 0.1111
conjugatebvarm
интерпретирует ковариационную матрицу инноваций как обратную случайную переменную Wishart. Поскольку шкалы и степени свободы гиперпараметров среди обратного Wishart и обратных гамма- распределений не равны, можно настроить их с помощью записи через точку. Для примера, чтобы достичь 10 степеней свободы для обратной гамма интерпретации, установите обратные степени свободы Wishart равными 20.
PriorMdl.DoF = 20
PriorMdl = conjugatebvarm with properties: Description: "1-Dimensional VAR(2) Model" NumSeries: 1 P: 2 SeriesNames: "Y1" IncludeConstant: 1 IncludeTrend: 0 NumPredictors: 0 Mu: [3x1 double] V: [3x3 double] Omega: 1 DoF: 20 AR: {[0] [0]} Constant: 0 Trend: [1x0 double] Beta: [1x0 double] Covariance: 0.0556
В модели 3-D VAR (4) Create Matrix-Normal-Inverse-Wishart Conjugate Private Model рассмотрите исключение лагов 2 и 3 из модели.
Вы не можете исключить матрицы коэффициентов из моделей, но можно задать высокую предшествующую герметичность на нуле для коэффициентов, которые вы хотите исключить.
Создайте сопряженную предшествующую модель для параметров модели 3-D VAR (4). Задайте имена переменных отклика.
По умолчанию предшествующие средства коэффициента AR равны нулю. Задайте значения высокой герметичности для лагов 2 и 3 путем установки их предыдущих отклонений на 1e-6
. Оставьте все другие значения плотности коэффициентов по умолчанию:
1
для отклонений коэффициентов AR
1e3
для отклонений постоянных векторов
0
для всех ковариаций коэффициентов
Кроме того, только для сопряженных байесовских моделей VAR, MATLAB ® принимает, что отклонения коэффициентов пропорциональны между уравнениями отклика. Поэтому задайте отклонения относительно первого уравнения.
numseries = 3; numlags = 4; seriesnames = ["INFL"; "UNRATE"; "FEDFUNDS"]; vPhi1 = ones(1,numseries); vPhi2 = 1e-6*ones(1,numseries); vPhi3 = 1e-6*ones(1,numseries); vPhi4 = ones(1,numseries); vc = 1e3; V = diag([vPhi1 vPhi2 vPhi3 vPhi4 vc]); PriorMdl = conjugatebvarm(numseries,numlags,'SeriesNames',seriesnames,... 'V',V)
PriorMdl = conjugatebvarm with properties: Description: "3-Dimensional VAR(4) Model" NumSeries: 3 P: 4 SeriesNames: ["INFL" "UNRATE" "FEDFUNDS"] IncludeConstant: 1 IncludeTrend: 0 NumPredictors: 0 Mu: [39x1 double] V: [13x13 double] Omega: [3x3 double] DoF: 13 AR: {[3x3 double] [3x3 double] [3x3 double] [3x3 double]} Constant: [3x1 double] Trend: [3x0 double] Beta: [3x0 double] Covariance: [3x3 double]
Рассмотрим 2-D модель VARX (1) для реального ВВП США (RGDP
) и инвестиции (GCE
) тарифы, которые лечат личное потребление (PCEC
) скорость как экзогенная:
Для всех , - серия независимых 2-D нормальных инноваций со средним значением 0 и ковариацией . Примите следующие предыдущие распределения:
, где M является матрицей средств 4 на 2 и - матрица шкалы между коэффициентами 4 на 4. Эквивалентно, .
, где И является матрицей шкалы 2 на 2 и - степени свободы.
Создайте сопряженную предшествующую модель для параметров модели 2-D VARX (1).
numseries = 2;
numlags = 1;
numpredictors = 1;
PriorMdl = conjugatebvarm(numseries,numlags,'NumPredictors',numpredictors)
PriorMdl = conjugatebvarm with properties: Description: "2-Dimensional VAR(1) Model" NumSeries: 2 P: 1 SeriesNames: ["Y1" "Y2"] IncludeConstant: 1 IncludeTrend: 0 NumPredictors: 1 Mu: [8x1 double] V: [4x4 double] Omega: [2x2 double] DoF: 12 AR: {[2x2 double]} Constant: [2x1 double] Trend: [2x0 double] Beta: [2x1 double] Covariance: [2x2 double]
Отобразите среднее значение коэффициентов Mu
с соответствующими коэффициентами.
coeffnames = ["phi(11)"; "phi(12)"; "c(1)"; "beta(1)"; "phi(21)"; "phi(22)"; "c(2)"; "beta(2)"]; array2table(PriorMdl.Mu,'VariableNames',{'PriorMean'},'RowNames',coeffnames)
ans=8×1 table
PriorMean
_________
phi(11) 0
phi(12) 0
c(1) 0
beta(1) 0
phi(21) 0
phi(22) 0
c(2) 0
beta(2) 0
conjugatebvarm
опции позволяют вам задавать предыдущие значения гиперзначений параметров непосредственно, но bayesvarm
опции хорошо подходят для настройки гиперпараметров по методу регуляризации Миннесоты.
Рассмотрим 3-D модель VAR (4) Create Matrix-Normal-Inverse-Wishart Сопряженная предыдущая модель. Модель содержит 39 коэффициентов. Для разреженности коэффициентов создайте сопряженную байесовскую модель VAR при помощи bayesvarm
. Задайте следующее, априори:
Каждый ответ является моделью AR (1), в среднем с коэффициентом задержки 1 0,75.
Предшествующие ковариации масштабных коэффициентов распадаются с увеличением задержки со скоростью 2 (то есть более низкие лаги важнее, чем более высокие лаги).
numseries = 3; numlags = 4; PriorMdl = bayesvarm(numseries,numlags,'ModelType','conjugate',... 'Center',0.75,'Decay',2)
PriorMdl = conjugatebvarm with properties: Description: "3-Dimensional VAR(4) Model" NumSeries: 3 P: 4 SeriesNames: ["Y1" "Y2" "Y3"] IncludeConstant: 1 IncludeTrend: 0 NumPredictors: 0 Mu: [39x1 double] V: [13x13 double] Omega: [3x3 double] DoF: 13 AR: {[3x3 double] [3x3 double] [3x3 double] [3x3 double]} Constant: [3x1 double] Trend: [3x0 double] Beta: [3x0 double] Covariance: [3x3 double]
Отобразите предшествующее средство коэффициента в уравнении первой характеристики.
Phi1 = PriorMdl.AR{1}
Phi1 = 3×3
0.7500 0 0
0 0.7500 0
0 0 0.7500
Phi2 = PriorMdl.AR{2}
Phi2 = 3×3
0 0 0
0 0 0
0 0 0
Phi3 = PriorMdl.AR{3}
Phi3 = 3×3
0 0 0
0 0 0
0 0 0
Phi4 = PriorMdl.AR{4}
Phi4 = 3×3
0 0 0
0 0 0
0 0 0
Отобразите тепловую карту предыдущих масштабированных ковариаций коэффициентов в первом уравнении отклика.
% Create labels for the chart. numARCoeffMats = PriorMdl.NumSeries*PriorMdl.P; arcoeffnames = strings(numARCoeffMats,1); for r = numlags:-1:1 arcoeffnames(((r-1)*numseries+1):(numseries*r)) = ["\phi_{"+r+",11}" "\phi_{"+r+",12}" "\phi_{"+r+",13}"]; end heatmap(arcoeffnames,arcoeffnames,PriorMdl.V(1:end-1,1:end-1));
Для сопряженных байесовских моделей VAR масштабные ковариации пропорциональны среди уравнений.
Рассмотрим 3-D модель VAR (4) Create Matrix-Normal-Inverse-Wishart Сопряженная предыдущая модель. Оцените апостериорное распределение и сгенерируйте прогнозы из соответствующего апостериорного прогнозного распределения.
Загрузка и предварительная обработка данных
Загрузите набор макроэкономических данных США. Вычислите уровень инфляции. Постройте график всех ответных рядов.
load Data_USEconModel seriesnames = ["INFL" "UNRATE" "FEDFUNDS"]; DataTable.INFL = 100*[NaN; price2ret(DataTable.CPIAUCSL)]; figure plot(DataTable.Time,DataTable{:,seriesnames}) legend(seriesnames)
Стабилизировать показатели безработицы и федеральных средств путем применения первого различия к каждой серии.
DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)];
DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)];
seriesnames(2:3) = "D" + seriesnames(2:3);
Удалите все отсутствующие значения из данных.
rmDataTable = rmmissing(DataTable);
Создайте предыдущую модель
Создайте сопряженную предшествующую модель Bayesian VAR (4) для трех рядов откликов. Задайте имена переменных отклика.
numseries = numel(seriesnames);
numlags = 4;
PriorMdl = conjugatebvarm(numseries,numlags,'SeriesNames',seriesnames);
Оценка апостериорного распределения
Оцените апостериорное распределение путем передачи предыдущей модели и целого ряда данных в estimate
.
PosteriorMdl = estimate(PriorMdl,rmDataTable{:,seriesnames},'Display','equation');
Bayesian VAR under conjugate priors Effective Sample Size: 197 Number of equations: 3 Number of estimated Parameters: 39 VAR Equations | INFL(-1) DUNRATE(-1) DFEDFUNDS(-1) INFL(-2) DUNRATE(-2) DFEDFUNDS(-2) INFL(-3) DUNRATE(-3) DFEDFUNDS(-3) INFL(-4) DUNRATE(-4) DFEDFUNDS(-4) Constant ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ INFL | 0.1260 -0.4400 0.1049 0.3176 -0.0545 0.0440 0.4173 0.2421 0.0515 0.0247 -0.1639 0.0080 0.1064 | (0.0713) (0.1395) (0.0366) (0.0810) (0.1490) (0.0386) (0.0802) (0.1467) (0.0400) (0.0838) (0.1385) (0.0369) (0.0774) DUNRATE | -0.0236 0.4440 0.0350 0.0900 0.2295 0.0520 -0.0330 0.0567 0.0010 0.0298 -0.1665 0.0104 -0.0536 | (0.0396) (0.0774) (0.0203) (0.0449) (0.0827) (0.0214) (0.0445) (0.0814) (0.0222) (0.0465) (0.0768) (0.0205) (0.0430) DFEDFUNDS | -0.1514 -1.3408 -0.2762 0.3275 -0.2971 -0.3041 0.2609 -0.6971 0.0130 -0.0692 0.1392 -0.1341 -0.3902 | (0.1517) (0.2967) (0.0777) (0.1722) (0.3168) (0.0820) (0.1705) (0.3120) (0.0851) (0.1782) (0.2944) (0.0785) (0.1646) Innovations Covariance Matrix | INFL DUNRATE DFEDFUNDS ------------------------------------------- INFL | 0.2725 -0.0197 0.1407 | (0.0270) (0.0106) (0.0417) DUNRATE | -0.0197 0.0839 -0.1290 | (0.0106) (0.0083) (0.0242) DFEDFUNDS | 0.1407 -0.1290 1.2322 | (0.0417) (0.0242) (0.1220)
Поскольку априорный является сопряженным для вероятности данных, апостериор является conjugatebvarm
объект. По умолчанию estimate
использует первые четыре наблюдения в качестве предварительной выборки для инициализации модели.
Сгенерируйте прогнозы из апостериорного прогнозирующего распределения
Из апостериорного прогнозирующего распределения сгенерируйте прогнозы на двухлетнем горизонте. Поскольку для выборки из апостериорного прогнозирующего распределения требуется весь набор данных, задайте предыдущую модель в forecast
вместо апостериорной.
fh = 8; FY = forecast(PriorMdl,fh,rmDataTable{:,seriesnames});
FY
- матрица прогнозов 8 на 3.
Постройте график конца набора данных и прогнозов.
fp = rmDataTable.Time(end) + calquarters(1:fh); figure plotdata = [rmDataTable{end - 10:end,seriesnames}; FY]; plot([rmDataTable.Time(end - 10:end); fp'],plotdata) hold on plot([fp(1) fp(1)],ylim,'k-.') legend(seriesnames) title('Data and Forecasts') hold off
Вычислительные импульсные характеристики
Постройте функции импульсной характеристики путем передачи апостериорных оценок в armairf
.
armairf(PosteriorMdl.AR,[],'InnovCov',PosteriorMdl.Covariance)
A Bayesian VAR model обрабатывает все коэффициенты и ковариационную матрицу инноваций как случайные переменные в m -мерной, стационарной модели VARX (p). Модель имеет одну из трех форм, описанных в этой таблице.
Модель | Уравнение |
---|---|
VAR (p) редуцированной формы в обозначении разностного уравнения |
|
Многомерная регрессия |
|
Матричная регрессия |
|
Для каждого временного t = 1,..., T:
yt - m -мерный вектор наблюдаемой отклика, где m = numseries
.
Φ1,..., - p являются m -by m матрицами коэффициентов AR лагов с 1 по p, где p = numlags
.
c - вектор m -by-1 констант модели, если IncludeConstant
является true
.
δ - вектор m -by-1 коэффициентов линейного временного тренда, если IncludeTrend
является true
.
Β - m -by - r матрица коэффициентов регрессии вектора r -by - 1 наблюдаемых экзогенных предикторов x t, где r = NumPredictors
. Все переменные предиктора появляются в каждом уравнении.
который является вектором 1-by- (mp + r + 2), и Z t является m -by- m (mp + r + 2) блочной диагональной матрицей
где 0 z является 1-бай- (mp + r + 2) вектором нулей.
, которая является (mp + r + 2) -by m случайной матрицей коэффициентов, и m (mp + r + 2) -by-1 вектор λ = vec (
εt является m-на-1 вектором случайных, последовательно некоррелированных, многомерных нормальных инноваций с нулевым вектором для среднего и m -by- m матрицы Это предположение подразумевает, что вероятность данных является
где f m - размерная многомерная нормальная плотность со средним <reservedrangesplaceholder3> <reservedrangesplaceholder2> Λ и ковариацией Σ, оценен в <reservedrangesplaceholder1> <reservedrangesplaceholder0>.
Прежде, чем рассмотреть данные, Вы налагаете joint prior distribution предположение на (Λ,Σ), которым управляет распределение π (Λ,Σ). В байесовском анализе распределение параметров обновляется информацией о параметрах, полученных из вероятности данных. Результатом является joint posterior distribution π (Λ,Σ|<reservedrangesplaceholder2>,<reservedrangesplaceholder1>,<reservedrangesplaceholder0>0), где:
Y - T матрица m, содержащая весь ряд ответов {y t}, t = 1,..., T.
X - T матрица m, содержащая весь экзогенный ряд {x t}, t = 1,..., T.
Y 0 является p -by - m матрицей предварительных образцов данных, используемых для инициализации модели VAR для оценки.
dependent, matrix-normal-inverse-Wishart conjugate model вар <reservedrangesplaceholder3>-D Bayesian (<reservedrangesplaceholder2>) модель, в которой условное предшествующее распределение Λ 'Σ является матрицей, нормальной со средней матрицей Μ и матрицы шкалы Σ и V. Предшествующее распределение И является обратным Wishart с шкалой матрицы и степеней ν свободы.
Символически:
что подразумевает, для λ = vec ( где
μ = vec (U) = Mu
.
V = V
.
r = NumPredictors
.
1 c 1, если IncludeConstant
true, и 0 в противном случае.
1 δ 1, если IncludeTrend
true, и 0 в противном случае.
Чтобы достичь апостериорных распределений, которые являются сопряженными для вероятности данных, ковариации матрицы коэффициентов AR должны быть пропорциональны среди уравнений. И для каждого уравнения ковариации с само- и перекрестной задержкой должны быть равными.
Апостериорные распределения
где:
Если вы передаете либо conjugatebvarm
или diffusebvarm
объект и данные estimate
, MATLAB® возвращает conjugatebvarm
объект, представляющий апостериорное распределение.
Условная ковариация (без масштаба) всей векторизованной матрицы, предшествующая Σ⊗<reservedrangesplaceholder0>
. Чтобы достичь сопряженности, эти условия должны быть истинными:
Предыдущие ковариации приняты пропорциональными среди всех уравнений. .R. определяет пропорциональность, и масштабирует V
во время апостериорной оценки.
Для уравнения ковариации между всеми коэффициентами AR, автозадачей и перекрестной задержкой, равны.
conjugatebvarm
применяет первое условие, но не второе. Поэтому, conjugatebvarm
применяет элементы V
ко всем коэффициентам в модели относительно коэффициентов в уравнении y 1, t.
[1] Литтерман, Роберт Б. «Прогнозирование с байесовскими векторными авторегрессиями: пятилетний опыт». Журнал деловой и экономической статистики 4, № 1 (январь 1986 года): 25-38. https://doi.org/10.2307/1391384.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.