mixconjugateblm

Байесова модель линейной регрессии с сопряженным уголовным прошлым для стохастического поискового выбора переменной (SSVS)

Описание

Байесов объект модели линейной регрессии mixconjugateblm задает объединенное предшествующее распределение коэффициентов регрессии и отклонения воздействия (β, σ2) для реализации SSVS (см. [1] и [2]), принятие β и σ2 зависимые случайные переменные.

В общем случае, когда вы создаете Байесов объект модели линейной регрессии, он задает объединенное предшествующее распределение и характеристики модели линейной регрессии только. Таким образом, объект модели является шаблоном, предназначенным для дальнейшего использования. А именно, чтобы включить данные в модель для анализа апостериорного распределения и выбора признаков, передайте объект модели и данные к соответствующей объектной функции.

Создание

Описание

пример

PriorMdl = mixconjugateblm(NumPredictors) создает Байесов объект модели линейной регрессии (PriorMdl) состоявший из NumPredictors предикторы и точка пересечения и наборы NumPredictors свойство. Объединенное предшествующее распределение (β, σ2) подходит для реализации SSVS для выбора предиктора [2]. PriorMdl шаблон, который задает предшествующие распределения и размерность β.

пример

PriorMdl = mixconjugateblm(NumPredictors,Name,Value) свойства наборов (кроме NumPredictors) использование аргументов пары "имя-значение". Заключите каждое имя свойства в кавычки. Например, mixconjugateblm(3,'Probability',abs(rand(4,1))) задает случайные предшествующие вероятности режима для всех четырех коэффициентов в модели.

Свойства

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

Можно установить перезаписываемые значения свойств, когда вы создаете объект модели при помощи синтаксиса аргумента пары "имя-значение", или после того, как вы создаете объект модели при помощи записи через точку. Например, чтобы исключить точку пересечения из модели, войти

PriorMdl.Intercept = false;

Количество переменных предикторов в Байесовой модели многофакторной линейной регрессии в виде неотрицательного целого числа.

NumPredictors должен совпасть с количеством столбцов в ваших данных о предикторе, которые вы задаете во время оценки модели или симуляции.

При определении NumPredictors, исключите любой термин точки пересечения для значения.

После создания модели, если вы изменяете значения NumPredictors с помощью записи через точку затем эти параметры возвращаются к значениям по умолчанию:

  • Имена переменных (VarNames)

  • Предшествующее среднее значение β (Mu)

  • Предшествующие отклонения β для каждого режима (V)

  • Предшествующая корреляционная матрица β (Correlation)

  • Предшествующие вероятности режима (Probability)

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

Отметьте для включения точки пересечения модели регрессии в виде значения в этой таблице.

ЗначениеОписание
falseИсключите точку пересечения из модели регрессии. Поэтому β является p- размерный вектор, где p значение NumPredictors.
trueВключайте точку пересечения в модель регрессии. Поэтому β (p + 1) - размерный вектор. Эта спецификация заставляет T-by-1 вектор из единиц предварительно ожидаться к данным о предикторе во время оценки и симуляции.

Если вы включаете столбец из единиц в данных о предикторе для термина точки пересечения, то установленный Intercept к false.

Пример: 'Intercept',false

Типы данных: логический

Переменный предиктор называет для отображений в виде вектора строки или вектора ячейки из векторов символов. VarNames должен содержать NumPredictors элементы. VarNames (j) имя переменной в столбце j из набора данных предиктора, который вы задаете во время оценки, симуляции или прогнозирования.

Значением по умолчанию является {'Бета (1)', 'Бета (2)..., Бета (p)}, где p значение NumPredictors.

Пример: 'VarNames',["UnemploymentRate"; "CPI"]

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

Покомпонентно означайте гиперпараметр Гауссовой смеси, предшествующей на β в виде (Intercept + NumPredictors)-by-2 числовая матрица. Первый столбец содержит предшествующие средние значения для 1 компонента (режим переменного включения, то есть, γ = 1). Второй столбец содержит предшествующие средние значения для 2 компонента (режим переменного исключения, то есть, γ = 0).

  • Если Intercept false, затем Mu имеет NumPredictors 'Строки' . mixconjugateblm устанавливает предшествующее среднее значение NumPredictors коэффициенты, соответствующие столбцам в наборе данных предиктора, который вы задаете во время оценки, симуляции или прогнозирования.

  • В противном случае, Mu имеет NumPredictors + 1 элементы. Первый элемент соответствует предшествующим средним значениям точки пересечения, и все другие элементы соответствуют переменным предикторам.

Совет

Чтобы выполнить SSVS, используйте значение по умолчанию Mu.

Пример: В модели с 3 коэффициентами, 'Mu',[0.5 0; 0.5 0; 0.5 0] устанавливает 1 предшествующее среднее значение компонента всех коэффициентов к 0.5 и устанавливает 2 предшествующих средних значения компонента всех коэффициентов к 0.

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

Покомпонентный гиперпараметр фактора отклонения Гауссовой смеси, предшествующей на β, (Intercept + NumPredictors)-by-2 положительная числовая матрица. Первый столбец содержит предшествующие факторы отклонения для 1 компонента (режим переменного включения, то есть, γ = 1). Второй столбец содержит предшествующие факторы отклонения для 2 компонента (режим переменного исключения, то есть, γ = 0). Независимо от режима или коэффициента, предшествующее отклонение коэффициента является временами фактора отклонения σ2.

  • Если Intercept false, затем V имеет NumPredictors 'Строки' . mixconjugateblm устанавливается предшествующий коэффициент отклонения NumPredictors коэффициенты, соответствующие столбцам в наборе данных предиктора, который вы задаете во время оценки, симуляции или прогнозирования.

  • В противном случае, V имеет NumPredictors + 1 элементы. Первый элемент соответствует предшествующему фактору отклонения точки пересечения, и все другие элементы соответствуют переменным предикторам.

Совет

  • Чтобы выполнить SSVS, задайте больший фактор отклонения для режима 1, чем для режима 2 (для всего j, задайте V (j,1) > V (j,2)).

  • Для получения дополнительной информации о какой значение задать для V, см. [1].

Пример: В модели с 3 коэффициентами, 'V',[100 1; 100 1; 100 1] устанавливается 1 предшествующий коэффициент отклонения компонента всех коэффициентов к 100 и устанавливается 2 предшествующих коэффициента отклонения компонента всех коэффициентов к 1.

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

Априорное распределение вероятностей для переменных режимов включения и исключения в виде (Intercept + NumPredictors)-by-1 числовой вектор из значений в [0,1] или указателя на функцию в форме @fcnName, где fcnName имя функции. Probability представляет априорное распределение вероятностей γ = {γ 1, …, γK}, где:

  • K = Intercept + NumPredictors, который является количеством коэффициентов в модели регрессии.

  • γk ∈ {0,1} для k = 1, …, K. Поэтому выборочное пространство имеет кардинальность 2K.

  • γk = 1 указывает на переменную VarNamesK) включен в модель, и γk = 0 указывает, что переменная исключена из модели.

Если Probability числовой вектор:

  • Строки соответствуют именам переменных в VarNames. Для моделей, содержащих точку пересечения, априорной вероятностью для включения точки пересечения является Probability(1).

  • Для k = 1, …, K, априорная вероятность для исключения переменной k 1 – Вероятность (k).

  • Априорные вероятности режима переменного включения, среди всех переменных и точки пересечения, независимы.

Если Probability указатель на функцию, затем он представляет пользовательское предшествующее распределение вероятностей режима переменного включения. Соответствующая функция должна иметь этот оператор объявления (имена аргумента, и имена функций могут варьироваться):

logprob = regimeprior(varinc)

  • logprob числовой скаляр, представляющий журнал предшествующего распределения. Можно записать предшествующему распределению до коэффициента пропорциональности.

  • varinc K-by-1 логический вектор. Элементы соответствуют именам переменных в VarNames и укажите на режим, в котором существует соответствующая переменная. varinc (k) = true указывает на VarName (k) включен в модель и varinc (k) = false указывает, что это исключено из модели.

Можно включать больше входных параметров, но они должны быть известны, когда вы вызываете mixconjugateblm.

Для получения дополнительной информации, на какой значение задать для Probability, см. [1].

Пример: В модели с 3 коэффициентами, 'Probability',rand(3,1) определяет случайные предшествующие вероятности переменного включения каждому коэффициенту.

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

Предшествующая корреляционная матрица β для обоих компонентов в модели смеси в виде (Intercept + NumPredictors) (Intercept + NumPredictors) числовая, положительная определенная матрица. Следовательно, предшествующая ковариационная матрица для j компонента в смеси модель является sigma2*diag (sqrt (V (: J))) *Correlation*diag (sqrt (V (: J))), где sigma2 σ2 и V матрица содействующих факторов отклонения.

Строки и столбцы соответствуют именам переменных в VarNames.

По умолчанию коэффициенты регрессии являются некоррелироваными, условными на режиме.

Примечание

Можно предоставить любую соответственно размерную числовую матрицу. Однако, если ваша спецификация не положительна определенный, mixconjugateblm выдает предупреждение и заменяет вашу спецификацию на CorrelationPD, где:

CorrelationPD = 0.5*(Correlation + Correlation.');

Для получения дополнительной информации, на какой значение задать для Correlation, см. [1].

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

Сформируйте гиперпараметр обратной гаммы, предшествующей на σ2В виде числового скаляра.

A должен быть, по крайней мере, –(Intercept + NumPredictors)/2.

С B сохраненный зафиксированный, обратное гамма распределение становится более высоким и более сконцентрированным как A увеличения. Эта характеристика взвешивает предшествующую модель σ2 в большей степени, чем вероятность во время следующей оценки.

Для функциональной формы обратного гамма распределения смотрите Аналитически Послушное Последующее поколение.

Пример: 'A',0.1

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

Масштабный коэффициент обратной гаммы, предшествующей на σ2В виде положительной скалярной величины или Inf.

С A сохраненный зафиксированный, обратное гамма распределение становится более высоким и более сконцентрированным как B увеличения. Эта характеристика взвешивает предшествующую модель σ2 в большей степени, чем вероятность во время следующей оценки.

Пример: 'B',5

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

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

estimateВыполните выбор переменного предиктора для Байесовых моделей линейной регрессии
simulateСимулируйте коэффициенты регрессии и отклонение воздействия Байесовой модели линейной регрессии
forecastПредскажите ответы Байесовой модели линейной регрессии
plotВизуализируйте предшествующую и следующую плотность Байесовых параметров модели линейной регрессии
summarizeСтатистика сводных данных распределения Байесовой модели линейной регрессии для выбора переменного предиктора

Примеры

свернуть все

Рассмотрите модель линейной регрессии, которая предсказывает США действительный валовой национальный продукт (GNPR) использование линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и действительная заработная плата (WR).

GNPRt=β0+β1IPIt+β2Et+β3WRt+εt.

\forall t, εt серия независимых Гауссовых воздействий со средним значением 0 и отклонение σ2.

Примите эти предшествующие распределения для k = 0,...,3:

  • βk|σ2,γk=γkσVk1Z1+(1-γk)σVk2Z2, где Z1 и Z2 независимые, стандартные нормальные случайные переменные. Поэтому коэффициенты имеют Гауссово распределение смеси. Примите, что все коэффициенты условно независимы, априорно, но они зависят от отклонения воздействия.

  • σ2IG(A,B). A и B форма и шкала, соответственно, обратного гамма распределения.

  • γk{0,1}и это представляет переменную режима включения случайной переменной дискретным равномерным распределением.

Создайте предшествующую модель для SSVS. Задайте количество предикторов p.

p = 3;
PriorMdl = mixconjugateblm(p);

PriorMdl mixconjugateblm Байесов объект модели линейной регрессии, представляющий предшествующее распределение коэффициентов регрессии и отклонения воздействия. mixconjugateblm отображает сводные данные предшествующих распределений в командной строке.

В качестве альтернативы можно создать предшествующую модель для SSVS путем передачи количества предикторов к bayeslm и установка ModelType аргумент пары "имя-значение" 'mixconjugate'.

MdlBayesLM = bayeslm(p,'ModelType','mixconjugate')
MdlBayesLM = 
  mixconjugateblm with properties:

    NumPredictors: 3
        Intercept: 1
         VarNames: {4x1 cell}
               Mu: [4x2 double]
                V: [4x2 double]
      Probability: [4x1 double]
      Correlation: [4x4 double]
                A: 3
                B: 1

 
           |  Mean     Std         CI95        Positive      Distribution     
------------------------------------------------------------------------------
 Intercept |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 Beta(1)   |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 Beta(2)   |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 Beta(3)   |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 Sigma2    | 0.5000  0.5000  [ 0.138,  1.616]    1.000   IG(3.00,    1)       
 

Mdl и MdlBayesLM эквивалентные объекты модели.

Можно установить перезаписываемые значения свойств созданных моделей с помощью записи через точку. Определите имена коэффициента регрессии к соответствующим именам переменных.

PriorMdl.VarNames = ["IPI" "E" "WR"]
PriorMdl = 
  mixconjugateblm with properties:

    NumPredictors: 3
        Intercept: 1
         VarNames: {4x1 cell}
               Mu: [4x2 double]
                V: [4x2 double]
      Probability: [4x1 double]
      Correlation: [4x4 double]
                A: 3
                B: 1

 
           |  Mean     Std         CI95        Positive      Distribution     
------------------------------------------------------------------------------
 Intercept |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 IPI       |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 E         |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 WR        |  0      1.5890  [-3.547,  3.547]    0.500   Mixture distribution 
 Sigma2    | 0.5000  0.5000  [ 0.138,  1.616]    1.000   IG(3.00,    1)       
 

MATLAB® сопоставляет имена переменных к коэффициентам регрессии в отображениях.

Постройте предшествующие распределения.

plot(PriorMdl);

Figure contains 5 axes objects. Axes object 1 with title Intercept contains an object of type line. Axes object 2 with title IPI contains an object of type line. Axes object 3 with title E contains an object of type line. Axes object 4 with title WR contains an object of type line. Axes object 5 with title Sigma2 contains an object of type line.

Предшествующее распределение каждого коэффициента является смесью двух Gaussians: оба компонента имеют среднее значение нуля, но 1 компонента имеет большое отклонение относительно 2 компонента. Поэтому их распределения сосредоточены в нуле и имеют внешний вид скачка-и-плиты.

Полагайте, что модель линейной регрессии в Создает Предшествующую Модель для SSVS.

Создайте предшествующую модель для выполнения SSVS. AssumeThat β и σ2 зависят (сопряженная модель смеси). Задайте количество предикторов p и имена коэффициентов регрессии.

p = 3;
PriorMdl = mixconjugateblm(p,'VarNames',["IPI" "E" "WR"]);

Отобразите предшествующие вероятности режима и Гауссовы факторы отклонения смеси предшествующего β.

priorProbabilities = table(PriorMdl.Probability,'RowNames',PriorMdl.VarNames,...
    'VariableNames',"Probability")
priorProbabilities=4×1 table
                 Probability
                 ___________

    Intercept        0.5    
    IPI              0.5    
    E                0.5    
    WR               0.5    

priorV = array2table(PriorMdl.V,'RowNames',PriorMdl.VarNames,...
    'VariableNames',["gammaIs1" "gammaIs0"])
priorV=4×2 table
                 gammaIs1    gammaIs0
                 ________    ________

    Intercept       10         0.1   
    IPI             10         0.1   
    E               10         0.1   
    WR              10         0.1   

PriorMdl хранит предшествующие вероятности режима в Probability свойство и отклонение режима включают V свойство. Априорная вероятность по умолчанию переменного включения 0.5. Факторы отклонения по умолчанию для каждого коэффициента 10 для режима переменного включения и 0.01 для режима переменного исключения.

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда предиктора и ответа.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable{:,'GNPR'};

Реализуйте SSVS путем оценки крайних апостериорных распределений β и σ2. Поскольку SSVS использует Цепь Маркова Монте-Карло (MCMC) для оценки, установите seed случайных чисел воспроизводить результаты.

rng(1);
PosteriorMdl = estimate(PriorMdl,X,y);
Method: MCMC sampling with 10000 draws
Number of observations: 62
Number of predictors:   4
 
           |   Mean      Std           CI95        Positive  Distribution  Regime 
----------------------------------------------------------------------------------
 Intercept | -18.8333  10.1851  [-36.965,  0.716]    0.037     Empirical   0.8806 
 IPI       |   4.4554   0.1543   [ 4.165,  4.764]    1.000     Empirical   0.4545 
 E         |   0.0010   0.0004   [ 0.000,  0.002]    0.997     Empirical   0.0925 
 WR        |   2.4686   0.3615   [ 1.766,  3.197]    1.000     Empirical   0.1734 
 Sigma2    |  47.7557   8.6551   [33.858, 66.875]    1.000     Empirical    NaN   
 

PosteriorMdl empiricalblm объект модели, из которого хранилища чертят от апостериорных распределений β и σ2 учитывая данные. estimate отображает сводные данные крайних апостериорных распределений в командной строке. Строки сводных данных соответствуют коэффициентам регрессии и отклонению воздействия, и столбцы соответствуют характеристикам апостериорного распределения. Характеристики включают:

  • CI95, который содержит 95%-е Байесовы equitailed вероятные интервалы для параметров. Например, апостериорная вероятность, что коэффициент регрессии E (стандартизированный) находится в [0.000, 0.002] 0.95.

  • Regime, который содержит крайнюю апостериорную вероятность переменного включения (γ=1 для переменной). Например, апостериорная вероятность, что E должен быть включен в модель, 0.0925.

Принятие, это переменные с Regime <0.1 должен быть удален из модели, результаты предполагают, что можно исключить уровень безработицы из модели.

По умолчанию, estimate чертит и отбрасывает выборку выжигания дефектов размера 5000. Однако хорошая практика должна смотреть график трассировки ничьих для соответствующего смешивания и отсутствия быстротечности. Постройте график трассировки ничьих для каждого параметра. Можно получить доступ к ничьим, которые составляют распределение (свойства BetaDraws и Sigma2Draws) использование записи через точку.

figure;
for j = 1:(p + 1)
    subplot(2,2,j);
    plot(PosteriorMdl.BetaDraws(j,:));
    title(sprintf('%s',PosteriorMdl.VarNames{j}));
end

Figure contains 4 axes objects. Axes object 1 with title Intercept contains an object of type line. Axes object 2 with title IPI contains an object of type line. Axes object 3 with title E contains an object of type line. Axes object 4 with title WR contains an object of type line.

figure;
plot(PosteriorMdl.Sigma2Draws);
title('Sigma2');

Figure contains an axes object. The axes object with title Sigma2 contains an object of type line.

Графики трассировки показывают, что ничьи, кажется, смешиваются хорошо. Графики не показывают обнаруживаемой быстротечности или последовательной корреляции, и ничьи не переходят между состояниями.

Полагайте, что модель линейной регрессии в Создает Предшествующую Модель для SSVS.

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда предиктора и ответа. Добавьте специфичные для примера файлы в путь MATLAB®.

load Data_NelsonPlosser
VarNames = ["IPI" "E" "WR"];
X = DataTable{:,VarNames};
y = DataTable{:,"GNPR"};

path = fullfile(matlabroot,'examples','econ','main');
addpath(path);

Примите следующее:

  • Точка пересечения находится в модели с вероятностью 0.9.

  • IPI и E находятся в модели с вероятностью 0.75.

  • Если E включен в модель, затем вероятность что WR включен в модель, 0.9.

  • Если E исключен из модели, затем вероятность что WR включен 0.25.

Объявите функцию с именем priorssvsexample.m это:

  • Принимает логический вектор, указывающий, являются ли точка пересечения и переменные в модели (true для включения модели). Элемент 1 соответствует точке пересечения, и остальная часть элементов соответствует переменным в данных.

  • Возвращает числовой скаляр, представляющий журнал описанного предшествующего вероятностного распределения режима.

function logprior = priorssvsexample(varinc)
%PRIORSSVSEXAMPLE Log prior regime probability distribution for SSVS
%   PRIORSSVSEXAMPLE is an example of a custom log prior regime probability
%   distribution for SSVS with dependent random variables. varinc is
%   a 4-by-1 logical vector indicating whether 4 coefficients are in a model
%   and logPrior is a numeric scalar representing the log of the prior
%   distribution of the regime probabilities.
%   
%   Coefficients enter a model according to these rules:
%       * varinc(1) is included with probability 0.9.
%       * varinc(2) and varinc(3) are in the model with probability 0.75.
%       * If varinc(3) is included in the model, then the probability that
%       varinc(4) is included in the model is 0.9.
%       * If varinc(3) is excluded from the model, then the probability
%       that varinc(4) is included is 0.25.

logprior = log(0.9) + 2*log(0.75) + log(varinc(3)*0.9 + (1-varinc(3))*0.25);

end


priorssvsexample.m специфичный для примера файл, включенный с Econometrics Toolbox™. Чтобы получить доступ к нему, введите edit priorssvsexample.m в командной строке.

Создайте предшествующую модель для выполнения SSVS. Примите, что$\beta$ и$\sigma^2$ (сопряженная модель смеси). Задайте количество предикторов p имена коэффициентов регрессии, и пользовательский, априорное распределение вероятностей режимов переменного включения.

p = 3;
PriorMdl = mixconjugateblm(p,'VarNames',["IPI" "E" "WR"],...
    'Probability',@priorssvsexample);

Реализуйте SSVS путем оценки крайних апостериорных распределений$\beta$ и$\sigma^2$. Поскольку SSVS использует MCMC для оценки, установите seed случайных чисел воспроизводить результаты.

rng(1);
PosteriorMdl = estimate(PriorMdl,X,y);
Method: MCMC sampling with 10000 draws
Number of observations: 62
Number of predictors:   4
 
           |   Mean      Std           CI95        Positive  Distribution  Regime 
----------------------------------------------------------------------------------
 Intercept | -18.7971  10.1644  [-37.002,  0.765]    0.039     Empirical   0.8797 
 IPI       |   4.4559   0.1530   [ 4.166,  4.760]    1.000     Empirical   0.4623 
 E         |   0.0010   0.0004   [ 0.000,  0.002]    0.997     Empirical   0.2665 
 WR        |   2.4684   0.3618   [ 1.759,  3.196]    1.000     Empirical   0.1727 
 Sigma2    |  47.7391   8.6741   [33.823, 67.024]    1.000     Empirical    NaN   
 

Принятие, это переменные с Regime <0.1 должен быть удален из модели, результаты предполагают, что можно включать все переменные в модель.

Поскольку этот пример требует path чтобы получить доступ к специфичным для примера файлам, вымойтесь путем удаления path от пути MATLAB®.

rmpath(path);

Полагайте, что модель регрессии в Создает Предшествующую Модель для SSVS.

Выполните SSVS:

  1. Создайте Байесовую модель регрессии для SSVS с сопряженным предшествующим для вероятности данных. Используйте настройки по умолчанию.

  2. Протяните последние 10 периодов данных из оценки.

  3. Оцените крайние апостериорные распределения.

p = 3;
PriorMdl = bayeslm(p,'ModelType','mixconjugate','VarNames',["IPI" "E" "WR"]);

load Data_NelsonPlosser
fhs = 10; % Forecast horizon size
X = DataTable{1:(end - fhs),PriorMdl.VarNames(2:end)};
y = DataTable{1:(end - fhs),'GNPR'};
XF = DataTable{(end - fhs + 1):end,PriorMdl.VarNames(2:end)}; % Future predictor data
yFT = DataTable{(end - fhs + 1):end,'GNPR'};                  % True future responses

rng(1); % For reproducibility
PosteriorMdl = estimate(PriorMdl,X,y,'Display',false);

Предскажите ответы с помощью следующего прогнозирующего распределения и будущих данных о предикторе XF. Постройте истинные значения ответа и предсказанных значений.

yF = forecast(PosteriorMdl,XF);

figure;
plot(dates,DataTable.GNPR);
hold on
plot(dates((end - fhs + 1):end),yF)
h = gca;
hp = patch([dates(end - fhs + 1) dates(end) dates(end) dates(end - fhs + 1)],...
    h.YLim([1,1,2,2]),[0.8 0.8 0.8]);
uistack(hp,'bottom');
legend('Forecast Horizon','True GNPR','Forecasted GNPR','Location','NW')
title('Real Gross National Product: 1909 - 1970');
ylabel('rGNP');
xlabel('Year');
hold off

Figure contains an axes object. The axes object with title Real Gross National Product: 1909 - 1970 contains 3 objects of type patch, line. These objects represent Forecast Horizon, True GNPR, Forecasted GNPR.

yF вектор 10 на 1 из будущих значений действительного GNP, соответствующего будущим данным о предикторе.

Оцените среднеквадратическую ошибку (RMSE) прогноза.

frmse = sqrt(mean((yF - yFT).^2))
frmse = 18.8470

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

Когда вы выполняете Байесовую регрессию с SSVS, лучшая практика должна настроить гиперпараметры. Один способ сделать так состоит в том, чтобы оценить прогноз RMSE по сетке гиперзначений параметров и выбрать значение, которое минимизирует прогноз RMSE.

Больше о

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

Алгоритмы

Следующая закрытая форма существует для сопряженного уголовного прошлого смеси в среде SSVS с коэффициентами K. Однако, потому что предшествующий β |σ2, γ, маргинализованный γ, является 2K- Гауссова смесь компонента, MATLAB® использование MCMC вместо этого к выборке от следующего для числовой устойчивости.

Альтернативная функциональность

bayeslm функция может создать любой поддерживаемый предшествующий объект модели для Байесовой линейной регрессии.

Ссылки

[1] Джордж, E. I. и Р. Э. Маккалок. "Выбор переменной Через Гиббс, Производящий". Журнал американской Статистической Ассоциации. Издание 88, № 423, 1993, стр 881–889.

[2] Koop, G., Д. Дж. Пойрир и Дж. Л. Тобиас. Байесовы эконометрические методы. Нью-Йорк, Нью-Йорк: Издательство Кембриджского университета, 2007.

Введенный в R2018b