Создание объекта модели байесовской линейной регрессии
Чтобы создать модель авторегрессии байесовского вектора (VARX) для многомерного анализа временных рядов, см. раздел bayesvarm.
создает объект модели байесовской линейной регрессии (PriorMdl = bayeslm(NumPredictors)PriorMdl) состоит из NumPredictors предикторы, перехват и диффузное совместное предварительное распределение для β и PriorMdl является шаблоном, который определяет предыдущие распределения и размерность β.
определяет совместное предварительное распределение PriorMdl = bayeslm(NumPredictors,'ModelType',modelType)modelType для β и start2. Для этого синтаксиса: modelType могут быть:
'conjugate', 'semiconjugate', или 'diffuse' для создания стандартной байесовской модели линейной регрессии
'mixconjugate', 'mixsemiconjugate', или 'lasso' создание байесовской модели линейной регрессии для выбора переменных предиктора
Например, 'ModelType','conjugate' задает сопряжённые приоры для гауссова правдоподобия, то есть β 'start2 как гауссова, start2 как обратная гамма.
использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Например, можно указать, следует ли включать пересечение регрессии, или указать дополнительные опции для предварительного распределения соединения. PriorMdl = bayeslm(NumPredictors,'ModelType',modelType,Name,Value)modelType.
При указании 'ModelType','empirical', необходимо также указать BetaDraws и Sigma2Draws аргументы пары имя-значение. BetaDraws и Sigma2Draws характеризуют соответствующие предшествующие распределения.
При указании 'ModelType','custom', необходимо также указать LogPDF аргумент пары имя-значение. LogPDF полностью характеризует совместное предварительное распределение.
Рассмотрим модель множественной линейной регрессии, которая предсказывает реальный валовой национальный продукт США (GNPR) с использованием линейной комбинации индекса промышленного производства (IPI), общая занятость (E) и реальная заработная плата (WR).
β3WRt + αt.
Для всех - это ряд независимых гауссовых возмущений со средним значением 0 и дисперсией .
Предположим, что коэффициенты регрессии β3] ′ и дисперсию возмущений start2 являются случайными переменными, а их предшествующие значения и распределение неизвестны. В этом случае используйте неинформативный Jefferys prelor: совместное предварительное распределение пропорционально 1/start2.
Эти допущения и вероятность данных подразумевают аналитически прослеживаемое апостериорное распределение.
Создайте диффузную предыдущую модель для параметров линейной регрессии, которая является типом модели по умолчанию. Укажите количество предикторов p.
p = 3; Mdl = bayeslm(p)
Mdl =
diffuseblm with properties:
NumPredictors: 3
Intercept: 1
VarNames: {4x1 cell}
| Mean Std CI95 Positive Distribution
-----------------------------------------------------------------------------
Intercept | 0 Inf [ NaN, NaN] 0.500 Proportional to one
Beta(1) | 0 Inf [ NaN, NaN] 0.500 Proportional to one
Beta(2) | 0 Inf [ NaN, NaN] 0.500 Proportional to one
Beta(3) | 0 Inf [ NaN, NaN] 0.500 Proportional to one
Sigma2 | Inf Inf [ NaN, NaN] 1.000 Proportional to 1/Sigma2
Mdl является diffuseblm Объект байесовской модели линейной регрессии, представляющий предварительное распределение коэффициентов регрессии и дисперсии возмущений. bayeslm отображает сводку предыдущих распределений в командной строке. Поскольку предшествующая версия является неинформативной, а модель не содержит данных, сводка является тривиальной.
Если у вас есть данные, то вы можете оценить характеристики заднего распределения, пройдя предыдущую модель Mdl и данные для estimate.
Рассмотрим модель линейной регрессии в предыдущей модели диффузии по умолчанию. Предположим, что эти предыдущие распределения:
V M является вектором средства 4 на 1, V является масштабированной матрицей положительной определенной ковариации 4 на 4.
B А В - форма и масштаб, соответственно, обратного гамма-распределения.
Эти допущения и правдоподобие данных подразумевают модель нормальной обратной гамма-полунъюгации. Условные апостериоры сопряжены с предшествующим относительно вероятности данных, но краевой задний является аналитически труднореализуемым.
Создайте предыдущую модель normal-inverse-gamma semaconjugate для параметров линейной регрессии. Укажите количество предикторов p.
p = 3; Mdl = bayeslm(p,'ModelType','semiconjugate')
Mdl =
semiconjugateblm with properties:
NumPredictors: 3
Intercept: 1
VarNames: {4x1 cell}
Mu: [4x1 double]
V: [4x4 double]
A: 3
B: 1
| Mean Std CI95 Positive Distribution
-------------------------------------------------------------------------------
Intercept | 0 100 [-195.996, 195.996] 0.500 N (0.00, 100.00^2)
Beta(1) | 0 100 [-195.996, 195.996] 0.500 N (0.00, 100.00^2)
Beta(2) | 0 100 [-195.996, 195.996] 0.500 N (0.00, 100.00^2)
Beta(3) | 0 100 [-195.996, 195.996] 0.500 N (0.00, 100.00^2)
Sigma2 | 0.5000 0.5000 [ 0.138, 1.616] 1.000 IG(3.00, 1)
Mdl является semiconjugateblm Объект байесовской модели линейной регрессии, представляющий предварительное распределение коэффициентов регрессии и дисперсии возмущений. bayeslm отображает сводку предыдущих распределений в командной строке. Например, элементы Positive представляют собой предшествующую вероятность того, что соответствующий параметр является положительным.
Если у вас есть данные, то вы можете оценить характеристики предельного или условного заднего распределения, пройдя предыдущую модель Mdl и данные для estimate.
Рассмотрим модель линейной регрессии в предыдущей модели диффузии по умолчанию. Предположим, что эти предыдущие распределения:
λ 2В M является вектором средства 4 на 1, V является масштабированной матрицей положительной определенной ковариации 4 на 4. Предположим, что у Вас есть предварительные знания] ′ и V является матрицей идентичности.
B А В - форма и масштаб, соответственно, обратного гамма-распределения.
Эти допущения и правдоподобие данных подразумевают нормально-обратно-гамма-сопряженную модель.
Создайте нормально-обратно-гамма-сопряженную предыдущую модель для параметров линейной регрессии. Укажите количество предикторов p и установите имена коэффициентов регрессии в соответствующие имена переменных.
p = 3; Mdl = bayeslm(p,'ModelType','conjugate','Mu',[-20; 4; 0.1; 2],'V',eye(4),... 'VarNames',["IPI" "E" "WR"])
Mdl =
conjugateblm with properties:
NumPredictors: 3
Intercept: 1
VarNames: {4x1 cell}
Mu: [4x1 double]
V: [4x4 double]
A: 3
B: 1
| Mean Std CI95 Positive Distribution
----------------------------------------------------------------------------------
Intercept | -20 0.7071 [-21.413, -18.587] 0.000 t (-20.00, 0.58^2, 6)
IPI | 4 0.7071 [ 2.587, 5.413] 1.000 t (4.00, 0.58^2, 6)
E | 0.1000 0.7071 [-1.313, 1.513] 0.566 t (0.10, 0.58^2, 6)
WR | 2 0.7071 [ 0.587, 3.413] 0.993 t (2.00, 0.58^2, 6)
Sigma2 | 0.5000 0.5000 [ 0.138, 1.616] 1.000 IG(3.00, 1)
Mdl является conjugateblm Объект байесовской модели линейной регрессии, представляющий предварительное распределение коэффициентов регрессии и дисперсии возмущений. bayeslm отображает сводку предыдущих распределений в командной строке. Хотя bayeslm присваивает имена дисперсии перехвата и возмущения, все остальные коэффициенты имеют заданные имена.
По умолчанию bayeslm устанавливает форму и масштаб как 3 и 1соответственно. Предположим, что вы знаете, что форма и масштаб 5 и 2.
Установите предшествующую форму и шкалу, соответствующие предполагаемым значениям.
Mdl.A = 5; Mdl.B = 2
Mdl =
conjugateblm with properties:
NumPredictors: 3
Intercept: 1
VarNames: {4x1 cell}
Mu: [4x1 double]
V: [4x4 double]
A: 5
B: 2
| Mean Std CI95 Positive Distribution
----------------------------------------------------------------------------------
Intercept | -20 0.3536 [-20.705, -19.295] 0.000 t (-20.00, 0.32^2, 10)
IPI | 4 0.3536 [ 3.295, 4.705] 1.000 t (4.00, 0.32^2, 10)
E | 0.1000 0.3536 [-0.605, 0.805] 0.621 t (0.10, 0.32^2, 10)
WR | 2 0.3536 [ 1.295, 2.705] 1.000 t (2.00, 0.32^2, 10)
Sigma2 | 0.1250 0.0722 [ 0.049, 0.308] 1.000 IG(5.00, 2)
bayeslm обновляет предыдущую сводку распределения на основе изменений формы и масштаба.
Рассмотрим модель линейной регрессии в предыдущей модели диффузии по умолчанию. Предположим, что эти предыдущие распределения:
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 не отображает сводку предыдущих распределений в командной строке.
Рассмотрим модель линейной регрессии в предыдущей модели диффузии по умолчанию.
Предположим, что эти предыдущие распределения:
Для k = 0..., 3, есть лапласовское распределение со средним из 0 и масштабом , где - параметр сжатия. Коэффициенты условно независимы.
B А В - форма и масштаб, соответственно, обратного гамма-распределения.
Создание предыдущей модели для байесовской линейной регрессии с помощью bayeslm. Укажите количество предикторов p и имена переменных.
p = 3; PriorMdl = bayeslm(p,'ModelType','lasso','VarNames',["IPI" "E" "WR"]);
PriorMdl является lassoblm Объект байесовской модели линейной регрессии, представляющий предварительное распределение коэффициентов регрессии и дисперсии возмущений. По умолчанию bayeslm приписывает усадку 0.01 на перехват и 1 к другим коэффициентам в модели.
Используя точечную нотацию, измените усадку по умолчанию для всех коэффициентов, за исключением пересечения, указав вектор 3 на 1, содержащий новые значения для Lambda имущество PriorMdl.
Атрибут усадки 10 кому IPI и WR.
Поскольку E имеет масштаб, который на несколько порядков больше, чем другие переменные, приписать усадку 1e5 к нему.
Lambda(2:end) содержит усадки коэффициентов, соответствующих указанным переменным в VarNames имущество PriorMdl.
PriorMdl.Lambda = [10; 1e5; 10];
Загрузите набор данных Нельсона-Плоссера. Создайте переменные для последовательности ответа и предиктора.
load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable{:,"GNPR"};
Выполните байесовскую регрессию лассо, передав предыдущую модель и данные в estimate, то есть оценивая апостериорное распределение и . Байесовская регрессия лассо использует марковскую цепь Монте-Карло (MCMC) для выборки из задней. Для воспроизводимости задайте случайное начальное число.
rng(1); PosteriorMdl = estimate(PriorMdl,X,y);
Method: lasso MCMC sampling with 10000 draws
Number of observations: 62
Number of predictors: 4
| Mean Std CI95 Positive Distribution
-------------------------------------------------------------------------
Intercept | -1.3472 6.8160 [-15.169, 11.590] 0.427 Empirical
IPI | 4.4755 0.1646 [ 4.157, 4.799] 1.000 Empirical
E | 0.0001 0.0002 [-0.000, 0.000] 0.796 Empirical
WR | 3.1610 0.3136 [ 2.538, 3.760] 1.000 Empirical
Sigma2 | 60.1452 11.1180 [42.319, 85.085] 1.000 Empirical
Постройте график задних распределений.
plot(PosteriorMdl)

Учитывая усадку 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' - Совместное предварительное распределение (β, start2)'diffuse' (по умолчанию) | 'conjugate' | 'semiconjugate' | 'empirical' | 'custom' | 'lasso' | 'mixconjugate' | 'mixsemiconjugate'Совместное предварительное распределение (β, start2), определяемое как разделенная запятыми пара, состоящая из 'ModelType' и значение в следующих таблицах.
Для стандартной модели байесовской регрессии выберите значение в этой таблице.
| Стоимость | Описание |
|---|---|
'conjugate' | Нормально-обратно-гамма-сопряженная модель
Можно настроить соответствующие гиперпараметры с помощью |
'semiconjugate' | Нормальная-обратная-гамма-полунъюгатная модель
Можно настроить соответствующие гиперпараметры с помощью |
'diffuse' | Диффузные предшествующие распределения
|
'empirical' | Пользовательские предыдущие дистрибутивы
|
'custom' | Пользовательские предыдущие дистрибутивы
|
Для байесовской регрессионной модели, которая выполняет выбор переменных предиктора, выберите значение в этой таблице.
| Стоимость | Описание |
|---|---|
'mixconjugate' | Выбор стохастической поисковой переменной (SSVS) [1] сопряженные предшествующие распределения
Дополнительные сведения см. в разделе |
'mixsemiconjugate' | SSVS [1] полуконъюгировать предыдущие распределения
Дополнительные сведения см. в разделе |
'lasso' | Байесовская регрессия лассо предшествующих распределений [3]
|
Выбранный ранее тип модели зависит от предположений относительно совместного распределения параметров. Ваш выбор может повлиять на апостериорные оценки и выводы. Дополнительные сведения см. в разделе Реализация байесовской линейной регрессии.
Пример: 'ModelType','conjugate'
Типы данных: char
'Intercept' - Флаг для включения перехвата регрессионной моделиtrue (по умолчанию) | falseФлаг для включения перехвата регрессионной модели, указанный как пара, разделенная запятыми, состоящая из 'Intercept' и значение в этой таблице.
| Стоимость | Описание |
|---|---|
false | Исключить пересечение из регрессионной модели. Следовательно, β является p-мерный вектор, где p - значение NumPredictors. |
true | Включить пересечение в регрессионную модель. Следовательно, β является (p + 1) -мерный вектор. Эта спецификация заставляет T-by-1 вектор из них быть добавленным к данным предиктора во время оценки и моделирования. |
Если включить столбец из них в данные предиктора для члена перехвата, то укажите 'Intercept',false.
Пример: 'Intercept',false
'VarNames' - Имена переменных предиктораИмена переменных предиктора для дисплеев, указанные как пара, разделенная запятыми, состоящая из 'VarNames' и строковый вектор или вектор ячейки символьных векторов. VarNames должен содержать NumPredictors элементы. VarNames( - имя переменной в столбце j)j набора данных предиктора, который задается во время оценки, моделирования или прогнозирования.
Значение по умолчанию: {'Beta(1)','Beta(2)',...,'Beta(, где p)'}p - значение NumPredictors.
Примечание
Невозможно задать имя отклонения перехвата или возмущения. В дисплеях, bayeslm дает перехвату имя Intercept и отклонение возмущения имя Sigma2. Поэтому нельзя использовать "Intercept" и "Sigma2" как имена предикторов.
Пример: 'VarNames',["UnemploymentRate"; "CPI"]
Типы данных: string | cell | char
'Mu' - Средний гиперпараметр гауссова предшествующего βzeros(Intercept + NumPredictors,1) (по умолчанию) | числовой векторСредний гиперпараметр гауссова предшествующего β, указанный как пара, разделенная запятыми, состоящая из 'Mu' и числовой вектор.
Если Mu является вектором, то он должен иметь NumPredictors или 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. Первая строка и столбец соответствуют перехвату. Все остальные строки и столбцы соответствуют столбцам в данных предиктора.
Значение по умолчанию является плоским предшествующим значением. Для адаптивного прототипа укажите diag(Inf(Intercept + NumPredictors,1)). Адаптивные приоры указывают нулевую точность для того, чтобы предыдущее распределение оказывало как можно меньшее влияние на заднее распределение.
Для 'ModelType',conjugate, V является предшествующей ковариацией β вплоть до множителя, равного
Пример: 'V',diag(Inf(3,1))
Типы данных: double
'Lambda' - Параметр регуляризации лассо1 (по умолчанию) | положительный числовой скаляр | положительный числовой векторПараметр регуляризации лассо для всех коэффициентов регрессии, указанный как пара, разделенная запятыми, состоящая из 'Lambda' и положительный числовой скаляр или (Intercept + NumPredictors) -по-1 положительный числовой вектор. Большие значения Lambda заставляют соответствующие коэффициенты уменьшаться ближе к нулю.
Предположим X является Tоколо-NumPredictors матрица данных предиктора, которые задаются во время оценки, моделирования или прогнозирования.
Если Lambda является вектором и Intercept является true, Lambda(1) - усадка для перехвата, Lambda(2) - усадка для коэффициента первого предиктора X(:,1), Lambda(3) - усадка для коэффициента второго предиктора X(:,2),..., иLambda(NumPredictors + 1) - усадка для коэффициента последнего предиктора X(:,NumPredictors).
Если Lambda является вектором и Intercept является false, Lambda(1) - усадка для коэффициента первого предиктора X(:,1),..., иLambda(NumPredictors) - усадка для коэффициента последнего предиктора X(:,NumPredictors).
При вводе скаляра s для Lambda, то все коэффициенты предикторов в X имеют усадку s.
Если Intercept является true, перехват имеет усадку 0.01, и lassoblm магазины [0.01; s*ones(NumPredictors,1)] в Lambda.
В противном случае lassoblm магазины s*ones(NumPredictors,1) в Lambda.
Пример: 'Lambda',6
Типы данных: double
'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 равно 1 - kProbability(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 имеет значение start2 и V - матрица коэффициентов дисперсии коэффициентов или дисперсий.
Строки и столбцы соответствуют именам переменных в VarNames.
По умолчанию коэффициенты регрессии являются некоррелированными, зависящими от режима.
Примечание
Можно указать любую числовую матрицу соответствующего размера. Однако, если ваша спецификация не является положительной определенной, bayeslm выдает предупреждение и заменяет спецификацию на CorrelationPD, где:
CorrelationPD = 0.5*(Correlation + Correlation.');
Совет
Для получения подробной информации о том, какое значение указать для Correlation, см. [1].
Типы данных: double
'A' - Гиперпараметр формы обратной гаммы предшествующей3 (по умолчанию) | числовой скалярГиперпараметр формы обратной гаммы, предшествующей на σ2, определенном как отделенная от запятой пара, состоящая из 'A' и числовой скаляр.
A должно быть не менее –(Intercept + NumPredictors)/2.
С B фиксированное, обратное гамма-распределение становится выше и более сконцентрировано, поскольку A увеличивается. Эта характеристика весит предшествующую модель start2 более сильно, чем вероятность при апостериорной оценке.
Функциональную форму обратного гамма-распределения см. в разделе Аналитически отслеживаемые апостериоры.
Этот параметр не применяется к эмпирическим или пользовательским предыдущим распределениям.
Пример: 'A',0.1
Типы данных: double
'B' - Шкала гиперпараметра обратной гаммы предшествующая1 (по умолчанию) | положительный скаляр | InfГиперпараметр масштаба обратной гаммы, предшествующей на σ2, определенном как отделенная от запятой пара, состоящая из 'B' и положительный скаляр или Inf.
С A фиксированное, обратное гамма-распределение становится выше и более сконцентрировано, поскольку B увеличивается. Эта характеристика весит предшествующую модель start2 более сильно, чем вероятность при апостериорной оценке.
Этот параметр не применяется к эмпирическим или пользовательским предыдущим распределениям.
Пример: 'B',5
Типы данных: double
'BetaDraws' - Случайная выборка из предыдущего распределения βСлучайная выборка из предыдущего распределения β, указанная как пара, разделенная запятыми, состоящая из 'BetaDraws' и (Intercept + NumPredictorsоколо-NumDraws числовая матрица. Строки соответствуют коэффициентам регрессии: первая строка соответствует перехвату, а последующие строки соответствуют столбцам в данных предиктора. Столбцы соответствуют последовательным розыгрышам из предыдущего распределения.
BetaDraws и Sigma2Draws должно иметь одинаковое количество столбцов.
Для получения наилучших результатов нарисуйте большое количество образцов.
Типы данных: double
'Sigma2Draws' - Случайная выборка из предыдущего распределенияСлучайная выборка из предшествующего распределения start2, определяемая как разделенная запятыми пара, состоящая из 'Sigma2Draws' и 1-по-NumDraws числовой вектор строки. Столбцы соответствуют последовательным розыгрышам из предыдущего распределения.
BetaDraws и Sigma2Draws должно иметь одинаковое количество столбцов.
Для получения наилучших результатов нарисуйте большое количество образцов.
Типы данных: double
'LogPDF' - Журнал совместной функции плотности вероятности (β, start2)Log совместной функции плотности вероятности (β, start2), определяемой как разделенная запятыми пара, состоящая из 'LogPDF' и дескриптор функции.
Предположим logprior - название функции MATLAB ®, определяющей совместное предварительное распределение (β, start2). Затем,logprior должна иметь эту форму.
function [logpdf,glpdf] = logprior(params) ... end
logpdf - числовой скаляр, представляющий логарифм плотности вероятности соединения (β, start2).
glpdf является (Intercept + NumPredictors + 1) -по-1 числовой вектор, представляющий градиент logpdf. Элементы соответствуют элементам params.
glpdf является необязательным выходным аргументом и только гамильтоновым образцом Монте-Карло (см. hmcSampler) применяет его. Если аналитическая частная производная известна относительно одних параметров, но не других, то задайте элементы glpdf , соответствующие неизвестным частным производным NaN. MATLAB вычисляет численный градиент для отсутствующих частных производных, что удобно, но замедляет выборку.
params является (Intercept + NumPredictors + 1) -по-1 числовой вектор. ПервоеIntercept + NumPredictors элементы должны соответствовать значениям β, а последний элемент должен соответствовать значению start2. Первым элементом β является перехват, если таковой существует. Все остальные элементы соответствуют переменным предиктора в данных предиктора, которые задаются во время оценки, моделирования или прогнозирования.
Пример: 'LogPDF',@logprior
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.
Байесовская модель линейной регрессии рассматривает параметры β и start2 в модели множественной линейной регрессии (MLR) yt = xtβ + αt как случайные величины.
Для времени t = 1,...,T:
yt - наблюдаемый ответ.
xt - вектор строки 1-by- (p + 1) наблюдаемых значений p предикторов. Чтобы разместить пересечение модели, x1t = 1 для всех t.
β - вектор (p + 1) -by-1-столбца коэффициентов регрессии, соответствующих переменным, составляющим столбцы xt.
αt - случайное возмущение со средним значением ноля и Cov (λ) = start2IT × T, в то время, как start- T-by-1 вектор, содержащий все возмущения. Эти допущения подразумевают, что вероятность данных
xtβ, start2).
(yt; xtβ, start2) - гауссова плотность вероятности со средним значением xtβ и дисперсией start2, оцениваемой при yt;.
Перед рассмотрением данных необходимо наложить совместное предварительное предположение о распределении на (β, start2). В байесовском анализе выполняется обновление распределения параметров с использованием информации о параметрах, полученных из вероятности получения данных. Результатом является совместное апостериорное распределение (β, start2) или условное апостериорное распределение параметров.
[1] Джордж, Э. И. и Р. Э. Маккаллох. «Выбор переменной с помощью выборки Гиббса». Журнал Американской статистической ассоциации. т. 88, № 423, 1993, стр. 881-889.
[2] Коуп, Г., Д. Дж. Пуарье и Дж. Л. Тобиас. Байесовские эконометрические методы. Нью-Йорк, Нью-Йорк: Cambridge University Press, 2007.
[3] Парк, T. и Г. Казелла. «Байесовский Лассо.» Журнал Американской статистической ассоциации. т. 103, № 482, 2008, стр. 681-686.
conjugateblm | customblm | diffuseblm | empiricalblm | lassoblm | mixconjugateblm | mixsemiconjugateblm | semiconjugateblmИмеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.