bayeslm

Создайте объект байесовской линейной регрессионной модели

Описание

Чтобы создать модель байесовской векторной авторегрессии (VARX) для многомерного анализа временных рядов, см. bayesvarm.

пример

PriorMdl = bayeslm(NumPredictors) создает байесовский объект линейной регрессионной модели (PriorMdl) состоят из NumPredictors предикторы, точка пересечения и диффузное предшествующее распределение соединений для β и σ2. PriorMdl является шаблоном, который задает предыдущие распределения и размерность β.

пример

PriorMdl = bayeslm(NumPredictors,'ModelType',modelType) задает предшествующее распределение соединений modelType для β и σ2. Для этого синтаксиса modelType могут быть:

  • 'conjugate', 'semiconjugate', или 'diffuse' чтобы создать стандартную байесовскую линейную регрессионую предшествующую модель

  • 'mixconjugate', 'mixsemiconjugate', или 'lasso' чтобы создать байесовскую линейную регрессионую предшествующую модель для выбора переменной предиктора

Для примера, 'ModelType','conjugate' задает сопряженные априорные значения для Гауссовой вероятности, то есть β | σ2 как Гауссов, σ2 как обратная гамма.

пример

PriorMdl = bayeslm(NumPredictors,'ModelType',modelType,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера можно задать, включать ли регрессионную точку пересечения или задать дополнительные опции для предыдущего распределения соединений modelType.

  • Если вы задаете 'ModelType','empirical', вы также должны задать BetaDraws и Sigma2Draws Аргументы пары "имя-значение". BetaDraws и Sigma2Draws охарактеризовать соответствующие предыдущие распределения.

  • Если вы задаете 'ModelType','custom', вы также должны задать LogPDF аргумент пары "имя-значение". LogPDF полностью характеризует предшествующее распределение соединений.

Примеры

свернуть все

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

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

Для всех t, εt - серия независимых гауссовских нарушений порядка со средним значением 0 и отклонением σ2.

Предположим, что коэффициенты регрессии β=[β0,...,β3] и отклонение нарушения порядка σ2 являются случайными переменными, и их предыдущие значения и распределение неизвестны. В этом случае используйте неинформативное априорное распределение Джеффериса: соединение априорное пропорционально 1/σ2.

Эти предположения и вероятность данных подразумевают аналитически отслеживаемое апостериорное распределение.

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

p = 3;
Mdl = bayeslm(p)
Mdl = 
  diffuseblm with properties:

    NumPredictors: 3
        Intercept: 1
         VarNames: {4x1 cell}

 
           | Mean  Std        CI95        Positive        Distribution       
-----------------------------------------------------------------------------
 Intercept |  0    Inf  [   NaN,    NaN]    0.500   Proportional to one      
 Beta(1)   |  0    Inf  [   NaN,    NaN]    0.500   Proportional to one      
 Beta(2)   |  0    Inf  [   NaN,    NaN]    0.500   Proportional to one      
 Beta(3)   |  0    Inf  [   NaN,    NaN]    0.500   Proportional to one      
 Sigma2    |  Inf  Inf  [   NaN,    NaN]    1.000   Proportional to 1/Sigma2 
 

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

Если у вас есть данные, то можно оценить характеристики апостериорного распределения, передав предыдущую модель Mdl и данные для estimate.

Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model. Предположим, что эти предыдущие распределения:

  • β|σ2N4(M,V). M является вектором средств 4 на 1, и V является масштабированной 4 на 4 положительно определенной ковариационной матрицей.

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

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

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

p = 3;
Mdl = bayeslm(p,'ModelType','semiconjugate') 
Mdl = 
  semiconjugateblm with properties:

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

 
           |  Mean     Std           CI95         Positive     Distribution    
-------------------------------------------------------------------------------
 Intercept |  0       100    [-195.996, 195.996]    0.500   N (0.00, 100.00^2) 
 Beta(1)   |  0       100    [-195.996, 195.996]    0.500   N (0.00, 100.00^2) 
 Beta(2)   |  0       100    [-195.996, 195.996]    0.500   N (0.00, 100.00^2) 
 Beta(3)   |  0       100    [-195.996, 195.996]    0.500   N (0.00, 100.00^2) 
 Sigma2    | 0.5000  0.5000    [ 0.138,  1.616]     1.000   IG(3.00,    1)     
 

Mdl является semiconjugateblm Байесовский объект линейной регрессионной модели, представляющий предшествующее распределение коэффициентов регрессии и отклонение нарушения порядка. bayeslm отображает сводные данные предыдущих распределений в командной строке. Для примера, элементы Positive представление предыдущей вероятности того, что соответствующий параметр положителен.

Если у вас есть данные, то можно оценить характеристики маргинального или условного апостериорного распределения, передав предыдущую модель Mdl и данные для estimate.

Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model. Предположим, что эти предыдущие распределения:

  • β|σ2N4(M,σ2V). M является вектором средств 4 на 1, и V является масштабированной 4 на 4 положительно определенной ковариационной матрицей. Предположим, у вас есть предшествующие знания, что M=[-2040.12] и V является матрицей тождеств.

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

Эти предположения и вероятность данных подразумевают нормальную-обратную-гамма-сопряженную модель.

Создайте нормально-обратную гамма-сопряженную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p и установите имена коэффициентов регрессии в соответствующие имена переменных.

p = 3;
Mdl = bayeslm(p,'ModelType','conjugate','Mu',[-20; 4; 0.1; 2],'V',eye(4),...
    'VarNames',["IPI" "E" "WR"])
Mdl = 
  conjugateblm with properties:

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

 
           |  Mean     Std          CI95         Positive       Distribution      
----------------------------------------------------------------------------------
 Intercept |  -20    0.7071  [-21.413, -18.587]    0.000   t (-20.00, 0.58^2,  6) 
 IPI       |  4      0.7071   [ 2.587,  5.413]     1.000   t (4.00, 0.58^2,  6)   
 E         | 0.1000  0.7071   [-1.313,  1.513]     0.566   t (0.10, 0.58^2,  6)   
 WR        |  2      0.7071   [ 0.587,  3.413]     0.993   t (2.00, 0.58^2,  6)   
 Sigma2    | 0.5000  0.5000   [ 0.138,  1.616]     1.000   IG(3.00,    1)         
 

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

По умолчанию bayeslm устанавливает форму и шкалу равными 3 и 1, соответственно. Предположим, что вы знаете, что форма и шкала 5 и 2.

Установите предыдущую форму и шкалу σ2 к их принятым значениям.

Mdl.A = 5;
Mdl.B = 2
Mdl = 
  conjugateblm with properties:

    NumPredictors: 3
        Intercept: 1
         VarNames: {4x1 cell}
               Mu: [4x1 double]
                V: [4x4 double]
                A: 5
                B: 2

 
           |  Mean     Std          CI95         Positive       Distribution      
----------------------------------------------------------------------------------
 Intercept |  -20    0.3536  [-20.705, -19.295]    0.000   t (-20.00, 0.32^2, 10) 
 IPI       |  4      0.3536   [ 3.295,  4.705]     1.000   t (4.00, 0.32^2, 10)   
 E         | 0.1000  0.3536   [-0.605,  0.805]     0.621   t (0.10, 0.32^2, 10)   
 WR        |  2      0.3536   [ 1.295,  2.705]     1.000   t (2.00, 0.32^2, 10)   
 Sigma2    | 0.1250  0.0722   [ 0.049,  0.308]     1.000   IG(5.00,    2)         
 

bayeslm обновляет предыдущие сводные данные распределения на основе изменений формы и шкалы.

Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model. Предположим, что эти предыдущие распределения:

  • $\beta_j\vert\sigma^2$ - 4-D t с 50 степенями свободы для каждого компонента и матрица тождеств для корреляционной матрицы. Кроме того, распределение центрируется${\left[ {\begin{array}{*{20}{c}} { - 25}&4&0&3 \end{array}} \right]^\prime }$, и каждый компонент масштабируется соответствующими элементами вектора.${\left[ {\begin{array}{*{20}{c}} {10}&1&1&1 \end{array}} \right]^\prime }$

  • $\sigma^2 \sim IG(3,1)$.

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

Объявите функцию MATLAB ®, которая:

  • Принимает значения$\beta$ и$\sigma^2$ вместе в векторе-столбце и принимает значения гиперпараметров

  • Возвращает значение предыдущего распределения соединений, $\pi\left(\beta,\sigma^2\right)$учитывая значения$\beta$ и $\sigma^2$

function logPDF = priorMVTIG(params,ct,st,dof,C,a,b)
%priorMVTIG Log density of multivariate t times inverse gamma 
%   priorMVTIG passes params(1:end-1) to the multivariate t density
%   function with dof degrees of freedom for each component and positive
%   definite correlation matrix C. priorMVTIG returns the log of the product of
%   the two evaluated densities.
%   
%   params: Parameter values at which the densities are evaluated, an
%           m-by-1 numeric vector.
%
%       ct: Multivariate t distribution component centers, an (m-1)-by-1
%           numeric vector.  Elements correspond to the first m-1 elements
%           of params.
%
%       st: Multivariate t distribution component scales, an (m-1)-by-1
%           numeric (m-1)-by-1 numeric vector.  Elements correspond to the
%           first m-1 elements of params.
%
%      dof: Degrees of freedom for the multivariate t distribution, a
%           numeric scalar or (m-1)-by-1 numeric vector. priorMVTIG expands
%           scalars such that dof = dof*ones(m-1,1). Elements of dof
%           correspond to the elements of params(1:end-1).
%
%        C: Correlation matrix for the multivariate t distribution, an
%           (m-1)-by-(m-1) symmetric, positive definite matrix. Rows and
%           columns correspond to the elements of params(1:end-1).
% 
%        a: Inverse gamma shape parameter, a positive numeric scalar.
%
%        b: Inverse gamma scale parameter, a positive scalar.
%
beta = params(1:(end-1));
sigma2 = params(end);

tVal = (beta - ct)./st;
mvtDensity = mvtpdf(tVal,C,dof);
igDensity = sigma2^(-a-1)*exp(-1/(sigma2*b))/(gamma(a)*b^a);

logPDF = log(mvtDensity*igDensity);
end


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

dof = 50;
C = eye(4);
ct = [-25; 4; 0; 3];
st = [10; 1; 1; 1];
a = 3;
b = 1;
prior = @(params)priorMVTIG(params,ct,st,dof,C,a,b);

Создайте пользовательскую модель предшествующего соединения для параметров линейной регрессии. Задайте количество предикторов p. Кроме того, задайте указатель на функцию для priorMVTIG, и передайте значения гиперзначений параметров.

p = 3;
Mdl = bayeslm(p,'ModelType','custom','LogPDF',prior)
Mdl = 

  customblm with properties:

    NumPredictors: 3
        Intercept: 1
         VarNames: {4x1 cell}
           LogPDF: @(params)priorMVTIG(params,ct,st,dof,C,a,b)

The priors are defined by the function:
    @(params)priorMVTIG(params,ct,st,dof,C,a,b)

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

Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model.

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

  • Для k = 0,..., 3 ,βk|σ2 имеет распределение Laplace со средним значением 0 и шкалой σ2/λ, где λ - параметр усадки. Коэффициенты являются условно независимыми.

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

Создайте предыдущую модель для байесовской линейной регрессии при помощи bayeslm. Задайте количество предикторов p и имена переменных.

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

PriorMdl является lassoblm Байесовский объект линейной регрессионной модели, представляющий предшествующее распределение коэффициентов регрессии и отклонение нарушения порядка. По умолчанию bayeslm атрибуты усадки 0.01 на точку пересечения и 1 к другим коэффициентам в модели.

Используя запись через точку, измените усадки по умолчанию для всех коэффициентов, кроме точки пересечения, задав вектор 3 на 1, содержащий новые значения для Lambda свойство PriorMdl.

  • Атрибут усадки 10 на IPI и WR.

  • Потому что E имеет шкалу, которая на несколько порядков величины больше, чем другие переменные, атрибут усадки 1e5 к нему.

Lambda(2:end) содержит усадки коэффициентов, соответствующих заданным переменным в VarNames свойство PriorMdl.

PriorMdl.Lambda = [10; 1e5; 10]; 

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

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

Выполните регрессию байесовского лассо, передав предыдущую модель и данные в estimate, то есть путем оценки апостериорного распределения β и σ2. Байесовская регрессия лассо использует марковскую цепь Monte Carlo (MCMC) для выборки из апостериорной. Для воспроизводимости установите случайный seed.

rng(1);
PosteriorMdl = estimate(PriorMdl,X,y);
Method: lasso MCMC sampling with 10000 draws
Number of observations: 62
Number of predictors:   4
 
           |   Mean     Std           CI95        Positive  Distribution 
-------------------------------------------------------------------------
 Intercept | -1.3472   6.8160  [-15.169, 11.590]    0.427     Empirical  
 IPI       |  4.4755   0.1646   [ 4.157,  4.799]    1.000     Empirical  
 E         |  0.0001   0.0002   [-0.000,  0.000]    0.796     Empirical  
 WR        |  3.1610   0.3136   [ 2.538,  3.760]    1.000     Empirical  
 Sigma2    | 60.1452  11.1180   [42.319, 85.085]    1.000     Empirical  
 

Постройте график апостериорных распределений.

plot(PosteriorMdl)

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.

Учитывая усадку 10, распределение E довольно плотный около 0. Поэтому E возможно, не является важным предиктором.

Входные параметры

свернуть все

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

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

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

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'ModelType','conjugate','Mu',1:3,'V',1000*eye(3),'A',1,'B',0.5 задает, что предшествующее распределение Beta заданные Sigma2 является Гауссовым со вектором средних значений 1:3 и ковариационная матрица Sigma2*1000*eye(3)и распределение Sigma2 - обратная гамма с формой 1 и масштабные 0.5.
Опции для всех предыдущих распределений

свернуть все

Предварительное распределение соединений (β, σ2), заданная как разделенная разделенными запятой парами, состоящая из 'ModelType' и значение в следующих таблицах.

Для стандартной байесовской регрессионой модели выберите значение в этой таблице.

ЗначениеОписание
'conjugate'

Нормальная-обратная-гамма-сопряженная модель

  • Предыдущие распределения

    β|σ2~Np+1(μ,σ2V).σ2~IG(A,B).

    β и σ2 являются зависимыми.

  • Соответствующие маргинальные и условные апостериорные распределения имеют закрытые формы (см. «Аналитически отслеживаемые апостериоры»).

Можно настроить соответствующие гиперпараметры, используя Mu, V, A, и B Аргументы пары "имя-значение".

'semiconjugate'

Normal-reverse-gamma semiconjugate модель

  • Предыдущие распределения

    β|σ2~Np+1(μ,V).σ2~IG(A,B).

    β и σ2 являются независимыми.

  • Соответствующее маргинальное апостериорное распределение не имеет закрытой формы, но условные апостериорные распределения имеют (см. «Аналитически отслеживаемые апостериоры»).

Можно настроить соответствующие гиперпараметры, используя Mu, V, A, и B Аргументы пары "имя-значение".

'diffuse'

Диффузные предыдущие распределения

'empirical'

Пользовательские предыдущие распределения

  • Вы также должны задать BetaDraws и Sigma2Draws Аргументы пары "имя-значение".

  • Соответствующие маргинальные и условные апостериорные распределения не имеют закрытых форм.

  • Эмпирические модели лучше подходят для обновления апостериорного распределения на основе новых данных.

'custom'

Пользовательские предыдущие распределения

  • Вы также должны задать LogPDF аргумент пары "имя-значение".

  • Соответствующие маргинальные и условные апостериорные распределения не имеют закрытых форм.

Для байесовской регрессионой модели, которая выполняет выбор переменной предиктора, выберите значение в этой таблице.

ЗначениеОписание
'mixconjugate'

Выбор стохастической поисковой переменной (SSVS) [1] сопряженный с предыдущими распределениями

  • Правдоподобие данных, предшествующее распределение и апостериорные распределения составляют сопряженную Смешанную гауссовскую модель.

  • β и σ2 являются зависимыми случайными переменными.

Для получения дополнительной информации смотрите mixconjugateblm.

'mixsemiconjugate'

SSVS [1] полупрозрачное предшествующие распределения

  • Правдоподобие данных, предшествующее распределение и апостериорные распределения составляют полуконъюгатную Смешанную гауссовскую модель.

  • β и σ2 являются независимыми случайными переменными.

Для получения дополнительной информации смотрите mixsemiconjugateblm.

'lasso'

Предшествующие распределения регрессии байесовского лассо [3]

  • Обусловлено σ2предшествующее распределение каждого коэффициента регрессии двойной экспоненциал со средним значением 0 и шкалой σ/ λ, где λ является параметром усадки лассо. Когда λ увеличивается, коэффициенты стремятся к 0.

  • β и σ2 являются зависимыми случайными переменными. Коэффициенты регрессии являются независимыми, априори.

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

Пример: 'ModelType','conjugate'

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

Флаг для включения точки пересечения регрессионной модели, заданный как разделенная разделенными запятой парами, состоящая из 'Intercept' и значение в этой таблице.

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

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

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

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

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

Примечание

Вы не можете задать имя точки пересечения или отклонения нарушения порядка. В отображениях bayeslm задает точку пересечения имени Intercept и отклонение нарушения порядка, имя Sigma2. Поэтому вы не можете использовать "Intercept" и "Sigma2" как имена предиктора.

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

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

Опции для сопряженного и полуконъюгатного предварительного распределения β

свернуть все

Средний гиперпараметр Гауссова априорного β, заданный как разделенная разделенными запятой парами, состоящая из 'Mu' и числовой вектор.

Если Mu является вектором, тогда он должен иметь NumPredictors или NumPredictors + 1 элементы.

  • Для NumPredictors элементы, bayeslm устанавливает предшествующее среднее значение NumPredictors только предикторы. Предикторы соответствуют столбцам в данных предиктора (заданным во время оценки, симуляции или прогнозирования). bayeslm игнорирует точку пересечения в модели, то есть, bayeslm задает предшествующее значение по умолчанию для любой точки пересечения.

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

Пример: 'Mu',[1; 0.08; 2]

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

Условный ковариационный матричный гиперпараметр Гауссова априорного на β, заданный как разделенная разделенными запятой парами, состоящая из 'V' и a c-by- c симметричная, положительно определенная матрица. c можно NumPredictors или NumPredictors + 1.

  • Если c является NumPredictors, затем bayeslm устанавливает предшествующую ковариационную матрицу в

    [1e5000V0].

    bayeslm приписывает предшествующие ковариации по умолчанию точке пересечения и атрибутам V к коэффициентам переменных предиктора в данных. Строки и столбцы V соответствуют столбцам (переменным) в данных предиктора.

  • Если c является NumPredictors + 1, затем bayeslm устанавливает всю предшествующую ковариацию равной V. Первая строка и столбец соответствуют точке пересечения. Все другие строки и столбцы соответствуют столбцам в данных предиктора.

Значение по умолчанию является flat prior. Для adaptive prior задайте diag(Inf(Intercept + NumPredictors,1)). Адаптивные априоры указывают на нулевую точность в порядке, что предшествующее распределение оказывает как можно меньшее влияние на апостериорное распределение.

Для 'ModelType',conjugate, V - предшествующая ковариация β до фактора σ2.

Пример: 'V',diag(Inf(3,1))

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

Опции для байесовской регрессии лассо

свернуть все

Параметр регуляризации Лассо для всех коэффициентов регрессии, заданный как разделенная разделенными запятой парами, состоящая из 'Lambda' и положительный числовой скаляр или (Intercept + NumPredictors) -на-1 положительный числовой вектор. Большие значения Lambda привести соответствующие коэффициенты к сужению ближе к нулю.

Предположим X является T-by- NumPredictors матрица предикторных данных, которые вы задаете во время оценки, симуляции или прогнозирования.

  • Если Lambda является вектором и Intercept является true, Lambda(1) - усадка для точки пересечения, Lambda(2) - усадка для коэффициента первого предиктора X(:,1), Lambda(3) - усадка для коэффициента второго предиктора X(:,2),..., и Lambda(NumPredictors + 1) - усадка коэффициента последнего предиктора X(:,NumPredictors).

  • Если Lambda является вектором и Intercept является false, Lambda(1) - усадка для коэффициента первого предиктора X(:,1),..., и Lambda(NumPredictors) - усадка коэффициента последнего предиктора X(:,NumPredictors).

  • Если вы поставляете скаляр s для Lambda, затем все коэффициенты предикторов в X иметь усадку s.

    • Если Intercept является true, точка пересечения имеет сужение 0.01, и lassoblm хранит [0.01; s*ones(NumPredictors,1)] в Lambda.

    • В противном случае lassoblm хранит s*ones(NumPredictors,1) в Lambda.

Пример: 'Lambda',6

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

Опции для предварительного распределения β и γ для выбора переменной предсказателя SSVS

свернуть все

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

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

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

Совет

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

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

Компонентный коэффициент отклонения или отклонения гиперпараметр Гауссовой смеси до β, заданный как разделенная запятой пара, состоящий из 'V' и (Intercept + NumPredictors) -на-2 положительная числовая матрица. Первый столбец содержит предыдущие коэффициенты отклонения для компонента 1 (режим включения переменной, то есть γ = 1). Второй столбец содержит предыдущие коэффициенты отклонения для компонента 2 (режим исключения переменных, то есть γ = 0). Для сопряженных моделей ('ModelType','mixconjugate'), V содержит отклонения, и для полуконъюгатных моделей ('ModelType','mixsemiconjugate'), V содержит отклонения.

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

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

Совет

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

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

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

Априорное распределение вероятностей для режимов включения и исключения переменных, заданное как разделенная разделенными запятой парами, состоящая из 'Probability' и (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 is 1 - Вероятность (k).

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

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

logprob = regimeprior(varinc)

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

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

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

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

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

Матрица предыдущей корреляции β для обоих компонентов в модели смеси, заданная как разделенная разделенными запятой парами, состоящая из 'Correlation' и

an (Intercept + NumPredictors) -by- (Intercept + NumPredictors) числовая, положительно определенная матрица. Следовательно, предшествующая ковариационная матрица для j компонента в модели смеси представлено:

  • Для сопряженного ('ModelType','mixconjugate'), sigma2 * diag (sqrt (V (:, j)) * Корреляция * diag (sqrt (V (:, j)))

  • Для полуконъюгата ('ModelType','mixsemiconjugate'), diag (sqrt (V (:, j)) * Корреляция * diag (sqrt (V (:, j)))

где sigma2 является σ2 и V - матрица коэффициентов отклонения коэффициентов или отклонений.

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

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

Примечание

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

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

Совет

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

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

Опции для предварительного распределения σ2

свернуть все

Формируйте гиперпараметр обратной гаммы перед σ2, заданная как разделенная разделенными запятой парами, состоящая из 'A' и числовой скаляр.

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

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

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

Эта опция не применяется к эмпирическим или пользовательским предыдущим распределениям.

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

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

Шкала гиперпараметра обратной гаммы перед σ2, заданная как разделенная разделенными запятой парами, состоящая из 'B' и положительная скалярная величина или Inf.

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

Эта опция не применяется к эмпирическим или пользовательским предыдущим распределениям.

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

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

Необходимые опции для эмпирических предварительных распределений соединений

свернуть все

Случайная выборка из предыдущего распределения β, заданная как разделенная разделенными запятой парами, состоящая из 'BetaDraws' и (Intercept + NumPredictors) -by- NumDraws числовая матрица. Строки соответствуют коэффициентам регрессии: первая строка соответствует точке пересечения, а последующие строки соответствуют столбцам в данных предиктора. Столбцы соответствуют последовательным вытяжкам из предыдущего распределения.

BetaDraws и Sigma2Draws должно иметь одинаковое число столбцов.

Для наилучших результатов рисуйте большое количество выборок.

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

Случайная выборка из предыдущего распределения σ2, заданная как разделенная разделенными запятой парами, состоящая из 'Sigma2Draws' и 1-байт- NumDraws числовые векторы-строки. Столбцы соответствуют последовательным вытяжкам из предыдущего распределения.

BetaDraws и Sigma2Draws должно иметь одинаковое число столбцов.

Для наилучших результатов рисуйте большое количество выборок.

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

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

свернуть все

Журнал функции плотности вероятностей соединений (β, σ2), заданная как разделенная разделенными запятой парами, состоящая из 'LogPDF' и указатель на функцию.

Предположим logprior - имя MATLAB;® функция, определяющая предшествующее распределение соединений (β, σ2). Затем, logprior должна иметь эту форму.

function [logpdf,glpdf] = logprior(params)
	...
end
где:

  • logpdf является числовым скаляром, представляющим журналу плотности вероятностей соединений (β, σ2).

  • glpdf является (Intercept + NumPredictors + 1) -на-1 числовой вектор, представляющий градиент logpdf. Элементы соответствуют элементам params.

    glpdf является необязательным выходным аргументом, и только гамильтоновый семплер Монте-Карло (см. hmcSampler) применяет его. Если вы знаете аналитическую частную производную относительно одних параметров, но не других, то задайте элементы glpdf , соответствующий неизвестным частным производным, с NaN. MATLAB вычисляет численный градиент для отсутствующих частных производных, что удобно, но замедляет выборку.

  • params является (Intercept + NumPredictors + 1) -на-1 числовой вектор. Первый Intercept + NumPredictors элементы должны соответствовать значениям β, а последний элемент должен соответствовать значению σ2. Первый элемент β является точкой пересечения, если он существует. Все другие элементы соответствуют переменным предиктора в данных предиктора, которые вы задаете во время оценки, симуляции или прогнозирования.

Пример: 'LogPDF',@logprior

Выходные аргументы

свернуть все

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

Значение ModelTypeВозвращенный объект байесовской линейной регрессионой модели
'conjugate'conjugateblm
'semiconjugate'semiconjugateblm
'diffuse'diffuseblm
'empirical'empiricalblm
'custom'customblm
'mixconjugate'mixconjugateblm
'mixsemiconjugate'mixsemiconjugateblm
'lasso'lassoblm

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

Подробнее о

свернуть все

Байесовская линейная регрессионая модель

A Bayesian linear regression model обрабатывает параметры β и σ2 в модели многофакторной линейной регрессии (MLR) yt = xt β + εt как случайные переменные.

Для времен t = 1,..., T:

  • yt - наблюдаемая реакция.

  • xt является 1-бай- (p + 1) вектором-строкой наблюдаемых значений p предикторов. Чтобы разместить точку пересечения модели, x 1 t = 1 для всех t.

  • β является (p + 1) -на-1 вектор-столбец коэффициентов регрессии, соответствующих переменным, которые составляют столбцы xt.

  • εt является случайным нарушением порядка со средним значением нуля и Cov (ε) = σ2I T × T, в то время как ε является вектором T -by-1, содержащим все нарушения порядка. Эти предположения подразумевают, что вероятность данных является

    (β,σ2|y,x)=t=1Tϕ(yt;xtβ,σ2).

    ϕ (yt; xtβ, σ2) - Гауссова плотность вероятностей со средней xtβ и отклонением σ2 оценивается при yt;.

Прежде чем рассматривать данные, вы накладываете joint prior distribution предположение на (β, σ2). В байесовском анализе вы обновляете распределение параметров с помощью информации о параметрах, полученных из вероятности данных. Результатом является joint posterior distribution, σ2) или conditional posterior distributions параметров.

Ссылки

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

[2] Koop, G., D. J. Porier, and J. L. Tobias. Байесовские эконометрические методы. Нью-Йорк, Нью-Йорк: Cambridge University Press, 2007.

[3] Парк, Т. и Г. Казелла. «Байесовский лассо». Журнал Американской статистической ассоциации. Том 103, № 482, 2008, стр. 681-686.

Введенный в R2017a