Создайте Байесов объект модели линейной регрессии
Чтобы создать Байесовую векторную модель (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
).
\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: {4×1 cell} Mu: [4×1 double] V: [4×4 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
имя аргумента и 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
из набора данных предиктора, который вы задаете во время оценки, симуляции или прогнозирования.
Значением по умолчанию является {'Бета (1)', 'Бета (2)'..., 'Бета (
, где p
)'}p
значение NumPredictors
.
Вы не можете определить имя отклонения воздействия или прерывания. В отображениях, bayeslm
дает прерыванию имя Intercept
и отклонение воздействия имя Sigma2
. Поэтому вы не можете использовать "Intercept"
и "Sigma2"
как имена предиктора.
Пример: 'VarNames',["UnemploymentRate"; "CPI"]
Типы данных: string
| cell
| char
'Mu'
— Средний гиперпараметр Гауссовых, предшествующих на βzeros(Intercept + NumPredictors,1)
(значение по умолчанию) | числовой векторСредний гиперпараметр Гауссова предшествующего на β в виде разделенной запятой пары, состоящей из 'Mu'
и числовой вектор.
Если Mu
вектор, затем он должен иметь NumPredictors
или NumPredictors + 1
элементы.
Для NumPredictors
элементы, bayeslm
устанавливает предшествующее среднее значение NumPredictors
предикторы только. Предикторы соответствуют столбцам в данных о предикторе (заданный во время оценки, симуляции, или предсказывающий). bayeslm
игнорирует прерывание в модели, то есть, bayeslm
задает предшествующее среднее значение по умолчанию к любому прерыванию.
Для NumPredictors + 1
элементы, первый элемент соответствует предшествующему среднему значению прерывания, и все другие элементы соответствуют предикторам.
Пример: 'Mu',[1; 0.08; 2]
Типы данных: double
'V'
— Условный гиперпараметр ковариационной матрицы Гауссовых, предшествующих на β1e5*eye(Intercept + NumPredictors)
(значение по умолчанию) | симметричная, положительная определенная матрицаУсловный гиперпараметр ковариационной матрицы Гауссова предшествующего на β в виде разделенной запятой пары, состоящей из 'V'
и c
- 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'
— Ловите арканом параметр регуляризации
(значение по умолчанию) | положительный числовой скаляр | положительный числовой векторЛовите арканом параметр регуляризации для всех коэффициентов регрессии в виде разделенной запятой пары, состоящей из '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
'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
Вероятность (
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'
— Предшествующая корреляционная матрица β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
'A'
— Сформируйте гиперпараметр обратной гаммы, предшествующей на σ 2
(значение по умолчанию) | числовой скалярСформируйте гиперпараметр обратной гаммы, предшествующей на σ 2 в виде разделенной запятой пары, состоящей из 'A'
и числовой скаляр.
A
должен быть, по крайней мере, –(Intercept + NumPredictors)/2
.
С B
сохраненный зафиксированный, обратное гамма распределение становится более высоким и более сконцентрированным как A
увеличения. Эта характеристика взвешивает предшествующую модель σ 2 в большей степени, чем вероятность во время следующей оценки.
Для функциональной формы обратного гамма распределения смотрите Аналитически Послушное Последующее поколение.
Эта опция не применяется к эмпирическим или пользовательским предшествующим распределениям.
Пример: 'A',0.1
Типы данных: double
'B'
— Масштабируйте гиперпараметр обратной гаммы, предшествующей на σ 2
(значение по умолчанию) | положительная скалярная величина | 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
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.