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.

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

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

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

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

Примите эти предшествующие распределения:

  • Для 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)

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

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

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

свернуть все

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

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

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

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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'

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

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

'semiconjugate'

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

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

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

    β и σ2 независимы.

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

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

Значением по умолчанию является {'Бета (1)', 'Бета (2)'..., 'Бета (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' и c- 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',conjugateV предшествующая ковариация β до фактора σ2.

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

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

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

свернуть все

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

Предположим X T- 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 указывает на переменную VarNamesK) включен в модель, и γk = 0 указывает, что переменная исключена из модели.

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

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

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

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

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

logprob = regimeprior(varinc)

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

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

Можно включать больше входных параметров, но они должны быть известны, когда вы вызываете 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 (ε) = σ2T I ×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