Оцените апостериорное распределение параметров байесовской линейной регрессионой модели
Чтобы выполнить выбор переменной предиктора для байесовской линейной регрессионой модели, см. estimate
.
возвращает байесовскую линейную регрессионую модель PosteriorMdl
= estimate(PriorMdl
,X
,y
)PosteriorMdl
который характеризует апостериорные распределения коэффициентов в соединениях β и отклонение нарушения порядка σ2. PriorMdl
задает предшествующее распределение параметров в соединениях и структуру линейной регрессионой модели. X
- данные предиктора и y
- данные отклика. PriorMdl
и PosteriorMdl
возможно, не совпадает с типом объекта.
Для создания PosteriorMdl
, а estimate
функция обновляет предшествующее распределение информацией о параметрах, которые она получает из данных.
NaN
s в данных указывают отсутствующие значения, которые estimate
удаляет при помощи спискового удаления.
задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Например, можно задать значение для β или σ2 для оценки conditional апостериорного распределения одного параметра при заданном значении другого параметра.PosteriorMdl
= estimate(PriorMdl
,X
,y
,Name,Value
)
Если вы задаете Beta
или Sigma2
аргумент пары "имя-значение", затем PosteriorMdl
и PriorMdl
равны.
[
использует любую из комбинаций входных аргументов в предыдущих синтаксисах, чтобы вернуть таблицу, содержащую следующее для каждого параметра: апостериорное среднее и стандартное отклонение, 95% доверительный интервал, апостериорную вероятность того, что параметр больше 0, и описание апостериорного распределения (если он существует). Кроме того, таблица содержит апостериорную ковариационную матрицу β и σ2. Если вы задаете PosteriorMdl
,Summary
]
= estimate(___)Beta
или Sigma2
аргумент пары "имя-значение", затем estimate
возвращает условные апостериорные оценки.
Рассмотрим модель, которая предсказывает расход топлива (в MPG) автомобиля с учетом объема и веса его двигателя.
Загрузите carsmall
набор данных.
load carsmall
x = [Displacement Weight];
y = MPG;
Регрессируйте экономию топлива на объем и вес двигателя, включая точку пересечения, для получения обычных оценок методом наименьших квадратов (OLS).
Mdl = fitlm(x,y)
Mdl = Linear regression model: y ~ 1 + x1 + x2 Estimated Coefficients: Estimate SE tStat pValue __________ _________ _______ __________ (Intercept) 46.925 2.0858 22.497 6.0509e-39 x1 -0.014593 0.0082695 -1.7647 0.080968 x2 -0.0068422 0.0011337 -6.0353 3.3838e-08 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 4.09 R-squared: 0.747, Adjusted R-Squared: 0.741 F-statistic vs. constant model: 134, p-value = 7.22e-28
Mdl.MSE
ans = 16.7100
Создайте диффузное предшествующее распределение по умолчанию для одного предиктора.
p = 2; PriorMdl = bayeslm(p);
PriorMdl
является diffuseblm
объект модели.
Используйте опции по умолчанию, чтобы оценить апостериорное распределение.
PosteriorMdl = estimate(PriorMdl,x,y);
Method: Analytic posterior distributions Number of observations: 94 Number of predictors: 3 | Mean Std CI95 Positive Distribution -------------------------------------------------------------------------------- Intercept | 46.9247 2.1091 [42.782, 51.068] 1.000 t (46.92, 2.09^2, 91) Beta(1) | -0.0146 0.0084 [-0.031, 0.002] 0.040 t (-0.01, 0.01^2, 91) Beta(2) | -0.0068 0.0011 [-0.009, -0.005] 0.000 t (-0.01, 0.00^2, 91) Sigma2 | 17.0855 2.5905 [12.748, 22.866] 1.000 IG(45.50, 0.0013)
PosteriorMdl
является conjugateblm
объект модели.
Апостериорное средство и оценки коэффициентов OLS почти идентичны. Кроме того, апостериорные стандартные отклонения и стандартные ошибки OLS почти идентичны. Среднее апостериорное значение Sigma2
близок к средней квадратичной невязке OLS (MSE).
Рассмотрим множественную линейную регрессионую модель, которая предсказывает реальный валовой национальный продукт США (GNPR
) с использованием линейной комбинации общей занятости (E
) и реальная заработная плата (WR
).
Для всех является серией независимых Гауссовых нарушений порядка со средним значением 0 и отклонением. Предположим, что эти предыдущие распределения:
является 3-D t распределения с 10 степенями свободы для каждого компонента, корреляционная матрица C
, местоположение ct
, и масштабные st
.
, с формой и шкалой.
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
, но принимает только значения параметров и содержит значения гиперзначений параметров, фиксированные при произвольно выбранных значениях.
prednames = ["E" "WR"]; p = numel(prednames); numcoeff = p + 1; rng(1); % For reproducibility dof = 10; V = rand(numcoeff); Sigma = 0.5*(V + V') + numcoeff*eye(numcoeff); st = sqrt(diag(Sigma)); C = diag(1./st)*Sigma*diag(1./st); ct = rand(numcoeff,1); a = 10*rand; b = 10*rand; logPDF = @(params)priorMVTIG(params,ct,st,dof,C,a,b);
Создайте пользовательскую модель предшествующего соединения для параметров линейной регрессии. Задайте количество предикторов p
. Кроме того, задайте указатель на функцию для priorMVTIG
и имена переменных.
PriorMdl = bayeslm(p,'ModelType','custom','LogPDF',logPDF,... 'VarNames',prednames);
PriorMdl
является customblm
Байесовский объект линейной регрессионной модели, представляющий предшествующее распределение коэффициентов регрессии и отклонение нарушения порядка.
Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда отклика и предиктора.
load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable{:,"GNPR"};
Оцените маргинальные апостериорные распределения и использование гамильтонового анализатора Монте-Карло (HMC). Задайте рисунок 10000 выборок и период горения 1000 рисунков.
PosteriorMdl = estimate(PriorMdl,X,y,'Sampler','hmc','NumDraws',1e4,... 'Burnin',1e3);
Method: MCMC sampling with 10000 draws Number of observations: 62 Number of predictors: 3 | Mean Std CI95 Positive Distribution ------------------------------------------------------------------------------ Intercept | -3.6486 5.6293 [-16.215, 6.143] 0.246 Empirical E | -0.0056 0.0006 [-0.007, -0.004] 0.000 Empirical WR | 15.2464 0.7727 [13.722, 16.749] 1.000 Empirical Sigma2 | 1287.5830 243.1634 [894.978, 1849.210] 1.000 Empirical
PosteriorMdl
является empiricalblm
объект модели, сохраняющий рисунки из апостериорных распределений.
Просмотр графика трассировки и графика ACF рисунков из апостериорной части (для примера) и нарушение порядка отклонения. Не стройте график периода горения.
figure; subplot(2,1,1) plot(PosteriorMdl.BetaDraws(2,1001:end)); title(['Trace Plot ' char(8212) ' \beta_1']); xlabel('MCMC Draw') ylabel('Simulation Index') subplot(2,1,2) autocorr(PosteriorMdl.BetaDraws(2,1001:end)) figure; subplot(2,1,1) plot(PosteriorMdl.Sigma2Draws(1001:end)); title(['Trace Plot ' char(8212) ' Disturbance Variance']); xlabel('MCMC Draw') ylabel('Simulation Index') subplot(2,1,2) autocorr(PosteriorMdl.Sigma2Draws(1001:end))
По-видимому, выборка MCMC нарушения порядка отклонения хорошо перемешивается.
Рассмотрим регрессионую модель в оценке апостериорной функции с использованием гамильтонового сэмплера Монте-Карло. Этот пример использует те же данные и контекст, но вместо этого принимает диффузную предшествующую модель.
Создайте диффузную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p
и имена коэффициентов регрессии.
p = 3; PriorMdl = bayeslm(p,'ModelType','diffuse','VarNames',["IPI" "E" "WR"])
PriorMdl = 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 IPI | 0 Inf [ NaN, NaN] 0.500 Proportional to one E | 0 Inf [ NaN, NaN] 0.500 Proportional to one WR | 0 Inf [ NaN, NaN] 0.500 Proportional to one Sigma2 | Inf Inf [ NaN, NaN] 1.000 Proportional to 1/Sigma2
PriorMdl
является diffuseblm
объект модели.
Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда отклика и предиктора.
load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable{:,'GNPR'};
Оцените условное апостериорное распределение учитывая данные и что и возвращает сводную таблицу оценок для доступа к оценкам.
[Mdl,SummaryBeta] = estimate(PriorMdl,X,y,'Sigma2',2);
Method: Analytic posterior distributions Conditional variable: Sigma2 fixed at 2 Number of observations: 62 Number of predictors: 4 | Mean Std CI95 Positive Distribution -------------------------------------------------------------------------------- Intercept | -24.2536 1.8696 [-27.918, -20.589] 0.000 N (-24.25, 1.87^2) IPI | 4.3913 0.0301 [ 4.332, 4.450] 1.000 N (4.39, 0.03^2) E | 0.0011 0.0001 [ 0.001, 0.001] 1.000 N (0.00, 0.00^2) WR | 2.4682 0.0743 [ 2.323, 2.614] 1.000 N (2.47, 0.07^2) Sigma2 | 2 0 [ 2.000, 2.000] 1.000 Fixed value
estimate
отображает сводные данные условного апостериорного распределения . Поскольку фиксируется на уровне 2 во время оценки, выводы на ней тривиальны.
Извлеките вектор средних значений и ковариационную матрицу условного апостериора из сводной таблицы оценок.
condPostMeanBeta = SummaryBeta.Mean(1:(end - 1))
condPostMeanBeta = 4×1
-24.2536
4.3913
0.0011
2.4682
CondPostCovBeta = SummaryBeta.Covariances(1:(end - 1),1:(end - 1))
CondPostCovBeta = 4×4
3.4956 0.0350 -0.0001 0.0241
0.0350 0.0009 -0.0000 -0.0013
-0.0001 -0.0000 0.0000 -0.0000
0.0241 -0.0013 -0.0000 0.0055
Отобразите Mdl
.
Mdl
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 IPI | 0 Inf [ NaN, NaN] 0.500 Proportional to one E | 0 Inf [ NaN, NaN] 0.500 Proportional to one WR | 0 Inf [ NaN, NaN] 0.500 Proportional to one Sigma2 | Inf Inf [ NaN, NaN] 1.000 Proportional to 1/Sigma2
Потому что estimate
вычисляет условное апостериорное распределение, оно возвращает исходную предшествующую модель, а не апостериорную в первой позиции списка выходных аргументов.
Оцените условные апостериорные распределения учитывая, что является condPostMeanBeta
.
[~,SummarySigma2] = estimate(PriorMdl,X,y,'Beta',condPostMeanBeta);
Method: Analytic posterior distributions Conditional variable: Beta fixed at -24.2536 4.3913 0.00112035 2.46823 Number of observations: 62 Number of predictors: 4 | Mean Std CI95 Positive Distribution -------------------------------------------------------------------------------- Intercept | -24.2536 0 [-24.254, -24.254] 0.000 Fixed value IPI | 4.3913 0 [ 4.391, 4.391] 1.000 Fixed value E | 0.0011 0 [ 0.001, 0.001] 1.000 Fixed value WR | 2.4682 0 [ 2.468, 2.468] 1.000 Fixed value Sigma2 | 48.5138 9.0088 [33.984, 69.098] 1.000 IG(31.00, 0.00069)
estimate
отображает сводные данные условного апостериорного распределения . Поскольку фиксировано на condPostMeanBeta
во время оценки выводы на ней тривиальны.
Извлеките среднее значение и отклонение условного апостериора из сводной таблицы оценок.
condPostMeanSigma2 = SummarySigma2.Mean(end)
condPostMeanSigma2 = 48.5138
CondPostVarSigma2 = SummarySigma2.Covariances(end,end)
CondPostVarSigma2 = 81.1581
Рассмотрим регрессионую модель в оценке апостериорной функции с использованием гамильтонового сэмплера Монте-Карло. Этот пример использует те же данные и контекст, но вместо этого принимает полунъюгатную предшествующую модель.
Создайте полуконъюгатную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p
и имена коэффициентов регрессии.
p = 3; PriorMdl = bayeslm(p,'ModelType','semiconjugate',... 'VarNames',["IPI" "E" "WR"]);
PriorMdl
является semiconjugateblm
объект модели.
Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда отклика и предиктора.
load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable{:,'GNPR'};
Оцените маргинальные апостериорные распределения и .
rng(1); % For reproducibility
[PosteriorMdl,Summary] = estimate(PriorMdl,X,y);
Method: Gibbs sampling with 10000 draws Number of observations: 62 Number of predictors: 4 | Mean Std CI95 Positive Distribution ------------------------------------------------------------------------- Intercept | -23.9922 9.0520 [-41.734, -6.198] 0.005 Empirical IPI | 4.3929 0.1458 [ 4.101, 4.678] 1.000 Empirical E | 0.0011 0.0003 [ 0.000, 0.002] 0.999 Empirical WR | 2.4711 0.3576 [ 1.762, 3.178] 1.000 Empirical Sigma2 | 46.7474 8.4550 [33.099, 66.126] 1.000 Empirical
PosteriorMdl
является empiricalblm
объект модели, потому что маргинальные апостериорные распределения семиконъюгатных моделей аналитически неразрешимы, так что estimate
должен реализовать пробоотборник Гиббса. Summary
- таблица, содержащая оценки и выводы, которые estimate
отображается в командной строке.
Отображение сводной таблицы.
Summary
Summary=5×6 table
Mean Std CI95 Positive Distribution Covariances
_________ __________ ________________________ ________ _____________ ______________________________________________________________________
Intercept -23.992 9.052 -41.734 -6.1976 0.0053 {'Empirical'} 81.938 0.81622 -0.0025308 0.58928 0
IPI 4.3929 0.14578 4.1011 4.6782 1 {'Empirical'} 0.81622 0.021252 -7.1663e-06 -0.030939 0
E 0.0011124 0.00033976 0.00045128 0.0017883 0.9989 {'Empirical'} -0.0025308 -7.1663e-06 1.1544e-07 -8.4598e-05 0
WR 2.4711 0.3576 1.7622 3.1781 1 {'Empirical'} 0.58928 -0.030939 -8.4598e-05 0.12788 0
Sigma2 46.747 8.455 33.099 66.126 1 {'Empirical'} 0 0 0 0 71.487
Доступ к 95% справедливому достоверному интервалу коэффициента регрессии IPI
.
Summary.CI95(2,:)
ans = 1×2
4.1011 4.6782
PriorMdl
- Байесовская линейная регрессионая модельconjugateblm
объект модели | semiconjugateblm
объект модели | diffuseblm
объект модели | empiricalblm
объект модели | customblm
объект моделиБайесовская линейная регрессионая модель, представляющая предыдущую модель, заданную как объект в этой таблице.
Объект модели | Описание |
---|---|
conjugateblm | Зависимая, нормальная-обратная-гамма-сопряженная модель, возвращенная bayeslm или estimate |
semiconjugateblm | Независимая, нормальная-обратная-гамма полуконъюгатная модель, возвращенная bayeslm |
diffuseblm | Диффузная предыдущая модель, возвращенная bayeslm |
empiricalblm | Предыдущая модель, характеризующаяся выборками из предыдущих распределений, возвращенная bayeslm или estimate |
customblm | Функция предыдущего распределения, которую вы объявляете возвращенной bayeslm |
PriorMdl
может также представлять апостериорную модель соединения, возвращенную estimate
, либо a conjugateblm
или empiricalblm
объект модели. В этом случае, estimate
обновляет апостериорное распределение соединений, используя новые наблюдения в X
и y
.
X
- Данные предиктораДанные предиктора для многофакторной линейной регрессии, заданные как numObservations
-by- PriorMdl.NumPredictors
числовая матрица. numObservations
количество наблюдений и должно быть равно длине y
.
Типы данных: double
y
- Данные откликаДанные отклика для многофакторной линейной регрессии, заданные как числовой вектор с numObservations
элементы.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Sigma2',2
задает оценку условного апостериорного распределения коэффициентов регрессии с учетом данных и что заданное отклонение нарушения порядка 2
.'Display'
- Флаг для отображения сводных данных байесовских оценок в командной строкеtrue
(по умолчанию) | false
Флаг для отображения сводных данных байесовских оценок в командной строке, заданный как разделенная разделенными запятой парами, состоящая из 'Display'
и значение в этой таблице.
Значение | Описание |
---|---|
true | estimate печатает информацию оценки и таблицу, суммирующую байесовские оценки в командную строку. |
false | estimate не печатается в командной строке. |
Информация об оценке включает в себя способ оценки, фиксированные параметры, количество наблюдений и количество предикторов. Итоговая таблица содержит предполагаемые апостериорные средства и стандартные отклонения (квадратный корень апостериорной дисперсии), 95% справедливых достоверных интервалов, апостериорную вероятность того, что параметр больше 0, и описание апостериорного распределения (если известно).
Если вы задаете один из Beta
или Sigma2
, затем estimate
включает вашу спецификацию в отображение, и соответствующие апостериорные оценки тривиальны.
Пример: 'Display',false
Типы данных: logical
'Beta'
- Значение коэффициентов регрессии для условной апостериорной оценки отклонения нарушения порядка[]
) (по умолчанию) | числовой вектор-столбецЗначение коэффициентов регрессии для условной оценки апостериорного распределения отклонения нарушения порядка, заданное как разделенная разделенными запятой парами, состоящая из 'Beta'
и a (PriorMdl.Intercept
+ PriorMdl.NumPredictors
) -by-1 числовой вектор .estimate
оценивает характеристики π (σ2| y
, X
, β = Beta
), где y
является y
, X
является X
, и Beta
- значение 'Beta'
. Если PriorMdl.Intercept
является true
, затем Beta(1)
соответствует точка пересечения модели. Все другие значения соответствуют переменным предиктора, которые составляют столбцы X
. Beta
не может содержать никаких NaN
значения (то есть все коэффициенты должны быть известны).
Вы не можете задать Beta
и Sigma2
одновременно.
По умолчанию, estimate
не вычисляет характеристики условного апостериора σ2.
Пример: 'Beta',1:3
Типы данных: double
'Sigma2'
- Значение отклонения нарушения порядка для условной апостериорной оценки коэффициентов регрессии[]
) (по умолчанию) | положительный числовой скалярЗначение отклонения нарушения порядка для условной оценки апостериорного распределения коэффициентов регрессии, заданное как разделенная разделенными запятой парами, состоящая из 'Sigma2'
и положительный числовой скаляр. estimate
оценки характеристик π (β | y
, X
, Sigma2
), где y
является y
, X
является X
, и Sigma2
- значение 'Sigma2'
.
Вы не можете задать Sigma2
и Beta
одновременно.
По умолчанию, estimate
не вычисляет характеристики условного апостериора β.
Пример: 'Sigma2',1
Типы данных: double
'NumDraws'
- Моделирование Монте-Карло скорректированный размер выборки1e5
(по умолчанию) | положительное целое числоСимуляция Монте-Карло скорректированный размер выборки, заданный как разделенная разделенными запятой парами, состоящая из 'NumDraws'
и положительное целое число. estimate
фактически рисует BurnIn
+ NumDraws*
Thin
выборки, но они основывают оценки на NumDraws
выборки. Для получения дополнительной информации о том, как estimate
уменьшает полную выборку Монте-Карло, см. Алгоритмы.
Если PriorMdl
является semiconjugateblm
модель и вы задаете Beta
или Sigma2
, затем MATLAB® игнорирует NumDraws
.
Пример: 'NumDraws',1e7
Типы данных: double
'BurnIn'
- Количество ничьих для удаления из начала выборки Монте-Карло5000
(по умолчанию) | неотрицательной скаляромКоличество розыгрышей для удаления из начала выборки Монте-Карло для уменьшения переходных эффектов, заданное как разделенная разделенными запятой парами, состоящая из 'BurnIn'
и неотрицательный скаляр. Для получения дополнительной информации о том, как estimate
уменьшает полную выборку Монте-Карло, см. Алгоритмы.
Совет
Чтобы помочь вам задать соответствующий размер периода горения, определите степень переходного поведения в выборке Монте-Карло, указав 'BurnIn',0
, симулируя несколько тысяч наблюдений с помощью simulate
, а затем графическое изображение путей.
Пример: 'BurnIn',0
Типы данных: double
'Thin'
- скорректированный по Монте-Карло множитель размера выборки1
(по умолчанию) | положительное целое числоМножитель размера скорректированного Монте-Карло, заданный как разделенная разделенными запятой парами, состоящая из 'Thin'
и положительное целое число.
Фактический размер выборки Монте-Карло BurnIn
+ NumDraws
*Thin
. После отбрасывания горения, estimate
отбрасывает каждый Thin
– 1
рисует, а затем сохраняет следующий. Для получения дополнительной информации о том, как estimate
уменьшает полную выборку Монте-Карло, см. Алгоритмы.
Совет
Чтобы уменьшить потенциальную большую последовательную корреляцию в выборке Монте-Карло или уменьшить потребление памяти рисунков, сохраненных в PosteriorMdl
, задайте большое значение для Thin
.
Пример: 'Thin',5
Типы данных: double
'BetaStart'
- Начальные значения коэффициентов регрессии для выборки MCMCНачальные значения коэффициентов регрессии для выборки Монте-Карло (MCMC) марковской цепи, заданные как разделенная разделенными запятой парами, состоящая из 'BetaStart'
и числовой вектор-столбец с (PriorMdl.Intercept
+ PriorMdl.NumPredictors
) элементы. По умолчанию BetaStart
- обычная оценка методом наименьших квадратов (OLS).
Совет
Хорошей практикой является запуск estimate
несколько раз с использованием различных начальных значений параметра. Проверьте, что решения из каждого запуска сходятся к аналогичным значениям.
Пример: 'BetaStart',[1; 2; 3]
Типы данных: double
'Sigma2Start'
- Начальные значения отклонения нарушения порядка для выборки MCMCНачальные значения отклонения нарушения порядка для выборки MCMC, заданные как разделенная разделенными запятой парами, состоящая из 'Sigma2Start'
и положительный числовой скаляр. По умолчанию Sigma2Start
- остаточная средняя квадратичная невязка OLS.
Совет
Хорошей практикой является запуск estimate
несколько раз с использованием различных начальных значений параметра. Проверьте, что решения из каждого запуска сходятся к аналогичным значениям.
Пример: 'Sigma2Start',4
Типы данных: double
'Reparameterize'
- Репараметризация σ2 как логарифмический (σ2)false
(по умолчанию) | true
Репараметризация σ2 как логарифмический (σ2) во время апостериорной оценки и симуляции, заданные как разделенная разделенными запятой парами, состоящая из 'Reparameterize'
и значение в этой таблице.
Значение | Описание |
---|---|
false | estimate не репараметризовывает σ2. |
true | estimate репараметрирует σ2 как логарифмический (σ2). estimate преобразует результаты назад в исходную шкалу и не изменяет функциональную форму PriorMdl.LogPDF . |
Совет
Если вы испытываете числовые нестабильности во время апостериорной оценки или симуляции σ2, затем задайте 'Reparameterize',true
.
Пример: 'Reparameterize',true
Типы данных: logical
'Sampler'
- Пробоотборник MCMC'slice'
(по умолчанию) | 'metropolis'
| 'hmc'
Дискретизатор MCMC, заданный как разделенная разделенными запятой парами, состоящая из 'Sampler'
и значение в этой таблице.
Значение | Описание |
---|---|
'slice' | Пробоотборник среза |
'metropolis' | Случайная прогулка Metropolis sampler |
'hmc' | Гамильтониан Монте-Карло (HMC) семплер |
Совет
Чтобы повысить качество рисок MCMC, настройте дискретизатор.
Перед вызовом estimate
, задайте параметры настройки и их значения при помощи sampleroptions
. Для примера укажите ширину пробоотборника среза width
, использовать:
options = sampleroptions('Sampler',"slice",'Width',width);
Укажите объект, содержащий спецификации параметров настройки, возвращенные sampleroptions
при помощи 'Options'
аргумент пары "имя-значение". Например, чтобы использовать спецификации параметров настройки в options
, задайте:
'Options',options
Если вы задаете sampler HMC, то лучшая практика состоит в том, чтобы предоставить градиент для некоторых переменных, по крайней мере. estimate
сортирует численные расчеты любых отсутствующих частных производных (NaN
значения) в векторе градиента.
Пример: 'Sampler',"hmc"
Типы данных: string
'Options'
- опции пробоотборника[]
(по умолчанию) | массив структурОпции сэмплера, заданные как разделенная разделенными запятой парами, состоящая из 'Options'
и массив структур, возвращенный sampleroptions
. Использование 'Options'
для определения дискретизатора MCMC и его значений параметров настройки.
Пример: 'Options',sampleroptions('Sampler',"hmc")
Типы данных: struct
'Width'
- Типичная выборка - ширина интервалаТипичная ширина дискретизации-интервала вокруг текущего значения в маргинальных распределениях для дискретизатора среза, заданная как разделенная разделенными запятой парами, состоящая из 'Width'
и положительный числовой скаляр или a (PriorMdl.Intercept
+ PriorMdl.NumPredictors
+ 1
) -на-1 числовой вектор положительных значений. Первый элемент соответствует точке пересечения модели, если он существует в модели. Следующая PriorMdl.NumPredictors
элементы соответствуют коэффициентам переменных предиктора, упорядоченных столбцами данных предиктора. Последний элемент соответствует отклонению модели.
Если Width
является скаляром, тогда estimate
применяется Width
ко всем PriorMdl.NumPredictors
+ PriorMdl.Intercept
+ 1
маргинальные распределения.
Если Width
является числовым вектором, тогда estimate
применяет первый элемент к точке пересечения (если он существует), следующему PriorMdl.NumPredictors
элементы коэффициентов регрессии, соответствующих переменным предиктора в X
, и последний элемент отклонения нарушения порядка.
Если размер выборки (size(X,1)
) меньше 100, тогда Width
является 10
по умолчанию.
Если размер выборки не менее 100, то estimate
устанавливает Width
вектор соответствующих апостериорных стандартных отклонений по умолчанию, принимая диффузную предшествующую модель (diffuseblm
).
Типичная ширина дискретизатора среза не влияет на сходимость выборки MCMC. Это влияет на количество необходимых вычислений функции, то есть на эффективность алгоритма. Если ширина слишком мала, то алгоритм может реализовать чрезмерное количество вычислений функции, чтобы определить соответствующую ширину выборки. Если ширина слишком велика, то алгоритму, возможно, придется уменьшить ширину до соответствующего размера, что требует вычислений функции.
estimate
отправляет Width
на slicesample
функция. Для получения дополнительной информации см. slicesample
.
Совет
Для максимальной гибкости задайте ширину пробоотборника среза width
при помощи 'Options'
аргумент пары "имя-значение". Для примера:
'Options',sampleroptions('Sampler',"slice",'Width',width)
Пример: 'Width',[100*ones(3,1);10]
PosteriorMdl
- Байесовская линейная регрессионая модель, сохраняющая характеристики распределенияconjugateblm
объект модели | semiconjugateblm
объект модели | diffuseblm
объект модели | empiricalblm
объект модели | customblm
объект моделиБайесовская линейная регрессионая модель, сохраняющая характеристики распределения, возвращенная как conjugateblm
, semiconjugateblm
, diffuseblm
, empiricalblm
, или customblm
объект модели.
Если вы не задаете Beta
или Sigma2
(их значения []
), затем estimate
обновляет предыдущую модель, используя вероятность данных, чтобы сформировать апостериорное распределение. PosteriorMdl
характеризует апостериорное распределение. Тип его объекта зависит от типа предыдущей модели (PriorMdl
).
Объект модели | PriorMdl |
---|---|
conjugateblm
| conjugateblm или diffuseblm |
empiricalblm
| semiconjugateblm , empiricalblm , или customblm |
Если вы задаете Beta
или Sigma2
, затем PosteriorMdl
равен PriorMdl
(две модели являются одним и тем же объектом, сохраняющим одинаковые значения свойств). estimate
не обновляет предыдущую модель, чтобы сформировать апостериорную модель. Однако estBeta
, EstBetaCov
, estSigma2
, estSigma2Var
, и Summary
хранить условные апостериорные оценки.
Для получения дополнительной информации об отображении PosteriorMdl
, см. Summary
.
Для получения дополнительной информации о поддерживаемых апостериорных распределениях, которые аналитически отслеживаются, смотрите Аналитически отслеживаемые апостериоры.
Summary
- Сводные данные байесовских оценокСводные данные байесовских оценок, возвращенная в виде таблицы. Summary
содержит ту же информацию, что и отображение сводных данных оценок (Display
). Строки соответствуют параметрам, а столбцы соответствуют этим апостериорным характеристикам для каждого параметра:
Mean
- Среднее апостериорное
Std
- Апостериорное стандартное отклонение
CI95
- 95% справедливый надежный интервал
Positive
- Апостериорная вероятность того, что параметр больше 0
Distribution
- Описание маргинального или условного апостериорного распределения параметра, когда известно
Covariances
- Оценочная ковариация матрица коэффициентов и нарушение порядка отклонения
Имена строк являются именами в PriorMdl.VarNames
. Имя последней строки Sigma2
.
В качестве альтернативы передайте PosteriorMdl
кому summarize
для получения сводных данных байесовских оценок.
Если PriorMdl
является empiricalblm
объект модели. Вы не можете задать Beta
или Sigma2
. Вы не можете оценить условные апостериорные распределения с помощью эмпирического предшествующего распределения.
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 параметров.
Симуляция Монте-Карло подвержена изменениям. Если estimate
использует симуляцию Монте-Карло, тогда оценки и выводы могут варьироваться при вызове estimate
несколько раз при, казалось бы, эквивалентных условиях. Чтобы воспроизвести результаты оценки, установите начальное число случайных чисел при помощи rng
перед вызовом estimate
.
Если estimate
выдает ошибку при оценке апостериорного распределения с помощью пользовательской предыдущей модели, затем пытается настроить начальные значения параметров при помощи BetaStart
или Sigma2Start
, или попробуйте настроить объявленную функцию log previous, а затем восстановить модель. Ошибка может указать, что журнал предыдущего распределения –Inf
при заданных начальных значениях.
Всякий раз, когда предшествующее распределение (PriorMdl
) и вероятность данных дает аналитически отслеживаемое апостериорное распределение, estimate
оценивает решения закрытой формы для оценок Байеса. В противном случае, estimate
прибегает к симуляции Монте-Карло, чтобы оценить параметры и сделать выводы. Для получения дополнительной информации см. Апостериорная оценка и вывод.
Этот рисунок иллюстрирует, как estimate
уменьшает выборку Монте-Карло, используя значения NumDraws
, Thin
, и BurnIn
. Прямоугольники представляют последовательные вытяжки из распределения. estimate
удаляет белые прямоугольники из выборки Монте-Карло. Оставшиеся NumDraws
чёрные прямоугольники составляют выборку Монте-Карло.
estimate
возвращает только предполагаемый объект модели и сводные данные оценокОшибки, начинающиеся в R2019b
Для более простого интерфейса, estimate
возвращает только оценочную модель и сводную таблицу оценок. Теперь поддерживаемыми синтаксисами являются:
PosteriorMdl = estimate(...); [PosteriorMdl,Summary] = estimate(...);
В прошлых релизах, estimate
возвращены следующие выходные аргументы:
[PosteriorMdl,estBeta,EstBetaCov,estSigma2,estSigma2Var,Summary] = estimate(...);
estBeta
, EstBetaCov
, estSigma2
, и estSigma2Var
являются апостериорными средствами и ковариациями β и σ2.Начиная с R2019b, если вы запрашиваете какой-либо выходной аргумент в позиции, большей второй позиции, estimate
выдает эту ошибку:
Too many output arguments.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.