Байесова векторная модель (VAR) авторегрессии с полусопряженным, предшествующим для вероятности данных
Байесов объект модели VAR semiconjugatebvarm
задает объединенное предшествующее распределение массива коэффициентов модели Λ и инновационная ковариационная матрица Σ m-D модель VAR (p). Объединенное предшествующее распределение (Λ,Σ) является независимым политиком, нормальным обратным Уишартом полусопряженная модель.
В общем случае, когда вы создаете Байесов объект модели VAR, он задает объединенное предшествующее распределение и характеристики модели VARX только. Таким образом, объект модели является шаблоном, предназначенным для дальнейшего использования. А именно, чтобы включить данные в модель для анализа апостериорного распределения, передайте объект модели и данные к соответствующей объектной функции.
Создать semiconjugatebvarm
объект, используйте любого semiconjugatebvarm
функция (описанный здесь) или bayesvarm
функция. Синтаксисы для каждой функции подобны, но опции отличаются. bayesvarm
позволяет вам установить предшествующие гиперзначения параметров для Миннесоты, предшествующей [1] регуляризация легко, тогда как semiconjugatebvarm
требует целой спецификации предшествующих гиперпараметров распределения.
создает PriorMdl
= semiconjugatebvarm(numseries
,numlags
)numseries
- D байесов VAR (numlags
) объект модели PriorMdl
, который задает размерность и предшествующие предположения для всех коэффициентов модели и инновационная ковариация Σ, где:
numseries
= m, количество серийных переменных времени отклика.
numlags
= p, порядок полинома AR.
Объединенное предшествующее распределение (λ, Σ) является независимым политиком, нормальным обратным Уишартом полусопряженная модель.
устанавливает перезаписываемые свойства (кроме PriorMdl
= semiconjugatebvarm(numseries
,numlags
,Name,Value
)NumSeries
и P
) использование аргументов пары "имя-значение". Заключите каждое имя свойства в кавычки. Например, semiconjugatebvarm(3,2,'SeriesNames',["UnemploymentRate" "CPI" "FEDFUNDS"])
задает имена этих трех переменных отклика в модели Bayesian VAR (2).
numseries
— Количество временных рядов m
(значение по умолчанию) | положительное целое числоКоличество временных рядов m в виде положительного целого числа. numseries
задает размерность многомерной переменной отклика yt и инновации εt.
numseries
устанавливает NumSeries
свойство.
Типы данных: double
numlags
— Количество изолированных ответовКоличество изолированных ответов в каждом уравнении y t в виде неотрицательного целого числа. Получившаяся модель является VAR (numlags
) модель; каждая задержка имеет numseries
- numseries
матрица коэффициентов.
numlags
устанавливает P
свойство.
Типы данных: double
Можно установить перезаписываемые значения свойств, когда вы создаете объект модели при помощи синтаксиса аргумента пары "имя-значение", или после того, как вы создаете объект модели при помощи записи через точку. Например, чтобы создать 3-D модель Bayesian VAR (1) и пометить первое через третьи переменные отклика, и затем включать линейный термин тренда времени, введите:
PriorMdl = semiconjugatebvarm(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
. NumSeries
']semiconjugatebvarm
хранилища SeriesNames
как вектор строки.
Пример: ["UnemploymentRate" "CPI" "FEDFUNDS"]
Типы данных: string
IncludeConstant
— Отметьте для включения постоянного c моделиtrue
(значение по умолчанию) | false
Отметьте для включения постоянного c модели в виде значения в этой таблице.
Значение | Описание |
---|---|
false | Уравнения ответа не включают константу модели. |
true | Все уравнения ответа содержат константу модели. |
Типы данных: логический
IncludeTrend
— Отметьте для включения линейного термина тренда времени δtfalse
(значение по умолчанию) | true
Отметьте для включения линейного термина тренда времени δt в виде значения в этой таблице.
Значение | Описание |
---|---|
false | Уравнения ответа не включают линейный термин тренда времени. |
true | Все уравнения ответа содержат линейный термин тренда времени. |
Типы данных: логический
NumPredictors
— Количество внешних переменных предикторов в компоненте регрессии модели
(значение по умолчанию) | неотрицательное целое числоКоличество внешних переменных предикторов в компоненте регрессии модели в виде неотрицательного целого числа. semiconjugatebvarm
включает все переменные предикторы симметрично в каждое уравнение ответа.
Mu
— Среднее значение многомерных, нормальных предшествующий на λzeros(NumSeries*(NumSeries*P + IncludeIntercept + IncludeTrend + NumPredictors),1)
(значение по умолчанию) | числовой векторСреднее значение многомерного нормального предшествующего на λ в виде NumSeries*
- 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
для 2D модели 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
— Условная ковариационная матрица многомерных, нормальных предшествующий на λeye(NumSeries*(NumSeries*P + IncludeIntercept + IncludeTrend + NumPredictors))
(значение по умолчанию) | симметричная, положительная определенная числовая матрицаУсловная ковариационная матрица многомерных, нормальных предшествующий на λ в виде NumSeries*
- k
by-NumSeries*
симметричная, положительная определенная матрица, где k
(количество коэффициентов в уравнении ответа).k
= NumSeries*P + IncludeIntercept + IncludeTrend + NumPredictors
Индексы строки и столбца соответствуют коэффициентам модели таким же образом как Му. Например, рассмотрите 3-D модель VAR (2), содержащую константу и четыре внешних переменные.
V(1,1)
var (ϕ 1,11).
V(5,6)
Cov (ϕ 2,12, ϕ 2,13).
V(8,9)
Cov (β 11, β 12).
bayesvarm
позволяет вам создать любой Байесов VAR предшествующая модель и задать V
легко при помощи Миннесотского метода регуляризации.
Типы данных: double
Omega
— Инверсия матрица шкалы Уишартаeye(numseries)
(значение по умолчанию) | положительная определенная числовая матрицаИнверсия матрица шкалы Уишарта в виде NumSeries
- NumSeries
положительная определенная числовая матрица.
Типы данных: double
DoF
— Инверсия степени свободы Уишартаnumseries + 10
(значение по умолчанию) | положительный числовой скалярИнверсия степени свободы Уишарта в виде положительного числового скаляра.
Для соответствующего распределения задайте значение, которое больше numseries – 1
. Для распределения с конечным средним значением задайте значение, которое больше numseries + 1
.
Типы данных: double
AR
— Среднее значение распределения авторегрессивных содействующих матриц Φ1, …, ΦpЭто свойство доступно только для чтения.
Среднее значение распределения авторегрессивных содействующих матриц Φ1, …, Φp сопоставленный с изолированными ответами в виде P
- Вектор ячейки D NumSeries
- NumSeries
числовые матрицы.
AR {
Φj
}j
, матрица коэффициентов задержки j
. Строки соответствуют уравнениям, и столбцы соответствуют изолированным переменным отклика; SeriesNames
определяет порядок переменных отклика и уравнений. Содействующие знаки являются теми из модели VAR, выраженной в обозначении разностного уравнения.
Если P
= 0, AR
пустая ячейка. В противном случае, AR
набор содействующих средних значений AR, извлеченных из Mu
.
Типы данных: cell
Constant
— Среднее значение распределения постоянного c моделиЭто свойство доступно только для чтения.
Среднее значение распределения постоянного c модели (или прерывание) в виде NumSeries
- 1 числовой вектор. Постоянный (
константа в уравнении j
)j
; SeriesNames
определяет порядок уравнений.
Если IncludeConstant
= false
, Constant
пустой массив. В противном случае, Constant
постоянное векторное среднее значение модели, извлеченное из Mu
.
Типы данных: double
Trend
— Среднее значение распределения линейного тренда времени δЭто свойство доступно только для чтения.
Среднее значение распределения линейного тренда времени δ в виде NumSeries
- 1 числовой вектор. Тренд (
линейный тренд времени в уравнении j
)j
; SeriesNames
определяет порядок уравнений.
Если IncludeTrend
= false
(значение по умолчанию), Trend
пустой массив. В противном случае, Trend
линейное содействующее среднее значение тренда времени, извлеченное из Mu
.
Типы данных: double
Beta
— Среднее значение распределения матрицы коэффициента регрессии ΒЭто свойство доступно только для чтения.
Среднее значение распределения матрицы B коэффициента регрессии сопоставлено с внешними переменными предикторами в виде NumSeries
- NumPredictors
числовая матрица.
Бета (
содержит коэффициенты регрессии каждого предиктора в уравнении переменной отклика j
yj
,:)j
T. \beta:
содержит коэффициент регрессии в каждом уравнении предиктора xk. По умолчанию все переменные предикторы находятся в компоненте регрессии всех уравнений ответа. Можно вниз-взвесить предиктор от уравнения путем определения, для соответствующего коэффициента, предшествующего среднего значения 0 в K
)Mu
и небольшое отклонение в V
.
Когда вы создаете модель, переменные предикторы являются гипотетическими. Вы задаете данные о предикторе, когда вы работаете с моделью (например, когда вы оцениваете следующее при помощи estimate
). Столбцы данных о предикторе определяют порядок столбцов Beta
.
Типы данных: double
Covariance
— Среднее значение распределения инновационной ковариационной матрицы ΣЭто свойство доступно только для чтения.
Среднее значение распределения инновационной ковариационной матрицы Σ NumSeries
инновации в каждый раз t = 1..., T в виде NumSeries
- NumSeries
положительная определенная числовая матрица. Строки и столбцы соответствуют инновациям в уравнениях переменных отклика, упорядоченных SeriesNames
.
Типы данных: double
estimate | Оцените апостериорное распределение Байесовой векторной авторегрессии (VAR) параметры модели |
forecast | Предскажите ответы из Байесовой векторной модели (VAR) авторегрессии |
simsmooth | Симуляция, более сглаженная из Байесовой векторной модели (VAR) авторегрессии |
simulate | Симулируйте содействующую и инновационную ковариационную матрицу Байесовой векторной модели (VAR) авторегрессии |
summarize | Статистика сводных данных распределения Байесовой векторной модели (VAR) авторегрессии |
Рассмотрите 3-D модель VAR (4) для инфляции США (INFL
), безработица (UNRATE
), и федеральные фонды (FEDFUNDS
) уровни.
\forall , серия независимых 3-D нормальных инноваций со средним значением 0 и ковариация . Примите следующие предшествующие распределения:
, где 39 1 вектор средних значений и 39 39 ковариационная матрица.
, где 3х3 матрица шкалы и степени свободы.
Создайте полусопряженную предшествующую модель для 3-D VAR (4) параметры модели.
numseries = 3; numlags = 4; PriorMdl = semiconjugatebvarm(numseries,numlags)
PriorMdl = semiconjugatebvarm 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: [39x39 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
semiconjugatebvarm
Байесов объект модели 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
semiconjugatebvarm
центры все коэффициенты AR в 0
по умолчанию. AR
свойство только для чтения, но оно выведено из writeable свойства Mu
.
Полагайте, что 1D модель Bayesian AR (2) для ежедневной NASDAQ возвращается с 2 января 1990 до 31 декабря 2001.
Уголовное прошлое:
, где вектор 3 на 1 содействующих средних значений и 3х3 ковариационная матрица.
, где степени свободы и шкала.
Создайте полусопряженную предшествующую модель для AR (2) параметры модели.
numseries = 1; numlags = 2; PriorMdl = semiconjugatebvarm(numseries,numlags)
PriorMdl = semiconjugatebvarm 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
semiconjugatebvarm
интерпретирует инновационную ковариацию как инверсию случайная переменная Уишарта. Поскольку шкалы и гиперпараметры степеней свободы среди инверсии, Уишарт и обратные гамма распределения не равны, можно настроить их при помощи записи через точку. Например, чтобы достигнуть 10 степеней свободы для обратной гамма интерпретации, установите инверсию степени свободы Уишарта на 20.
PriorMdl.DoF = 20
PriorMdl = semiconjugatebvarm 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) Создают Нормального Обратного Уишарта Полусопряженная Предшествующая Модель, рассматривают, исключая задержки 2 и 3 из модели.
Вы не можете исключить содействующие матрицы из моделей, но можно задать высокую предшествующую плотность на нуле для коэффициентов, которые вы хотите исключить.
Создайте полусопряженную предшествующую модель для 3-D VAR (4) параметры модели. Задайте имена переменной отклика.
По умолчанию коэффициент AR предшествующие средние значения является нулем. Задайте высокие значения плотности для задержек 2 и 3 путем установки их предшествующих отклонений на 1e-6
. Оставьте все другие содействующие значения плотности в их значениях по умолчанию:
1 для содействующих отклонений AR
1e3
для постоянных векторных отклонений
0 для всех содействующих ковариаций
numseries = 3; numlags = 4; seriesnames = ["INFL"; "UNRATE"; "FEDFUNDS"]; vPhi1 = ones(numseries,numseries); vPhi2 = 1e-6*ones(numseries,numseries); vPhi3 = 1e-6*ones(numseries,numseries); vPhi4 = ones(numseries,numseries); vc = 1e3*ones(3,1); Vmat = [vPhi1 vPhi2 vPhi3 vPhi4 vc]'; V = diag(Vmat(:)); PriorMdl = semiconjugatebvarm(numseries,numlags,'SeriesNames',seriesnames,... 'V',V)
PriorMdl = semiconjugatebvarm 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: [39x39 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]
Считайте 2D модель VARX(1) для США действительным GDP (RGDP
) и инвестиции (GCE
) уровни, который обрабатывает персональное потребление (PCEC
) уровень как внешний:
\forall , серия независимых 2D нормальных инноваций со средним значением 0 и ковариация . Примите следующие предшествующие распределения:
, где 8 1 вектор средних значений и ковариационная матрица 4 на 4.
, где Ω является матрицей шкалы 2 на 2 и степени свободы.
Создайте полусопряженную предшествующую модель для 2D VARX (1) параметры модели.
numseries = 2;
numlags = 1;
numpredictors = 1;
PriorMdl = semiconjugatebvarm(numseries,numlags,'NumPredictors',numpredictors)
PriorMdl = semiconjugatebvarm 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: [8x8 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
semiconjugatebvarm
опции позволяют вам задать предшествующие гиперзначения параметров непосредственно, но bayesvarm
опции хорошо подходят для настройки гиперпараметров в соответствии с Миннесотским методом регуляризации.
Полагайте, что 3-D модель VAR (4) Создает Нормального Обратного Уишарта Полусопряженная Предшествующая Модель. Модель содержит 39 коэффициентов. Для содействующей разреженности создайте полусопряженную модель Bayesian VAR при помощи bayesvarm
. Задайте следующее, априорно:
Каждый ответ является моделью AR (1), в среднем, с задержкой 1 коэффициент 0.75.
Предшествующие коэффициенты самозадержки имеют отклонение 100. Эта большая установка отклонения позволяет данным влиять на следующие больше, чем предшествующее.
Предшествующие коэффициенты перекрестной задержки имеют отклонение 1. Эта маленькая установка отклонения сжимает коэффициенты перекрестной задержки, чтобы обнулить во время оценки.
Предшествующее содействующее затухание ковариаций с увеличивающейся задержкой на уровне 2 (то есть, более низкие задержки более важны, чем более высокие задержки).
numseries = 3; numlags = 4; seriesnames = ["INFL"; "UNRATE"; "FEDFUNDS"]; PriorMdl = bayesvarm(numseries,numlags,'ModelType','semiconjugate',... 'Center',0.75,'SelfLag',100,'CrossLag',1,'Decay',2,'SeriesNames',seriesnames)
PriorMdl = semiconjugatebvarm 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: [39x39 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
Отобразите тепловую карту предшествующих содействующих ковариаций для каждого уравнения ответа.
numexocoeffseqn = PriorMdl.IncludeConstant + ... PriorMdl.IncludeTrend + PriorMdl.NumPredictors; % Number of exogenous coefficients per equation numcoeffseqn = PriorMdl.NumSeries*PriorMdl.P + numexocoeffseqn; % Total number of coefficients per equation arcoeffnames = strings(numseries,numlags,numseries); for j = 1:numseries % Equations for r = 1:numlags for k = 1:numseries % Response Variables arcoeffnames(k,r,j) = "\phi_{"+r+","+j+k+"}"; end end arcoeffseqn = arcoeffnames(:,:,j); idx = ((j-1)*numcoeffseqn + 1):(numcoeffseqn*j) - numexocoeffseqn; Veqn = PriorMdl.V(idx,idx); figure heatmap(arcoeffseqn(:),arcoeffseqn(:),Veqn); title(sprintf('Equation of %s',seriesnames(j))) end
Полагайте, что 3-D модель VAR (4) Создает Нормального Обратного Уишарта Полусопряженная Предшествующая Модель. Оцените апостериорное распределение и сгенерируйте прогнозы от соответствующего следующего прогнозирующего распределения.
Загрузите и предварительно обработайте данные
Загрузите США макроэкономический набор данных. Вычислите уровень инфляции. Постройте весь ряд ответа.
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);
Создайте предшествующую модель
Создайте полусопряженный Байесов VAR (4) предшествующая модель для трех рядов ответа. Задайте имена переменной отклика.
numseries = numel(seriesnames);
numlags = 4;
PriorMdl = semiconjugatebvarm(numseries,numlags,'SeriesNames',seriesnames);
Оцените апостериорное распределение
Оцените апостериорное распределение путем передачи предшествующего и целого ряда данных модели estimate
.
rng(1); % For reproducibility PosteriorMdl = estimate(PriorMdl,rmDataTable{:,seriesnames},'Display','equation');
Bayesian VAR under semiconjugate 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.1267 -0.4545 0.1032 0.3197 -0.0536 0.0452 0.4210 0.2690 0.0532 0.0183 -0.1790 0.0075 0.1062 | (0.0743) (0.1466) (0.0382) (0.0852) (0.1549) (0.0402) (0.0836) (0.1542) (0.0416) (0.0868) (0.1460) (0.0379) (0.0811) DUNRATE | -0.0227 0.4551 0.0365 0.0928 0.2390 0.0521 -0.0353 0.0517 -0.0002 0.0292 -0.1774 0.0087 -0.0549 | (0.0409) (0.0808) (0.0211) (0.0461) (0.0874) (0.0222) (0.0461) (0.0855) (0.0232) (0.0481) (0.0812) (0.0212) (0.0449) DFEDFUNDS | -0.1489 -1.3020 -0.2713 0.3211 -0.2940 -0.3004 0.2550 -0.6893 0.0155 -0.0680 0.1282 -0.1341 -0.3816 | (0.1537) (0.3013) (0.0801) (0.1773) (0.3162) (0.0849) (0.1748) (0.3165) (0.0884) (0.1821) (0.3001) (0.0799) (0.1679) Innovations Covariance Matrix | INFL DUNRATE DFEDFUNDS ------------------------------------------- INFL | 0.2868 -0.0201 0.1464 | (0.0292) (0.0115) (0.0455) DUNRATE | -0.0201 0.0878 -0.1336 | (0.0115) (0.0090) (0.0264) DFEDFUNDS | 0.1464 -0.1336 1.2978 | (0.0455) (0.0264) (0.1327)
Поскольку предшествующее полусопряжено для вероятности данных, безусловное следующее аналитически тяжело. estimate
использует сэмплер Гиббса, чтобы чертить от безусловных апостериорных распределений. Поэтому PosteriorMdl
empiricalbvarm
объект. По умолчанию, estimate
использует первые четыре наблюдения в качестве предварительной выборки, чтобы инициализировать модель.
Сгенерируйте прогнозы от следующего прогнозирующего распределения
От следующего прогнозирующего распределения сгенерируйте прогнозы более чем горизонт 2D года. Поскольку выборка от следующего прогнозирующего распределения требует целого набора данных, задайте предшествующую модель в 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)
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 на (mp + r + 2) вектор, и Z t является m-by-m матрица диагонали блока (mp + r + 2)
где 0z является 1 на (mp + r + 2) нулевой вектор.
, который является (mp + r + 2)-by-m случайная матрица коэффициентов и m (mp + r + 2)-by-1 векторный λ = vec (Λ).
εt является m-by-1 вектор случайных, последовательно некоррелированых, многомерных нормальных инноваций с нулевым вектором для среднего значения и m-by-m матрица Σ для ковариации. Это предположение подразумевает, что вероятность данных
где f является m - размерная многомерная нормальная плотность со средним z t Λ и ковариация Σ, оцененный в y t.
Прежде, чем рассмотреть данные, вы налагаете предположение joint prior distribution на (Λ,Σ), которым управляет распределение π (Λ,Σ). В Байесовом анализе распределение параметров обновляется с информацией о параметрах, полученных из вероятности данных. Результатом является π joint posterior distribution (Λ,Σ | Y, X, Y 0), где:
Y является T-by-m матрица, содержащая целый ряд ответа {y t}, t = 1, …, T.
X является T-by-m матрица, содержащая целый внешний ряд {x t}, t = 1, …, T.
Y 0 является p-by-m, матрица преддемонстрационных данных раньше инициализировала модель VAR для оценки.
independent , normal-inverse-Wishart semiconjugate model является m-D модель Bayesian VAR, в которой условное предшествующее распределение λ |Σ многомерен нормальный со средним векторным μ и ковариационной матрицей V. Предшествующим распределением Σ является обратный Уишарт с матрицей шкалы Ω и степени свободы ν.
Символически:
где:
μ = Mu
.
V = V
.
r = NumPredictors
.
1c 1 если IncludeConstant
верно, и 0 в противном случае.
1δ 1 если IncludeTrend
верно, и 0 в противном случае.
Апостериорные распределения аналитически тяжелы, но полное условное последующее поколение послушно.
где
MATLAB® получает безусловные выборки апостериорного распределения при помощи сэмплера Гиббса.
[1] Литтермен, Роберт Б., "Предсказывающий с Байесовыми Векторными Авторегрессиями: Пять Лет опыта". Журнал Бизнес-и Экономической статистики 4, № 1 (январь 1986): 25–38. https://doi.org/10.2307/1391384.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.