bayeslm

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

Синтаксис

PriorMdl = bayeslm(NumPredictors)
PriorMdl = bayeslm(NumPredictors,'ModelType',modelType)
PriorMdl = bayeslm(NumPredictors,'ModelType',modelType,Name,Value)

Описание

пример

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.

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

Предположим что коэффициенты регрессии β=[β0,...,β3] и отклонение воздействия σ2 случайные переменные, и их предшествующие значения и распределение неизвестны. В этом случае используйте неинформативный предшествующий Jefferys: объединенное предшествующее распределение пропорционально 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.

Полагайте, что модель линейной регрессии в Значении по умолчанию Рассеивает Предшествующую Модель. Примите эти предшествующие дистрибутивы:

  • β|σ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.

Полагайте, что модель линейной регрессии в Значении по умолчанию Рассеивает Предшествующую Модель. Примите эти предшествующие дистрибутивы:

  • β|σ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 обновляет предшествующие сводные данные распределения на основе изменений в форме и шкале.

Полагайте, что модель линейной регрессии в Значении по умолчанию Рассеивает Предшествующую Модель. Примите эти предшествующие дистрибутивы:

  • 4-D t распределение с 50 степенями свободы для каждого компонента и единичной матрицей для корреляционной матрицы. Кроме того, распределение сосредоточено в, и каждый компонент масштабируется соответствующими элементами вектора.

  • .

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

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

  • Принимает значения и вместе в вектор-столбце и принимает значения гиперпараметров

  • Возвращает значение объединенного предшествующего распределения, учитывая значения и

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 не отображает сводные данные предшествующих дистрибутивов в командной строке.

Полагайте, что модель линейной регрессии в Значении по умолчанию Рассеивает Предшествующую Модель.

Примите эти предшествующие дистрибутивы:

  • Для k = 0..., 3, βk|σ2 имеет распределение Лапласа со средним значением 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. Байесова регрессия лассо использует Цепь Маркова Монте-Карло (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)

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

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

свернуть все

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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'

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

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

'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Включайте прерывание в модель регрессии. Поэтому β (p + 1) - размерный вектор. Эта спецификация заставляет T-by-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 + 1 или NumPredictors.

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

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

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

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

Условный гиперпараметр ковариационной матрицы Гауссова предшествующего на β, заданном как пара, разделенная запятой, состоящая из 'V' и 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)-by-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)-by-2 числовая матрица. Первый столбец содержит предшествующие средние значения для 1 компонента (режим переменного включения, то есть, γ = 1). Второй столбец содержит предшествующие средние значения для 2 компонента (режим переменного исключения, то есть, γ = 0).

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

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

Совет

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

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

Покомпонентный фактор отклонения или гиперпараметр отклонения Гауссовой смеси, предшествующей на β, заданном как пара, разделенная запятой, состоящая из 'V' и (Intercept + NumPredictors)-by-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)-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 указывает, что исключен из модели.

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

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

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

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

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

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

  • Для полусопряженного ('ModelType','mixsemiconjugate'), diag(sqrt(V(:,j)))*Correlation*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)-by-1 числовой вектор, представляющий градиент logpdf. Элементы соответствуют элементам params.

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

  • params (Intercept + NumPredictors + 1)-by-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.

Больше о

свернуть все

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

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

В течение многих времен t = 1..., T:

  • yt является наблюдаемым ответом.

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

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

  • εt является случайным воздействием со средним значением нуля и Cov (ε) = σ 2IT×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] Джордж, E. I. и Р. Э. Маккалок. "Выбор переменной Через Гиббс, Выбирающий". Журнал американской Статистической Ассоциации. Издание 88, № 423, 1993, стр 881–889.

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

[3] Припаркуйтесь, T. и Г. Казелла. "Байесово Лассо". Журнал американской Статистической Ассоциации. Издание 103, № 482, 2008, стр 681–686.

Введенный в R2017a