Подходящие параметры Байесовой модели линейной регрессии к данным
Чтобы выполнить выбор переменной прогноза для Байесовой модели линейной регрессии, смотрите estimate
.
PosteriorMdl = estimate(PriorMdl,X,y)
PosteriorMdl = estimate(PriorMdl,X,y,Name,Value)
[PosteriorMdl,estBeta,EstBetaCov,estSigma2,estSigma2Var]
= estimate(___)
[PosteriorMdl,estBeta,EstBetaCov,estSigma2,estSigma2Var,Summary]
= estimate(___)
возвращает модель, которая характеризует объединенные апостериорные распределения β и σ 2 из Байесовой модели линейной регрессии. PosteriorMdl
= estimate(PriorMdl
,X
,y
)PriorMdl
задает объединенное предшествующее распределение параметров и структуру модели линейной регрессии. X
является данными о предикторе, и y
является данными об ответе. PriorMdl
и PosteriorMdl
не могут быть тем же типом объекта.
Чтобы произвести PosteriorMdl
, функция estimate
обновляет предшествующее распределение с информацией о параметрах, которые это получает из данных.
NaN
s в данных указывает на отсутствующие значения, которые estimate
удаляет при помощи мудрого списком удаления.
дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, можно задать значение для одного из β или σ 2, чтобы оценить апостериорное распределение conditional одного параметра, учитывая заданное значение другого параметра.PosteriorMdl
= estimate(PriorMdl
,X
,y
,Name,Value
)
Если вы задаете Beta
или Sigma2
, то PosteriorMdl
и PriorMdl
равны.
Следующие два синтаксиса будут удалены в будущем релизе. Для получения дополнительной информации см. Вопросы совместимости.
[
использование любая из комбинаций входных аргументов в предыдущих синтаксисах, чтобы возвратиться:PosteriorMdl
,estBeta
,EstBetaCov
,estSigma2
,estSigma2Var
]
= estimate(___)
estBeta
— Предполагаемые коэффициенты регрессии, то есть, средний вектор апостериорного распределения β
EstBetaCov
— Предполагаемая ковариационная матрица содействующих оценок, то есть, ковариационная матрица апостериорного распределения β
EstSigma2
— Предполагаемое отклонение воздействия, то есть, среднее значение апостериорного распределения σ 2
EstSigma2Var
— Предполагаемое отклонение отклонения воздействия, то есть, отклонения апостериорного распределения σ 2
Если вы задаете Beta
или Sigma2
, то estimate
возвращает условные следующие оценки. В противном случае estimate
возвращает объединенные следующие оценки.
[
также возвращает таблицу, которая содержит следующее для каждого параметра: следующие средние значения и стандартные отклонения, 95%-е вероятные интервалы, апостериорная вероятность, что параметр больше, чем 0, и описание апостериорного распределения (если вы существуете).PosteriorMdl
,estBeta
,EstBetaCov
,estSigma2
,estSigma2Var
,Summary
]
= 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
близко к среднеквадратической ошибке (MSE) OLS.
Считайте несколько моделью линейной регрессии, которая предсказывает США действительный валовой национальный продукт (GNPR
) с помощью линейной комбинации индекса промышленного производства (IPI
), общая занятость (E
) и действительная заработная плата (WR
).
Для всех, серия независимых Гауссовых воздействий со средним значением 0 и отклонение. Примите эти предшествующие дистрибутивы:
4-D t распределение с 30 степенями свободы для каждого компонента, корреляционная матрица 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
, но принимает значения параметров только и содержит гиперзначения параметров, зафиксированные к произвольно выбранным значениям.
rng(1); % For reproducibility
dof = 30;
V = rand(4,4);
Sigma = V'*V;
st = sqrt(diag(Sigma));
C = Sigma./(st*st');
ct = -10*rand(4,1);
a = 10*rand;
b = 10*rand;
logPDF = @(params)priorMVTIG(params,ct,st,dof,C,a,b);
Создайте пользовательскую объединенную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p
. Кроме того, задайте указатель на функцию для priorMVTIG
и имен переменных.
p = 3; PriorMdl = bayeslm(p,'ModelType','custom','LogPDF',logPDF,... 'VarNames',["IPI" "E" "WR"]);
PriorMdl
является customblm
Байесов объект модели линейной регрессии, представляющий предшествующее распределение отклонения воздействия и коэффициентов регрессии.
Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда предиктора и ответа.
load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable{:,'GNPR'};
Оцените крайние апостериорные распределения и использование сэмплера Гамильтонова Монте-Карло (HMC). Задайте выборки рисунка 10,000, и электротермотренировка 1 000 чертит.
PosteriorMdl = estimate(PriorMdl,X,y,'Sampler','hmc','NumDraws',1e4,... 'Burnin',1e3);
Method: MCMC sampling with 10000 draws Number of observations: 62 Number of predictors: 4 | Mean Std CI95 Positive Distribution -------------------------------------------------------------------------- Intercept | -23.8681 3.1357 [-30.155, -17.617] 0.000 Empirical IPI | 4.3819 0.1089 [ 4.165, 4.596] 1.000 Empirical E | 0.0011 0.0002 [ 0.001, 0.002] 1.000 Empirical WR | 2.4998 0.3355 [ 1.849, 3.167] 1.000 Empirical Sigma2 | 39.9245 6.7843 [28.684, 55.345] 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,condPostMeanBeta,CondPostCovBeta] = 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
Warning: Current syntax supports 6 output arguments, and will be removed in a future release. For supported output arguments, see <a href="matlab:helpview(fullfile(docroot,'econ','econ.map'),'blmestimate')">estimate</a>.
estimate
возвращается 4 1 вектор средних значений (condPostMeanBeta
) и ковариационная матрица 4 на 4 (CondPostCovBeta
) условного апостериорного распределения учитывая, что данные и это . Кроме того, estimate
отображает сводные данные условного апостериорного распределения . Поскольку фиксируется во время оценки, выводы на ней тривиальны.
Предупреждение указывает, что в будущем релизе синтаксисы estimate
изменятся. В это время не обновляйте свой код. Для получения дополнительной информации смотрите Заменяющий Нежелательные Синтаксисы оценки.
Отобразите 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
.
[~,~,~,condPostMeanSigma2,condPostVarSigma2] = 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)
Warning: Current syntax supports 6 output arguments, and will be removed in a future release. For supported output arguments, see <a href="matlab:helpview(fullfile(docroot,'econ','econ.map'),'blmestimate')">estimate</a>.
estimate
возвращает среднее значение (condPostMeanSigma2
) и отклонение (CondPostVarSigma2
) условного апостериорного распределения учитывая данные и это condPostMeanBeta
. В отображении, выводах на тривиальны.
Считайте модель регрессии в Оценке Следующей Используя гамильтонов Сэмплер Монте-Карло. Этот пример использует те же данные и контекст, но принимает полусопряженную предшествующую модель вместо этого.
Создайте полусопряженную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов 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'};
Оцените крайние апостериорные распределения и . Затем получите сводную таблицу оценки:
Передача следующей модели к summarize
Извлечение поля MarginalDistributions
из возвращенных сводных данных
rng(1); % For reproducibility
PosteriorMdl = 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
Summary = summarize(PosteriorMdl); Summary = Summary.MarginalDistributions;
PosteriorMdl
является объектом модели empiricalblm
, потому что крайние апостериорные распределения полусопряженных моделей аналитически тяжелы, таким образом, estimate
должен реализовать сэмплер Гиббса. Summary
является таблицей, содержащей оценки, и заключает тот estimate
отображения в командной строке.
Отобразите сводную таблицу.
Summary
Summary=5×5 table
Mean Std CI95 Positive Distribution
_________ __________ ________________________ ________ ____________
Intercept -23.992 9.052 -41.734 -6.1976 0.0053 'Empirical'
IPI 4.3929 0.14578 4.1011 4.6782 1 'Empirical'
E 0.0011124 0.00033976 0.00045128 0.0017883 0.9989 'Empirical'
WR 2.4711 0.3576 1.7622 3.1781 1 'Empirical'
Sigma2 46.747 8.455 33.099 66.126 1 'Empirical'
Доступ к 95% equitailed вероятный интервал коэффициента регрессии 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
, или conjugateblm
или объект модели empiricalblm
. В этом случае estimate
обновляет объединенное апостериорное распределение с помощью новых наблюдений в X
и y
.
X
Данные о предиктореДанные о предикторе для нескольких модель линейной регрессии, заданная как numObservations
-by-PriorMdl.NumPredictors
числовая матрица. numObservations
является количеством наблюдений и должен быть равен длине y
.
Типы данных: double
y
Данные об ответеДанные об ответе для нескольких модель линейной регрессии, заданная как числовой вектор с элементами numObservations
.
Типы данных: double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Sigma2',2
задает оценку условного апостериорного распределения коэффициентов регрессии, учитывая данные и что заданным отклонением воздействия является 2
.Отображение
Отметьте, чтобы отобразить Байесовы сводные данные средства оценки в командной строкеtrue
(значение по умолчанию) | false
Отметьте, чтобы отобразить Байесовы сводные данные средства оценки в командной строке, заданной как пара, разделенная запятой, состоящая из 'Display'
и значения в этой таблице.
Значение | Описание |
---|---|
true | estimate распечатывает информацию об оценке и таблицу, обобщающую Байесовы средства оценки к командной строке. |
false | estimate не распечатывает к командной строке. |
Информация об оценке включает метод оценки, зафиксированные параметры, количество наблюдений и количество предикторов. Сводная таблица содержит оцененные следующие средние значения и стандартные отклонения (квадратный корень из следующего отклонения), 95% equitailed вероятные интервалы, апостериорная вероятность, что параметр больше, чем 0, и описание апостериорного распределения (если известный).
Если вы задаете один из Beta
или Sigma2
, то estimate
включает вашу спецификацию в отображение, и соответствующие следующие оценки тривиальны.
Пример: 'Display',false
Типы данных: логический
\beta
Значение коэффициентов регрессии для условной оценки апостериорного распределения отклонения воздействия[]
) (значение по умолчанию) | числовой вектор-столбецЗначение коэффициентов регрессии для условной оценки апостериорного распределения отклонения воздействия, заданного как пара, разделенная запятой, состоящая из 'Beta'
и (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
. Поэтому estimate
основывает оценки от выборок 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
Типы данных: логический
'Sampler'
— Сэмплер MCMC'slice'
(значение по умолчанию) | 'metropolis'
| 'hmc'
Сэмплер MCMC, заданный как пара, разделенная запятой, состоящая из 'Sampler'
и значения в этой таблице.
Значение | Описание |
---|---|
'slice' | Сэмплер среза |
'metropolis' | Случайный сэмплер Столицы обхода |
'hmc' | Сэмплер Гамильтонова Монте-Карло (HMC) |
Увеличить качество MCMC чертит, настройте сэмплер.
Прежде, чем вызвать estimate
, задайте настраивающиеся параметры и их значения при помощи sampleroptions
. Например, чтобы задать ширину сэмплера среза width
, используйте:
options = sampleroptions('Sampler',"slice",'Width',width);
Задайте объект, содержащий настраивающиеся спецификации параметра, возвращенные sampleroptions
при помощи аргумента пары "имя-значение" 'Options'
. Например, чтобы использовать настраивающиеся спецификации параметра в options
, задайте:
'Options',options
Если вы задаете сэмплер HMC, то лучшая практика состоит в том, чтобы обеспечить градиент для некоторых переменных, по крайней мере. estimate
обращается численный расчет любых недостающих частных производных (значения NaN
) в векторе градиента.
Пример: 'Sampler',"hmc"
Типы данных: string
Опции
Опции сэмплера[]
(значение по умолчанию) | массив структурОпции сэмплера, заданные как пара, разделенная запятой, состоящая из 'Options'
и массива структур, возвращенного sampleroptions
. Используйте 'Options'
, чтобы задать сэмплер MCMC и его настраивающие значения параметров.
Пример: 'Options',sampleroptions('Sampler',"hmc")
Типы данных: struct
width
Типичная ширина интервала выборкиТипичная ширина интервала выборки вокруг текущего значения в предельных распределениях для сэмплера среза, заданного как пара, разделенная запятой, состоящая из 'Width'
и положительного числового скаляра или (PriorMdl.Intercept
+ PriorMdl.NumPredictors
+ 1
)-by-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
.
Для получения дополнительной информации на поддерживаемых апостериорных распределениях, которые аналитически послушны, смотрите Аналитически Послушное Последующее поколение.
estBeta
— Предполагаемое следующее среднее значение коэффициентов регрессииПредполагаемое следующее среднее значение коэффициентов регрессии, возвращенных как числовой вектор-столбец размера PriorMdl.Intercept
+ PriorMdl.NumPredictors
.
Если PriorMdl.Intercept
является true
, то estBeta(1)
является предполагаемым прерыванием, и все другие элементы соответствуют столбцам X
. В противном случае элементы соответствуют столбцам X
.
Если вы не задаете Sigma2
, то estBeta
является предполагаемым средним значением крайнего апостериорного распределения β. В противном случае это - предполагаемое среднее значение условного апостериорного распределения β, данного Sigma2
и данные.
Если вы задаете Beta
, то estBeta
равняется Beta
.
estimate
не возвратит estBeta
в будущем релизе. Для получения дополнительной информации см. Вопросы совместимости.
EstBetaCov
— Предполагаемая следующая ковариационная матрица коэффициентов регрессииПредполагаемая следующая ковариационная матрица коэффициентов регрессии, возвращенных как (PriorMdl.Intercept
+ PriorMdl.NumPredictors
) (PriorMdl.Intercept
+ PriorMdl.NumPredictors
) числовая матрица. Строки и столбцы EstBetaCov
, соответствуют элементам estBeta
.
Если вы не задаете Sigma2
, то EstBetaCov
является предполагаемой ковариационной матрицей крайнего апостериорного распределения β. В противном случае это - предполагаемая ковариационная матрица условного апостериорного распределения β, учитывая данные и что σ 2 = Sigma2
.
Если вы задаете Beta
, то EstBetaCov
является матрицей нулей.
estimate
не возвратит EstBetaCov
в будущем релизе. Для получения дополнительной информации см. Вопросы совместимости.
estSigma2
— Предполагаемое следующее среднее значение отклонения воздействияПредполагаемое следующее среднее значение дисперсии воздействия, возвращенной в виде положительного числа.
Если вы не задаете Beta
, то estSigma2
является предполагаемым средним значением крайнего апостериорного распределения σ 2. В противном случае это - предполагаемое среднее значение условного апостериорного распределения σ 2, учитывая данные и тот β = Beta
.
Если вы задаете Sigma2
, то estSigma2
равняется Sigma2
.
estimate
не возвратит estSigma2
в будущем релизе. Для получения дополнительной информации см. Вопросы совместимости.
estSigma2Var
— Предполагаемое следующее отклонение отклонения воздействияПредполагаемое следующее отклонение дисперсии воздействия, возвращенной в виде числа.
Если вы не задаете Beta
, то estSigma2Var
является предполагаемым отклонением крайнего апостериорного распределения σ 2. В противном случае это - предполагаемая ковариационная матрица условного апостериорного распределения σ 2, учитывая данные и тот β = Beta
.
Если вы задаете Sigma2
, то estSigma2Var
является 0
.
estimate
не возвратит estSigma2Var
в будущем релизе. Для получения дополнительной информации см. Вопросы совместимости.
Сводные данные
Сводные данные Байесовых средств оценкиСводные данные Байесовых средств оценки, возвращенных как таблица. Summary
содержит ту же информацию как отображение сводных данных оценки (Display
). Строки соответствуют параметрам, и столбцы соответствуют этим следующим характеристикам:
Среднее значение
Следующее среднее значение
Станд
Следующее стандартное отклонение
CI95
– 95% equitailed вероятный интервал
Positive
– Апостериорная вероятность, что параметр больше, чем 0
Distribution
– Описание крайнего или условного апостериорного распределения параметра, когда известный
Covariances
– Предполагаемая ковариационная матрица коэффициентов и отклонения воздействия
Имена строки являются именами в PriorMdl.VarNames
. Именем последней строки является Sigma2
.
Также передайте PosteriorMdl
summarize
, чтобы получить сводные данные Байесовых средств оценки.
estimate
возвратит Summary
во втором выходном положении в будущем релизе. Для получения дополнительной информации см. Вопросы совместимости.
Если PriorMdl
является объектом модели empiricalblm
. Вы не можете задать Beta
или Sigma2
. Вы не можете оценить условные апостериорные распределения при помощи эмпирического предшествующего распределения.
Bayesian linear regression model обрабатывает параметры β и σ 2 в модели yt нескольких линейных регрессий (MLR) = xt β + εt как случайные переменные.
В течение многих времен t = 1..., T:
yt является наблюдаемым ответом.
xt является 1 на (p + 1) вектор - строка из наблюдаемых величин предикторов p. Размещать образцовое прерывание, x 1t = 1 для всего t.
β (p + 1)-by-1 вектор-столбец коэффициентов регрессии, соответствующих переменным, которые составляют столбцы xt.
εt является случайным воздействием со средним значением нуля и Cov (ε) = σ 2IT×T, в то время как ε является T-by-1 вектор, содержащий все воздействия. Эти предположения подразумевают, что вероятность данных
ϕ (yt; xtβ, σ 2) является Гауссовой плотностью вероятности со средним xtβ и отклонением σ 2 оцененных в yt;.
Прежде, чем рассмотреть данные, вы налагаете предположение joint prior distribution на (β, σ 2). В Байесовом анализе вы обновляете распределение параметров при помощи информации о параметрах, полученных из вероятности данных. Результатом является joint posterior distribution (β, σ 2) или conditional posterior distributions параметров.
Симуляция Монте-Карло подвергается изменению. Если estimate
использует симуляцию Монте-Карло, то оценки и выводы могут отличаться, когда вы вызываете estimate
многократно при на вид эквивалентных условиях. Чтобы воспроизвести результаты оценки, прежде, чем вызвать estimate
, устанавливают seed случайных чисел при помощи rng
.
Если estimate
выдает ошибку при оценке, что апостериорное распределение с помощью пользовательской предшествующей модели, то пытается настроить начальные значения параметров при помощи BetaStart
или Sigma2Start
, или пытается настроить заявленный журнал предшествующая функция, и затем восстановить модель. Ошибка может указать, что журналом предшествующего распределения является –Inf
в заданных начальных значениях.
Каждый раз, когда предшествующее распределение (PriorMdl
) и вероятность данных приводит к аналитически послушному апостериорному распределению, estimate
оценивает решения закрытой формы средств оценки Бейеса. В противном случае estimate
обращается к симуляции Монте-Карло, чтобы оценить параметры и чертить выводы. Для получения дополнительной информации смотрите Следующую Оценку и Вывод.
Эта фигура иллюстрирует, как estimate
уменьшает выборку Монте-Карло использование значений NumDraws
, Thin
и BurnIn
.
Прямоугольники представляют последовательные ничьи от распределения. estimate
удаляет белые прямоугольники из выборки Монте-Карло. Остающийся NumDraws
черные прямоугольники составляет выборку Монте-Карло.
Предупреждает запуск в R2018b
Для более простого интерфейса estimate
возвратит только предполагаемую модель и сводную таблицу оценки в будущем релизе. Таким образом, estimate
возвратит только эти выходные аргументы:
[PosteriorMdl,Summary] = estimate(...);
В текущих и прошлых релизах estimate
возвращает эти выходные аргументы:
[PosteriorMdl,estBeta,EstBetaCov,estSigma2,estSigma2Var,Summary] = estimate(...);
PosteriorMdl
, затем estimate
выдает это предупреждение:Warning: Current syntax supports 6 output arguments, and will be removed in a future release. For supported output arguments, see estimate.
В будущем релизе, когда estimate
изменяется, можно получить оцененные крайние и условные следующие средние значения и ковариации (estBeta
, EstBetaCov
, estSigma2
и estSigma2Var
) из сводной таблицы оценки Summary
.
Вы не должны обновлять свой код теперь. Однако можно подготовить код к изменению программного обеспечения. Для получения дополнительной информации смотрите Заменяющий Нежелательные Синтаксисы оценки.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.