Создайте объект байесовской линейной регрессионной модели
Чтобы создать модель байесовской векторной авторегрессии (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
).
Для всех , - серия независимых гауссовских нарушений порядка со средним значением 0 и отклонением .
Предположим, что коэффициенты регрессии и отклонение нарушения порядка являются случайными переменными, и их предыдущие значения и распределение неизвестны. В этом случае используйте неинформативное априорное распределение Джеффериса: соединение априорное пропорционально .
Эти предположения и вероятность данных подразумевают аналитически отслеживаемое апостериорное распределение.
Создайте диффузную предшествующую модель для параметров линейной регрессии, которая является типом модели по умолчанию. Задайте количество предикторов 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
.
Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model. Предположим, что эти предыдущие распределения:
. является вектором средств 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
.
Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model. Предположим, что эти предыдущие распределения:
. является вектором средств 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
обновляет предыдущие сводные данные распределения на основе изменений формы и шкалы.
Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model. Предположим, что эти предыдущие распределения:
- 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
не отображает сводные данные предыдущих распределений в командной строке.
Рассмотрим линейную регрессионую модель в модели Default Diffuse Private Model.
Предположим, что эти предыдущие распределения:
Для k = 0,..., 3 , имеет распределение Laplace со средним значением 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
, то есть путем оценки апостериорного распределения и . Байесовская регрессия лассо использует марковскую цепь Monte Carlo (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' | Normal-reverse-gamma semiconjugate модель
Можно настроить соответствующие гиперпараметры, используя |
'diffuse' | Диффузные предыдущие распределения
|
'empirical' | Пользовательские предыдущие распределения
|
'custom' | Пользовательские предыдущие распределения
|
Для байесовской регрессионой модели, которая выполняет выбор переменной предиктора, выберите значение в этой таблице.
Значение | Описание |
---|---|
'mixconjugate' | Выбор стохастической поисковой переменной (SSVS) [1] сопряженный с предыдущими распределениями
Для получения дополнительной информации смотрите |
'mixsemiconjugate' | SSVS [1] полупрозрачное предшествующие распределения
Для получения дополнительной информации смотрите |
'lasso' | Предшествующие распределения регрессии байесовского лассо [3]
|
Тип предыдущей модели, который вы выбираете, зависит от ваших предположений о совместном распределении параметров. Ваш выбор может повлиять на апостериорные оценки и выводы. Для получения дополнительной информации см. «Реализация байесовской линейной регрессии».
Пример: 'ModelType','conjugate'
Типы данных: char
'Intercept'
- Флаг включения точки пересечения регрессионной моделиtrue
(по умолчанию) | false
Флаг для включения точки пересечения регрессионной модели, заданный как разделенная разделенными запятой парами, состоящая из 'Intercept'
и значение в этой таблице.
Значение | Описание |
---|---|
false | Исключить точку пересечения из регрессионной модели. Поэтому β является p -мерный вектор, где p - значение NumPredictors . |
true | Включите точку пересечения в регрессионую модель. Поэтому β есть a (p + 1) -мерный вектор. Эта спецификация заставляет вектор T-на-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
или NumPredictors + 1
элементы.
Для NumPredictors
элементы, bayeslm
устанавливает предшествующее среднее значение NumPredictors
только предикторы. Предикторы соответствуют столбцам в данных предиктора (заданным во время оценки, симуляции или прогнозирования). bayeslm
игнорирует точку пересечения в модели, то есть, bayeslm
задает предшествующее значение по умолчанию для любой точки пересечения.
Для NumPredictors + 1
элементы, первый элемент соответствует предшествующему среднему значению точки пересечения, а все другие элементы соответствуют предикторам.
Пример: 'Mu',[1; 0.08; 2]
Типы данных: double
'V'
- Условный ковариационный матричный гиперпараметр Гауссова априорного β1e5*eye(Intercept + NumPredictors)
(по умолчанию) | симметричная, положительно определенная матрицаУсловный ковариационный матричный гиперпараметр Гауссова априорного на β, заданный как разделенная разделенными запятой парами, состоящая из 'V'
и a 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
) -на-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
) -на-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
) -на-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
) -на-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
is 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'
и
an (Intercept
+ NumPredictors
) -by- (Intercept
+ NumPredictors
) числовая, положительно определенная матрица. Следовательно, предшествующая ковариационная матрица для
в модели смеси представлено:j компонента
Для сопряженного ('ModelType','mixconjugate'
), sigma2 * diag (sqrt (
V (:, j
)) * Корреляция * diag (sqrt (V (:, j
)))
Для полуконъюгата ('ModelType','mixsemiconjugate'
), diag (sqrt (V
(:, j
)) * Корреляция * diag (sqrt (V (:, j
)))
где sigma2
является σ2 и V
- матрица коэффициентов отклонения коэффициентов или отклонений.
Строки и столбцы соответствуют именам переменных в VarNames
.
По умолчанию коэффициенты регрессии являются некоррелированными, обусловленными режимом.
Примечание
Можно задать любую числовую матрицу соответствующего размера. Однако, если ваша спецификация не положительно определена, bayeslm
выдает предупреждение и заменяет вашу спецификацию на CorrelationPD
, где:
CorrelationPD = 0.5*(Correlation + Correlation.');
Совет
Для получения дополнительной информации о том, какое значение задать для Correlation
, см. [1].
Типы данных: double
'A'
- Формируйте гиперпараметр обратной гаммы перед σ23
(по умолчанию) | числовой скалярФормируйте гиперпараметр обратной гаммы перед σ2, заданная как разделенная разделенными запятой парами, состоящая из 'A'
и числовой скаляр.
A
должен быть по крайней мере –(Intercept + NumPredictors)/2
.
С B
удерживаемый фиксированный обратный гамма- распределение становится высокое и более концентрированной как A
увеличивается. Эта характеристика взвешивает предыдущую модель σ2 более сильно, чем вероятность во время апостериорной оценки.
Функциональную форму обратного гамма- распределения см. в Аналитически отслеживаемых апостериорах.
Эта опция не применяется к эмпирическим или пользовательским предыдущим распределениям.
Пример: 'A',0.1
Типы данных: double
'B'
- Шкала гиперпараметра обратной гаммы перед σ21
(по умолчанию) | положительный скалярный | 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) -на-1 числовой вектор, представляющий градиент logpdf
. Элементы соответствуют элементам params
.
glpdf
является необязательным выходным аргументом, и только гамильтоновый семплер Монте-Карло (см. hmcSampler
) применяет его. Если вы знаете аналитическую частную производную относительно одних параметров, но не других, то задайте элементы glpdf
, соответствующий неизвестным частным производным, с NaN
. MATLAB вычисляет численный градиент для отсутствующих частных производных, что удобно, но замедляет выборку.
params
является (Intercept
+ NumPredictors
+ 1) -на-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
.
A Bayesian linear regression model обрабатывает параметры β и σ2 в модели многофакторной линейной регрессии (MLR) yt = xt β + εt как случайные переменные.
Для времен t = 1,..., T:
yt - наблюдаемая реакция.
xt является 1-бай- (p + 1) вектором-строкой наблюдаемых значений p предикторов. Чтобы разместить точку пересечения модели, x 1 t = 1 для всех t.
β является (p + 1) -на-1 вектор-столбец коэффициентов регрессии, соответствующих переменным, которые составляют столбцы xt.
εt является случайным нарушением порядка со средним значением нуля и Cov (ε) = σ2I T × T, в то время как ε является вектором T -by-1, содержащим все нарушения порядка. Эти предположения подразумевают, что вероятность данных является
ϕ (yt; xtβ, σ2) - Гауссова плотность вероятностей со средней xtβ и отклонением σ2 оценивается при yt;.
Прежде чем рассматривать данные, вы накладываете joint prior distribution предположение на (β, σ2). В байесовском анализе вы обновляете распределение параметров с помощью информации о параметрах, полученных из вероятности данных. Результатом является joint posterior distribution (β, σ2) или conditional posterior distributions параметров.
[1] Джордж, Э. И. и Р. Э. Маккаллох. «Выбор переменной через выборку Гиббса». Журнал Американской статистической ассоциации. Том 88, № 423, 1993, с. 881-889.
[2] Koop, G., D. J. Porier, and J. L. Tobias. Байесовские эконометрические методы. Нью-Йорк, Нью-Йорк: Cambridge University Press, 2007.
[3] Парк, Т. и Г. Казелла. «Байесовский лассо». Журнал Американской статистической ассоциации. Том 103, № 482, 2008, стр. 681-686.
conjugateblm
| customblm
| diffuseblm
| empiricalblm
| lassoblm
| mixconjugateblm
| mixsemiconjugateblm
| semiconjugateblm
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.