exponenta event banner

bayeslm

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

Описание

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

пример

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

пример

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

  • 'conjugate', 'semiconjugate', или 'diffuse' для создания стандартной байесовской модели линейной регрессии

  • 'mixconjugate', 'mixsemiconjugate', или 'lasso' создание байесовской модели линейной регрессии для выбора переменных предиктора

Например, 'ModelType','conjugate' задает сопряжённые приоры для гауссова правдоподобия, то есть β 'start2 как гауссова, start2 как обратная гамма.

пример

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 и дисперсией start2.

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

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

Создайте диффузную предыдущую модель для параметров линейной регрессии, которая является типом модели по умолчанию. Укажите количество предикторов 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.

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

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

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

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

Создайте предыдущую модель normal-inverse-gamma semaconjugate для параметров линейной регрессии. Укажите количество предикторов 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.

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

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

  • σ2∼IG (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.

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

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/λ, где λ - параметр сжатия. Коэффициенты условно независимы.

  • σ2∼IG (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, то есть оценивая апостериорное распределение β и start2. Байесовская регрессия лассо использует марковскую цепь Монте-Карло (MCMC) для выборки из задней. Для воспроизводимости задайте случайное начальное число.

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.
Опции для всех предыдущих дистрибутивов

свернуть все

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

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

СтоимостьОписание
'conjugate'

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

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

    β 'start2 ~ Np + 1 (λ, σ2V) .start2 ~ IG (A, B).

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

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

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

'semiconjugate'

Нормальная-обратная-гамма-полунъюгатная модель

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

'diffuse'

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

'empirical'

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

  • Необходимо также указать BetaDraws и Sigma2Draws аргументы пары имя-значение.

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

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

'custom'

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

  • Необходимо также указать LogPDF аргумент пары имя-значение.

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

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

СтоимостьОписание
'mixconjugate'

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

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

  • β и start2 - зависимые случайные величины.

Дополнительные сведения см. в разделе mixconjugateblm.

'mixsemiconjugate'

SSVS [1] полуконъюгировать предыдущие распределения

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

  • β и start2 - независимые случайные величины.

Дополнительные сведения см. в разделе mixsemiconjugateblm.

'lasso'

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

  • В зависимости от λ 2, предварительное распределение каждого коэффициента регрессии является двойным экспоненциальным со средним значением 0 и шкалой λ/λ, где λ - параметр усадки лассо. По мере увеличения λ коэффициенты стремятся к 0.

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

Выбранный ранее тип модели зависит от предположений относительно совместного распределения параметров. Ваш выбор может повлиять на апостериорные оценки и выводы. Дополнительные сведения см. в разделе Реализация байесовской линейной регрессии.

Пример: '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 или 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 устанавливает предыдущую ковариационную матрицу как

    [1e50⋯00⋮V0].

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

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

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

Для 'ModelType',conjugate, V является предшествующей ковариацией β вплоть до множителя, равного

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

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

Варианты байесовской регрессии лассо

свернуть все

Параметр регуляризации лассо для всех коэффициентов регрессии, указанный как пара, разделенная запятыми, состоящая из 'Lambda' и положительный числовой скаляр или (Intercept + NumPredictors) -по-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) -по-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 равно 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 имеет значение start2 и V - матрица коэффициентов дисперсии коэффициентов или дисперсий.

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

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

Примечание

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

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

Совет

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

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

Варианты предварительного распределения

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

  • logpdf - числовой скаляр, представляющий логарифм плотности вероятности соединения (β, start2).

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

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

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

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

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

свернуть все

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

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

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

Подробнее

свернуть все

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

Байесовская модель линейной регрессии рассматривает параметры β и start2 в модели множественной линейной регрессии (MLR) yt = xtβ + αt как случайные величины.

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

  • yt - наблюдаемый ответ.

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

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

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

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

    (yt; xtβ, start2) - гауссова плотность вероятности со средним значением xtβ и дисперсией start2, оцениваемой при yt;.

Перед рассмотрением данных необходимо наложить совместное предварительное предположение о распределении на (β, start2). В байесовском анализе выполняется обновление распределения параметров с использованием информации о параметрах, полученных из вероятности получения данных. Результатом является совместное апостериорное распределение (β, start2) или условное апостериорное распределение параметров.

Ссылки

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

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

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

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