Оцените апостериорное распределение параметров байесовской линейной регрессионой модели
Чтобы выполнить выбор переменной предиктора для байесовской линейной регрессионой модели, см. estimate.
возвращает байесовскую линейную регрессионую модель PosteriorMdl = estimate(PriorMdl,X,y)PosteriorMdl который характеризует апостериорные распределения коэффициентов в соединениях β и отклонение нарушения порядка σ2. PriorMdl задает предшествующее распределение параметров в соединениях и структуру линейной регрессионой модели. X - данные предиктора и y - данные отклика. PriorMdl и PosteriorMdl возможно, не совпадает с типом объекта.
Для создания PosteriorMdl, а estimate функция обновляет предшествующее распределение информацией о параметрах, которые она получает из данных.
NaNs в данных указывают отсутствующие значения, которые 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.