mixconjugateblm

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

Описание

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

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

Создание

Синтаксис

PriorMdl = mixconjugateblm(NumPredictors)
PriorMdl = mixconjugateblm(NumPredictors,Name,Value)

Описание

пример

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 набора данных предиктора, который вы задаете во время оценки, симуляции или прогнозирования.

Значением по умолчанию является {'Beta(1)','Beta(2),...,Beta(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 указывает, что переменная VarNames (k) включена в модель, и γk = 0 указывает, что переменная исключена из модели.

Если Probability является числовым вектором:

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

  • Для k = 1, …, K, априорная вероятность для исключения переменной k равняется 1 – Probability(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);

Предшествующее распределение каждого коэффициента является смесью двух 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;
plot(PosteriorMdl.Sigma2Draws);
title('Sigma2');

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

Полагайте, что модель линейной регрессии в Создает Предшествующую Модель для 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. Примите, что и (сопряженная модель смеси). Задайте количество предикторов p имена коэффициентов регрессии и пользовательское распределение априорной вероятности режимов переменного включения.

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

Реализуйте SSVS путем оценки крайних апостериорных распределений и. Поскольку 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

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

Для просмотра документации необходимо авторизоваться на сайте