Создайте Байесов объект модели линейной регрессии
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
).
\forall , серия независимых Гауссовых воздействий со средним значением 0 и отклонение .
Предположим что коэффициенты регрессии и отклонение воздействия случайные переменные, и их предшествующие значения и распределение неизвестны. В этом случае используйте неинформативный предшествующий Jefferys: объединенное предшествующее распределение пропорционально .
Эти предположения и вероятность данных подразумевают аналитически послушное апостериорное распределение.
Создайте рассеянную предшествующую модель для параметров линейной регрессии, которая является типом модели по умолчанию. Задайте количество предикторов 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
.
Полагайте, что модель линейной регрессии в Значении по умолчанию Рассеивает Предшествующую Модель. Примите эти предшествующие дистрибутивы:
. 4 1 вектор средних значений, и масштабированная положительная определенная ковариационная матрица 4 на 4.
. и форма и шкала, соответственно, обратного гамма распределения.
Эти предположения и вероятность данных подразумевают нормальную обратную гамму полусопряженная модель. Условное последующее поколение сопряжено к предшествующему относительно вероятности данных, но крайнее следующее аналитически тяжело.
Создайте полусопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Задайте количество предикторов 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
.
Полагайте, что модель линейной регрессии в Значении по умолчанию Рассеивает Предшествующую Модель. Примите эти предшествующие дистрибутивы:
. 4 1 вектор средних значений, и масштабированная положительная определенная ковариационная матрица 4 на 4. Предположим, что у вас есть предварительные знания это и V единичная матрица.
. и форма и шкала, соответственно, обратного гамма распределения.
Эти предположения и вероятность данных подразумевают нормальную обратную гамму сопряженная модель.
Создайте сопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Задайте количество предикторов 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
обновляет предшествующие сводные данные распределения на основе изменений в форме и шкале.
Полагайте, что модель линейной регрессии в Значении по умолчанию Рассеивает Предшествующую Модель. Примите эти предшествующие дистрибутивы:
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, имеет распределение Лапласа со средним значением 0 и шкалой , где параметр уменьшения. Коэффициенты условно независимы.
. и форма и шкала, соответственно, обратного гамма распределения.
Создайте предшествующую модель для Байесовой линейной регрессии при помощи 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
, то есть, путем оценки апостериорного распределения и . Байесова регрессия лассо использует Цепь Маркова Монте-Карло (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
— Количество переменных прогнозаКоличество переменных прогноза в Байесовом несколько модель линейной регрессии, заданная как неотрицательное целое число.
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
.'ModelType'
— Соедините предшествующее распределение (β, σ 2)'diffuse'
(значение по умолчанию) | 'conjugate'
| 'semiconjugate'
| 'empirical'
| 'custom'
| 'lasso'
| 'mixconjugate'
| 'mixsemiconjugate'
Соедините предшествующее распределение (β, σ 2), заданный как пара, разделенная запятой, состоящая из 'ModelType'
и значения в следующих таблицах.
Для стандартной Байесовой модели регрессии выберите значение в этой таблице.
Значение | Описание |
---|---|
'conjugate' | Нормальная обратная гамма сопряженная модель
Можно настроить соответствующие гиперпараметры с помощью |
'semiconjugate' | Нормальная обратная гамма полусопряженная модель
Можно настроить соответствующие гиперпараметры с помощью |
'diffuse' | Рассейте предшествующие дистрибутивы
|
'empirical' | Пользовательские предшествующие дистрибутивы
|
'custom' | Пользовательские предшествующие дистрибутивы
|
Для Байесовой модели регрессии, которая выполняет выбор переменной прогноза, выберите значение в этой таблице.
Значение | Описание |
---|---|
'mixconjugate' | Стохастический поисковый выбор переменной (SSVS) [1] спрягает предшествующие дистрибутивы
Для получения дополнительной информации смотрите |
'mixsemiconjugate' | SSVS [1] полусопряженные предшествующие дистрибутивы
Для получения дополнительной информации смотрите |
'lasso' | Байесова регрессия лассо предшествующие дистрибутивы [3]
|
Предшествующий тип модели, который вы выбираете, зависит от ваших предположений на совместном распределении параметров. Ваш выбор может влиять на следующие оценки и выводы. Для получения дополнительной информации смотрите Реализацию Байесова Линейная регрессия.
Пример: 'ModelType','conjugate'
Типы данных: char
'Intercept'
— Отметьте для включения прерывания модели регрессииtrue
(значение по умолчанию) | false
Отметьте для включения прерывания модели регрессии, заданного как пара, разделенная запятой, состоящая из 'Intercept'
и значения в этой таблице.
Значение | Описание |
---|---|
false | Исключите прерывание из модели регрессии. Поэтому β является p - размерный вектор, где p является значением NumPredictors . |
true | Включайте прерывание в модель регрессии. Поэтому β (p + 1) - размерный вектор. Эта спецификация заставляет T-by-1 вектор из единиц предварительно ожидаться к данным о предикторе во время оценки и симуляции. |
Если вы включаете столбец из единиц в данных о предикторе для термина прерывания, то задаете 'Intercept',false
.
Пример: 'Intercept',false
varnames
Имена переменной прогнозаПеременная прогноза называет для отображений, заданных как пара, разделенная запятой, состоящая из '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
Средний гиперпараметр Гауссовых, предшествующих на βzeros(Intercept + NumPredictors,1)
(значение по умолчанию) | числовой векторСредний гиперпараметр Гауссова предшествующего на β, заданном как пара, разделенная запятой, состоящая из 'Mu'
и числового вектора.
Если Mu
является вектором, то он должен иметь элементы NumPredictors + 1
или NumPredictors
.
Для элементов NumPredictors
bayeslm
устанавливает предшествующее среднее значение предикторов NumPredictors
только. Предикторы соответствуют столбцам в данных о предикторе (заданный во время оценки, симуляции, или предсказывающий). bayeslm
игнорирует прерывание в модели, то есть, bayeslm
задает предшествующее среднее значение по умолчанию к любому прерыванию.
Для элементов NumPredictors + 1
первый элемент соответствует предшествующему среднему значению прерывания, и все другие элементы соответствуют предикторам.
Пример: 'Mu',[1; 0.08; 2]
Типы данных: double
V
Условный гиперпараметр ковариационной матрицы Гауссовых, предшествующих на β1e5*eye(Intercept + NumPredictors)
(значение по умолчанию) | симметричная, положительная определенная матрицаУсловный гиперпараметр ковариационной матрицы Гауссова предшествующего на β, заданном как пара, разделенная запятой, состоящая из 'V'
и c
-by-c
симметричная, положительная определенная матрица. c
может быть NumPredictors
или NumPredictors + 1
.
Если c
является NumPredictors
, то bayeslm
устанавливает предшествующую ковариационную матрицу на
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
Ловите арканом параметр регуляризации1
(значение по умолчанию) | положительный числовой скаляр | положительный числовой векторЛовите арканом параметр регуляризации для всех коэффициентов регрессии, заданных как пара, разделенная запятой, состоящая из '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
\mu
Покомпонентно имейте в виду гиперпараметр Гауссовой смеси, предшествующей на βzeros(Intercept + NumPredictors,2)
(значение по умолчанию) | числовая матрицаПокомпонентно имейте в виду гиперпараметр Гауссовой смеси, предшествующей на β, заданном как пара, разделенная запятой, состоящая из 'Mu'
и (Intercept + NumPredictors
)-by-2 числовая матрица. Первый столбец содержит предшествующие средние значения для 1 компонента (режим переменного включения, то есть, γ = 1). Второй столбец содержит предшествующие средние значения для 2 компонента (режим переменного исключения, то есть, γ = 0).
Если Intercept
является false
, то Mu
имеет строки NumPredictors
. bayeslm
устанавливает предшествующее среднее значение коэффициентов NumPredictors
, соответствующих столбцам в наборе данных предиктора, который вы задаете во время оценки, симуляции или прогнозирования.
В противном случае Mu
имеет элементы NumPredictors + 1
. Первый элемент соответствует предшествующим средним значениям прерывания, и все другие элементы соответствуют переменным прогноза.
Чтобы выполнить SSVS, используйте значение по умолчанию Mu
.
Типы данных: double
V
Покомпонентный фактор отклонения или гиперпараметр отклонения Гауссовой смеси, предшествующей на βrepmat([10 0.1],Intercept + NumPredictors,1)
(значение по умолчанию) | положительная числовая матрицаПокомпонентный фактор отклонения или гиперпараметр отклонения Гауссовой смеси, предшествующей на β, заданном как пара, разделенная запятой, состоящая из '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'
— Распределение априорной вероятности для переменных режимов включения и исключения0.5*ones(Intercept + NumPredictors,1)
(значение по умолчанию) | числовой вектор значений в [0,1] | указатель на функциюРаспределение априорной вероятности для переменных режимов включения и исключения, заданных как пара, разделенная запятой, состоящая из '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 = 0 указывает, что переменная исключена из модели.(k)
Если Probability
является числовым вектором:
Строки соответствуют именам переменных в VarNames
. Для моделей, содержащих прерывание, априорной вероятностью для включения прерывания является Probability(1)
.
Для
= 1, …, K, априорная вероятность для исключения переменной k
равняется 1 – k
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
Корреляция
Предшествующая корреляционная матрица βeye(Intercept + NumPredictors)
(значение по умолчанию) | числовая, положительная определенная матрицаПредшествующая корреляционная матрица β для обоих компонентов в модели смеси, заданной как пара, разделенная запятой, состоящая из '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
A
Сформируйте гиперпараметр обратной гаммы, предшествующей на σ 2
3
(значение по умолчанию) | числовой скаляр
Сформируйте гиперпараметр обратной гаммы, предшествующей на σ 2, заданный как пара, разделенная запятой, состоящая из 'A'
и числового скаляра.
A
должен быть, по крайней мере, –(Intercept + NumPredictors)/2
.
С B
, сохраненным зафиксированным, обратное гамма распределение становится более высоким и более сконцентрированным, когда A
увеличивается. Эта характеристика взвешивает предшествующую модель σ 2 в большей степени, чем вероятность во время следующей оценки.
Для функциональной формы обратного гамма распределения смотрите Аналитически Послушное Последующее поколение.
Эта опция не применяется к эмпирическим или пользовательским предшествующим дистрибутивам.
Пример: 'A',0.1
Типы данных: double
B
Масштабируйте гиперпараметр обратной гаммы, предшествующей на σ 2
1
(значение по умолчанию) | положительная скалярная величина | Inf
Масштабируйте гиперпараметр обратной гаммы, предшествующей на σ 2, заданный как пара, разделенная запятой, состоящая из 'B'
и положительной скалярной величины или Inf
.
С A
, сохраненным зафиксированным, обратное гамма распределение становится более высоким и более сконцентрированным, когда B
увеличивается. Эта характеристика взвешивает предшествующую модель σ 2 в большей степени, чем вероятность во время следующей оценки.
Эта опция не применяется к эмпирическим или пользовательским предшествующим дистрибутивам.
Пример: 'B',5
Типы данных: double
Необходимые опции для эмпирических объединенных предшествующих дистрибутивов
'BetaDraws'
— Случайная выборка от предшествующего распределения β
числовая матрица
Случайная выборка от предшествующего распределения β, заданного как пара, разделенная запятой, состоящая из 'BetaDraws'
и (Intercept
+ NumPredictors
)-by-NumDraws
числовая матрица. Строки соответствуют коэффициентам регрессии: первая строка соответствует прерыванию, и последующие строки соответствуют столбцам в данных о предикторе. Столбцы соответствуют последовательным ничьим от предшествующего распределения.
BetaDraws
и Sigma2Draws
должны иметь одинаковое число столбцов.
Для лучших результатов чертите большое количество выборок.
Типы данных: double
'Sigma2Draws'
— Случайная выборка от предшествующего распределения σ 2
числовой вектор - строка
Случайная выборка от предшествующего распределения σ 2, заданный как пара, разделенная запятой, состоящая из 'Sigma2Draws'
и 1 NumDraws
числовым вектором - строкой. Столбцы соответствуют последовательным ничьим от предшествующего распределения.
BetaDraws
и Sigma2Draws
должны иметь одинаковое число столбцов.
Для лучших результатов чертите большое количество выборок.
Типы данных: double
Необходимые опции для пользовательских предшествующих дистрибутивов
'LogPDF'
— Журнал объединенной функции плотности вероятности (β, σ 2)
указатель на функцию
Журнал объединенной функции плотности вероятности (β, σ 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
Выходные аргументы
PriorMdl
— Байесова модель линейной регрессии хранение предшествующих образцовых предположений
Объект модели conjugateblm
| объект модели semiconjugateblm
| объект модели diffuseblm
| объект модели mixconjugateblm
| объект модели mixsemiconjugateblm
| объект модели lassoblm
|...
Байесова модель линейной регрессии хранение предшествующих образцовых предположений, возвращенных как объект в этой таблице.
Значение 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 вектор, содержащий все воздействия. Эти предположения подразумевают, что вероятность данных
ϕ (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.
Смотрите также
Объекты
conjugateblm
| customblm
| diffuseblm
| empiricalblm
| lassoblm
| mixconjugateblm
| mixsemiconjugateblm
| semiconjugateblm
Функции
Введенный в R2017a
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.