exponenta event banner

mixconjugateblm

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

Описание

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

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

Создание

Описание

пример

PriorMdl = mixconjugateblm(NumPredictors) создает объект модели байесовской линейной регрессии (PriorMdl) состоит из NumPredictors предикторы и перехват, и устанавливает NumPredictors собственность. Совместное предварительное распределение (β, start2) подходит для реализации 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

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

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

Значение по умолчанию: {'Beta(1)','Beta(2),...,Beta(p)}, где p - значение NumPredictors.

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

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

Средний по компонентам гиперпараметр гауссовой смеси до β, указанный как (Intercept + NumPredictors) -по-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

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

  • Если 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) -по-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 имеет значение start2 и V - матрица коэффициентов дисперсии коэффициентов.

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

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

Примечание

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

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

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

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

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

A должно быть не менее –(Intercept + NumPredictors)/2.

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

Функциональную форму обратного гамма-распределения см. в разделе Аналитически отслеживаемые апостериоры.

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

Для всех t δ t - это ряд независимых гауссовых возмущений со средним значением 0 и дисперсией start2.

Предположим, что эти предыдущие распределения для k = 0,..., 3:

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

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

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

Создайте предыдущую модель для 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. Axes 1 with title Intercept contains an object of type line. Axes 2 with title IPI contains an object of type line. Axes 3 with title E contains an object of type line. Axes 4 with title WR contains an object of type line. Axes 5 with title Sigma2 contains an object of type line.

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

Рассмотрим модель линейной регрессии в разделе Создание предыдущей модели для SSVS.

Создайте предыдущую модель для выполнения SSVS. Предположим, что β и start2 зависимы (модель сопряженной смеси). Укажите количество предикторов 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 путем оценки краевых задних распределений β и start2. Поскольку SSVS использует цепь Маркова Monte Carlo (MCMC) для оценки, установите начальное число случайных чисел для воспроизведения результатов.

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 объект модели, хранящий черпания из задних распределений β и start2, учитывая данные. estimate отображает сводку по краевым задним распределениям в командной строке. Строки сводки соответствуют коэффициентам регрессии и дисперсии возмущений, а столбцы - характеристикам заднего распределения. Характеристики включают в себя:

  • CI95, который содержит 95% байесовских равных достоверных интервалов для параметров. Например, апостериорная вероятность того, что коэффициент регрессии 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. Axes 1 with title Intercept contains an object of type line. Axes 2 with title IPI contains an object of type line. Axes 3 with title E contains an object of type line. Axes 4 with title WR contains an object of type line.

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

Figure contains an axes. The axes 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 для оценки, установите начальное число случайных чисел для воспроизведения результатов.

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. The axes 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 с коэффициентами К. Однако, поскольку предшествующий β 'start2, γ, маргинализированный γ, является 2K-component гауссовой смесью, MATLAB ® использует MCMC вместо этого для выборки из задней для численной стабильности.

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

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

Ссылки

[1] Джордж, Э. И. и Р. Э. Маккаллох. «Выбор переменной с помощью выборки Гиббса». Журнал Американской статистической ассоциации. т. 88, № 423, 1993, стр. 881-889.

[2] Коуп, Г., Д. Дж. Пуарье и Дж. Л. Тобиас. Байесовские эконометрические методы. Нью-Йорк, Нью-Йорк: Cambridge University Press, 2007.

Представлен в R2018b