Создайте объект байесовской линейной регрессионной модели
Чтобы создать модель байесовской векторной авторегрессии (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 степенями свободы для каждого компонента и матрица тождеств для корреляционной матрицы. Кроме того, распределение центрируется
, и каждый компонент масштабируется соответствующими элементами вектора.![${\left[ {\begin{array}{*{20}{c}} {10}&1&1&1 \end{array}} \right]^\prime }$](../examples/econ/win64/CustomMultivariatetPriorModelForCoefficientsExample_eq11071235993557116495.png)
.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.