estimate

Оцените апостериорное распределение параметров байесовской линейной регрессионой модели

Описание

Чтобы выполнить выбор переменной предиктора для байесовской линейной регрессионой модели, см. estimate.

пример

PosteriorMdl = estimate(PriorMdl,X,y) возвращает байесовскую линейную регрессионую модель PosteriorMdl который характеризует апостериорные распределения коэффициентов в соединениях β и отклонение нарушения порядка σ2. PriorMdl задает предшествующее распределение параметров в соединениях и структуру линейной регрессионой модели. X - данные предиктора и y - данные отклика. PriorMdl и PosteriorMdl возможно, не совпадает с типом объекта.

Для создания PosteriorMdl, а estimate функция обновляет предшествующее распределение информацией о параметрах, которые она получает из данных.

NaNs в данных указывают отсутствующие значения, которые estimate удаляет при помощи спискового удаления.

пример

PosteriorMdl = estimate(PriorMdl,X,y,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Например, можно задать значение для β или σ2 для оценки conditional апостериорного распределения одного параметра при заданном значении другого параметра.

Если вы задаете Beta или Sigma2 аргумент пары "имя-значение", затем PosteriorMdl и PriorMdl равны.

пример

[PosteriorMdl,Summary] = estimate(___) использует любую из комбинаций входных аргументов в предыдущих синтаксисах, чтобы вернуть таблицу, содержащую следующее для каждого параметра: апостериорное среднее и стандартное отклонение, 95% доверительный интервал, апостериорную вероятность того, что параметр больше 0, и описание апостериорного распределения (если он существует). Кроме того, таблица содержит апостериорную ковариационную матрицу β и σ2. Если вы задаете 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).

$$\texttt{GNPR}_t=\beta_0+\beta_2\texttt{E}_t+\beta_3\texttt{WR}_t+\varepsilon_t.$$

Для всех $t$$\varepsilon_t$является серией независимых Гауссовых нарушений порядка со средним значением 0 и отклонением. $\sigma^2$Предположим, что эти предыдущие распределения:

  • $\beta_j\vert\sigma^2$ является 3-D t распределения с 10 степенями свободы для каждого компонента, корреляционная матрица C, местоположение ct, и масштабные st.

  • $\sigma^2 \sim IG(r_1,r_2)$, с формой$r_1$ и шкалой.$r_2$

bayeslm рассматривает эти предположения и вероятность данных, как если бы соответствующий апостериор был аналитически неразрешим.

Объявите функцию MATLAB ®, которая:

  • Принимает значения$\beta$ и$\sigma^2$ вместе в векторе-столбце и принимает значения гиперпараметров

  • Возвращает значение предыдущего распределения соединений, $\pi\left(\beta,\sigma^2\right)$учитывая значения$\beta$ и $\sigma^2$

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"};

Оцените маргинальные апостериорные распределения$\beta$ и$\sigma^2$ использование гамильтонового анализатора Монте-Карло (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 рисунков из апостериорной части$\beta_1$ (для примера) и нарушение порядка отклонения. Не стройте график периода горения.

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'};

Оцените условное апостериорное распределение β учитывая данные и что σ2=2и возвращает сводную таблицу оценок для доступа к оценкам.

[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 фиксируется на уровне 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 вычисляет условное апостериорное распределение, оно возвращает исходную предшествующую модель, а не апостериорную в первой позиции списка выходных аргументов.

Оцените условные апостериорные распределения σ2 учитывая, что β является 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 отображает сводные данные условного апостериорного распределения σ2. Поскольку β фиксировано на condPostMeanBeta во время оценки выводы на ней тривиальны.

Извлеките среднее значение и отклонение условного апостериора σ2 из сводной таблицы оценок.

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'};

Оцените маргинальные апостериорные распределения β и σ2.

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

Входные параметры

свернуть все

Байесовская линейная регрессионая модель, представляющая предыдущую модель, заданную как объект в этой таблице.

Объект моделиОписание
conjugateblmЗависимая, нормальная-обратная-гамма-сопряженная модель, возвращенная bayeslm или estimate
semiconjugateblmНезависимая, нормальная-обратная-гамма полуконъюгатная модель, возвращенная bayeslm
diffuseblmДиффузная предыдущая модель, возвращенная bayeslm
empiricalblmПредыдущая модель, характеризующаяся выборками из предыдущих распределений, возвращенная bayeslm или estimate
customblmФункция предыдущего распределения, которую вы объявляете возвращенной bayeslm

PriorMdl может также представлять апостериорную модель соединения, возвращенную estimate, либо a conjugateblm или empiricalblm объект модели. В этом случае, estimate обновляет апостериорное распределение соединений, используя новые наблюдения в X и y.

Данные предиктора для многофакторной линейной регрессии, заданные как numObservations-by- PriorMdl.NumPredictors числовая матрица. numObservations количество наблюдений и должно быть равно длине y.

Типы данных: double

Данные отклика для многофакторной линейной регрессии, заданные как числовой вектор с numObservations элементы.

Типы данных: double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Sigma2',2 задает оценку условного апостериорного распределения коэффициентов регрессии с учетом данных и что заданное отклонение нарушения порядка 2.
Опции для всех предыдущих распределений

свернуть все

Флаг для отображения сводных данных байесовских оценок в командной строке, заданный как разделенная разделенными запятой парами, состоящая из 'Display' и значение в этой таблице.

ЗначениеОписание
trueestimate печатает информацию оценки и таблицу, суммирующую байесовские оценки в командную строку.
falseestimate не печатается в командной строке.

Информация об оценке включает в себя способ оценки, фиксированные параметры, количество наблюдений и количество предикторов. Итоговая таблица содержит предполагаемые апостериорные средства и стандартные отклонения (квадратный корень апостериорной дисперсии), 95% справедливых достоверных интервалов, апостериорную вероятность того, что параметр больше 0, и описание апостериорного распределения (если известно).

Если вы задаете один из Beta или Sigma2, затем estimate включает вашу спецификацию в отображение, и соответствующие апостериорные оценки тривиальны.

Пример: 'Display',false

Типы данных: logical

Опции для всех предыдущих распределений, кроме эмпирических

свернуть все

Значение коэффициентов регрессии для условной оценки апостериорного распределения отклонения нарушения порядка, заданное как разделенная разделенными запятой парами, состоящая из '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' и положительный числовой скаляр. estimate оценки характеристик π (β | y, X, Sigma2), где y является y, X является X, и Sigma2 - значение 'Sigma2'.

Вы не можете задать Sigma2 и Beta одновременно.

По умолчанию, estimate не вычисляет характеристики условного апостериора β.

Пример: 'Sigma2',1

Типы данных: double

Опции для семиконъюгатных, эмпирических и пользовательских предшествующих распределений

свернуть все

Симуляция Монте-Карло скорректированный размер выборки, заданный как разделенная разделенными запятой парами, состоящая из 'NumDraws' и положительное целое число. estimate фактически рисует BurnIn + NumDraws*Thin выборки, но они основывают оценки на NumDraws выборки. Для получения дополнительной информации о том, как estimate уменьшает полную выборку Монте-Карло, см. Алгоритмы.

Если PriorMdl является semiconjugateblm модель и вы задаете Beta или Sigma2, затем MATLAB® игнорирует NumDraws.

Пример: 'NumDraws',1e7

Типы данных: double

Опции для Semiconjugate и пользовательских предыдущих распределений

свернуть все

Количество розыгрышей для удаления из начала выборки Монте-Карло для уменьшения переходных эффектов, заданное как разделенная разделенными запятой парами, состоящая из 'BurnIn' и неотрицательный скаляр. Для получения дополнительной информации о том, как estimate уменьшает полную выборку Монте-Карло, см. Алгоритмы.

Совет

Чтобы помочь вам задать соответствующий размер периода горения, определите степень переходного поведения в выборке Монте-Карло, указав 'BurnIn',0, симулируя несколько тысяч наблюдений с помощью simulate, а затем графическое изображение путей.

Пример: 'BurnIn',0

Типы данных: double

Множитель размера скорректированного Монте-Карло, заданный как разделенная разделенными запятой парами, состоящая из 'Thin' и положительное целое число.

Фактический размер выборки Монте-Карло BurnIn + NumDraws*Thin. После отбрасывания горения, estimate отбрасывает каждый Thin1 рисует, а затем сохраняет следующий. Для получения дополнительной информации о том, как estimate уменьшает полную выборку Монте-Карло, см. Алгоритмы.

Совет

Чтобы уменьшить потенциальную большую последовательную корреляцию в выборке Монте-Карло или уменьшить потребление памяти рисунков, сохраненных в PosteriorMdl, задайте большое значение для Thin.

Пример: 'Thin',5

Типы данных: double

Начальные значения коэффициентов регрессии для выборки Монте-Карло (MCMC) марковской цепи, заданные как разделенная разделенными запятой парами, состоящая из 'BetaStart' и числовой вектор-столбец с (PriorMdl.Intercept + PriorMdl.NumPredictors) элементы. По умолчанию BetaStart - обычная оценка методом наименьших квадратов (OLS).

Совет

Хорошей практикой является запуск estimate несколько раз с использованием различных начальных значений параметра. Проверьте, что решения из каждого запуска сходятся к аналогичным значениям.

Пример: 'BetaStart',[1; 2; 3]

Типы данных: double

Начальные значения отклонения нарушения порядка для выборки MCMC, заданные как разделенная разделенными запятой парами, состоящая из 'Sigma2Start' и положительный числовой скаляр. По умолчанию Sigma2Start - остаточная средняя квадратичная невязка OLS.

Совет

Хорошей практикой является запуск estimate несколько раз с использованием различных начальных значений параметра. Проверьте, что решения из каждого запуска сходятся к аналогичным значениям.

Пример: 'Sigma2Start',4

Типы данных: double

Опции для пользовательских предыдущих распределений

свернуть все

Репараметризация σ2 как логарифмический (σ2) во время апостериорной оценки и симуляции, заданные как разделенная разделенными запятой парами, состоящая из 'Reparameterize' и значение в этой таблице.

ЗначениеОписание
falseestimate не репараметризовывает σ2.
trueestimate репараметрирует σ2 как логарифмический (σ2). estimate преобразует результаты назад в исходную шкалу и не изменяет функциональную форму PriorMdl.LogPDF.

Совет

Если вы испытываете числовые нестабильности во время апостериорной оценки или симуляции σ2, затем задайте 'Reparameterize',true.

Пример: 'Reparameterize',true

Типы данных: logical

Дискретизатор MCMC, заданный как разделенная разделенными запятой парами, состоящая из 'Sampler' и значение в этой таблице.

ЗначениеОписание
'slice'Пробоотборник среза
'metropolis'Случайная прогулка Metropolis sampler
'hmc'Гамильтониан Монте-Карло (HMC) семплер

Совет

  • Чтобы повысить качество рисок MCMC, настройте дискретизатор.

    1. Перед вызовом estimate, задайте параметры настройки и их значения при помощи sampleroptions. Для примера укажите ширину пробоотборника среза width, использовать:

      options = sampleroptions('Sampler',"slice",'Width',width);

    2. Укажите объект, содержащий спецификации параметров настройки, возвращенные sampleroptions при помощи 'Options' аргумент пары "имя-значение". Например, чтобы использовать спецификации параметров настройки в options, задайте:

      'Options',options

  • Если вы задаете sampler HMC, то лучшая практика состоит в том, чтобы предоставить градиент для некоторых переменных, по крайней мере. estimate сортирует численные расчеты любых отсутствующих частных производных (NaN значения) в векторе градиента.

Пример: 'Sampler',"hmc"

Типы данных: string

Опции сэмплера, заданные как разделенная разделенными запятой парами, состоящая из 'Options' и массив структур, возвращенный sampleroptions. Использование 'Options' для определения дискретизатора MCMC и его значений параметров настройки.

Пример: 'Options',sampleroptions('Sampler',"hmc")

Типы данных: struct

Типичная ширина дискретизации-интервала вокруг текущего значения в маргинальных распределениях для дискретизатора среза, заданная как разделенная разделенными запятой парами, состоящая из '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]

Выходные аргументы

свернуть все

Байесовская линейная регрессионая модель, сохраняющая характеристики распределения, возвращенная как 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 содержит ту же информацию, что и отображение сводных данных оценок (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, содержащим все нарушения порядка. Эти предположения подразумевают, что вероятность данных является

    (β,σ2|y,x)=t=1Tϕ(yt;xtβ,σ2).

    ϕ (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 чёрные прямоугольники составляют выборку Монте-Карло.

    Sample reduced by

Вопросы совместимости

расширить все

Ошибки, начинающиеся в R2019b

Введенный в R2017a