Заменяя удаленные синтаксисы estimate

estimate функция Байесовых моделей conjugateblm линейной регрессии, semiconjugateblm, diffuseblm, empiricalblm, и customblm возвращает только предполагаемую модель и сводную таблицу оценки. Предыдущие и текущие синтаксисы для estimate :

[PosteriorMdl,estBeta,EstBetaCov,estSigma2,estSigma2Var,Summary] = estimate(...); % Now issues error 
[PosteriorMdl,Summary] = estimate(...);                                           % Supported

Запуск в R2019b, estimate возвращает предполагаемый объект модели в первом положении выходного аргумента и сводную таблицу оценки во втором положении выходного аргумента. Если вы задаете выходные аргументы в последующих положениях, то estimate проблемы эта ошибка:

Too many output arguments.

Чтобы избежать ошибки, обновите свой код путем выполнения этой процедуры.

  1. Ищите свой код экземпляры в который estimate возвращает любые положения выходного аргумента после первого.

  2. В идентифицированных экземплярах определите ли estimate возвращает оценки предельного или условного распределения. Если вызов estimate использует 'Beta' или 'Sigma2' аргумент пары "имя-значение", функция возвращает оценки условного распределения. В противном случае, it возвращает оценки предельного распределения.

  3. Для экземпляров, возвращающих оценки предельного распределения:

    1. Возвратите PosteriorMdl и Summary когда вы вызываете estimate.

    2. Оцените крайнюю следующую статистику с помощью соответствующего кода в этой таблице.

      Выходной аргументPosteriorMdl conjugateblm ОбъектPosteriorMdl empiricalblm Объект
      estBeta

      estBeta = PosteriorMdl.Mu;
      или
      estBeta = Summary.Mean(1:(end - 1));

      estBeta = Summary.Mean(1:(end - 1));
      или
      estBeta = mean(PosteriorMdl.BetaDraws,2);

      EstBetaCov

      EstBetaCov = Summary.Covariances(1:(end - 1),1:(end - 1));
      или
      EstBetaCov = PosteriorMdl.V/PosteriorMdl.B/(PosteriorMdl.A - 1);

      EstBetaCov = Summary.Covariances(1:(end - 1),1:(end - 1));
      или
      EstBetaCov = cov(PosteriorMdl.BetaDraws');

      estSigma2

      estSigma2 = Summary.Mean(end);
      или
      estSigma2 = 1/PosteriorMdl.B/(PosteriorMdl.A - 1);

      estSigma2 = Summary.Mean(end);
      или
      estSigma2 = mean(PosteriorMdl.Sigma2Draws);

      estSigma2Var

      estSigma2Var = Summary.Covariances(end,end);
      или
      estSigma2Var = 1/(PosteriorMdl.B^2*(PosteriorMdl.A - 1)^2*(PosteriorMdl.A - 2));

      estSigma2Var = Summary.Covariances(end,end);
      или
      estSigma2Var = var(PosteriorMdl.Sigma2Draws);

      Для примеров смотрите Замену Удаленный Синтаксис Когда Оценка Аналитичного Крайний Следующий и Замену Удаленный Синтаксис Когда Оценка Числового Крайний Следующий.

  4. Для экземпляров, возвращающих оценки условного распределения, необходимо возвратить сводную таблицу оценки Summary во втором положении выходного аргумента. Эта таблица описывает, как извлечь условные следующие оценки из Summary.

    Выходной аргументОценка
    estBeta

    estBeta = Summary.Mean(1:end – 1);

    EstBetaCov

    EstBetaCov = Summary.Covariances(1:end – 1,1:end – 1)

    estSigma2

    estSigma2 = Summary.Mean(end)

    estSigma2Var

    estSigma2Var = Summary.Covariances(end,end)

    Для примера смотрите Замену Удаленный Синтаксис Когда Оценка Следующего Условного выражения.

Замените удаленный синтаксис когда оценка аналитичного крайний следующий

В этом примере показано, как заменить удаленный синтаксис estimate когда это возвращает аналитическое крайнее следующее.

Рассмотрите модель линейной регрессии кратного, которая предсказывает США действительный валовой национальный продукт (GNPR) использование линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и действительная заработная плата (WR). Примите следующее:

  • Точка пересечения и три коэффициента регрессии являются случайными переменными с многомерным нормальным предшествующим условным выражением распределения на отклонении воздействия. Предшествующее среднее значение является 4-D нулевым вектором, и предшествующая ковариационная матрица является единичной матрицей 4 на 4, масштабируемой 10 000.

  • Отклонение воздействия является случайной переменной с обратной гаммой предшествующее распределение. Форма и значения масштабного коэффициента равняются 3 и 1, соответственно.

Создайте сопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Определите номер предикторов p. Определите имена коэффициента регрессии к соответствующим именам переменных.

p = 3;
PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',["IPI" "E" "WR"]);

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда предиктора и ответа.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable{:,'GNPR'};

Перед R2019b, estimate мог возвратить до шести выходных параметров, каждый обобщающий апостериорное распределение. Ранее поддерживаемый синтаксис:

[PosteriorMdl,estBeta,EstBetaCov,estSigma2,estSigma2Var,Summary] = estimate(PriorMdl,X,y);

Для R2019b, estimate поддержки, возвращающие только два выходных параметра: следующая модель PosteriorMdl и сводная таблица оценки Summary. Оцените крайнее апостериорное распределение при помощи обновленного синтаксиса. Возвратите следующую модель и сводную таблицу оценки.

[PosteriorMdl,Summary] = estimate(PriorMdl,X,y);
Method: Analytic posterior distributions
Number of observations: 62
Number of predictors:   4
Log marginal likelihood: -259.348
 
           |   Mean      Std          CI95        Positive       Distribution      
-----------------------------------------------------------------------------------
 Intercept | -24.2494  8.7821  [-41.514, -6.985]    0.003   t (-24.25, 8.65^2, 68) 
 IPI       |   4.3913  0.1414   [ 4.113,  4.669]    1.000   t (4.39, 0.14^2, 68)   
 E         |   0.0011  0.0003   [ 0.000,  0.002]    1.000   t (0.00, 0.00^2, 68)   
 WR        |   2.4683  0.3490   [ 1.782,  3.154]    1.000   t (2.47, 0.34^2, 68)   
 Sigma2    |  44.1347  7.8020   [31.427, 61.855]    1.000   IG(34.00, 0.00069)     
 

Вычислите следующие оценки при помощи новой процедуры.

estBeta = PosteriorMdl.Mu % Posterior mean of coefficients
estBeta = 4×1

  -24.2494
    4.3913
    0.0011
    2.4683

EstBetaCov = Summary.Covariances(1:(end - 1),1:(end - 1)) % Posterior covariance of coefficients
EstBetaCov = 4×4

   77.1246    0.7713   -0.0024    0.5311
    0.7713    0.0200   -0.0000   -0.0295
   -0.0024   -0.0000    0.0000   -0.0001
    0.5311   -0.0295   -0.0001    0.1218

estSigma2 = Summary.Mean(end) % Posterior mean of disturbance variance
estSigma2 = 44.1347
estSigma2Var = Summary.Covariances(end,end) % Posterior variance of disturbance variance
estSigma2Var = 60.8709

Замените удаленный синтаксис когда оценка числового крайний следующий

В этом примере показано, как заменить удаленный синтаксис estimate когда это возвращает числовое крайнее следующее.

Рассмотрите модель линейной регрессии кратного, которая предсказывает США действительный валовой национальный продукт (GNPR) использование линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и действительная заработная плата (WR). Примите следующее:

  • Точка пересечения и три коэффициента регрессии являются случайными переменными с многомерным нормальным предшествующим условным выражением распределения на отклонении воздействия. Предшествующее среднее значение является 4-D нулевым вектором, и предшествующая ковариационная матрица является единичной матрицей 4 на 4, масштабируемой 10 000.

  • Отклонение воздействия является случайной переменной с обратной гаммой предшествующее распределение. Форма и значения масштабного коэффициента равняются 3 и 1, соответственно.

Создайте полусопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Задайте количество предикторов p. Определите имена коэффициента регрессии к соответствующим именам переменных.

p = 3;
PriorMdl = bayeslm(p,'ModelType','semiconjugate','VarNames',["IPI" "E" "WR"]);

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда предиктора и ответа.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable{:,'GNPR'};

Перед R2019b, estimate мог возвратить до шести выходных параметров, каждый обобщающий апостериорное распределение. Ранее поддерживаемый синтаксис:

[PosteriorMdl,estBeta,EstBetaCov,estSigma2,estSigma2Var,Summary] = estimate(PriorMdl,X,y);

Для R2019b, estimate поддержки, возвращающие только два выходных параметра: следующая модель PosteriorMdl и сводная таблица оценки Summary. Оцените крайнее апостериорное распределение при помощи обновленного синтаксиса. Возвратите следующую модель и сводную таблицу оценки.

[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.9999  9.0499  [-41.852, -6.163]    0.003     Empirical  
 IPI       |   4.3933  0.1445   [ 4.112,  4.677]    1.000     Empirical  
 E         |   0.0011  0.0003   [ 0.000,  0.002]    1.000     Empirical  
 WR        |   2.4696  0.3571   [ 1.764,  3.169]    1.000     Empirical  
 Sigma2    |  46.9242  8.4732   [33.244, 66.309]    1.000     Empirical  
 

Вычислите следующие оценки при помощи новой процедуры.

estBeta = Summary.Mean(1:(end - 1)) % Posterior mean of coefficients
estBeta = 4×1

  -23.9999
    4.3933
    0.0011
    2.4696

EstBetaCov = Summary.Covariances(1:(end - 1),1:(end - 1)) % Posterior covariance of coefficients
EstBetaCov = 4×4

   81.9002    0.8161   -0.0025    0.5843
    0.8161    0.0209   -0.0000   -0.0303
   -0.0025   -0.0000    0.0000   -0.0001
    0.5843   -0.0303   -0.0001    0.1275

estSigma2 = Summary.Mean(end) % Posterior mean of disturbance variance
estSigma2 = 46.9242
estSigma2Var = Summary.Covariances(end,end) % Posterior variance of disturbance variance
estSigma2Var = 71.7952

Замените удаленный синтаксис когда оценка следующего условного выражения

В этом примере показано, как заменить удаленный синтаксис estimate когда это возвращает следующее условное выражение.

Рассмотрите модель линейной регрессии кратного, которая предсказывает США действительный валовой национальный продукт (GNPR) использование линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и действительная заработная плата (WR). Примите следующее:

  • Точка пересечения и три коэффициента регрессии являются случайными переменными с многомерным нормальным предшествующим условным выражением распределения на отклонении воздействия. Предшествующее среднее значение является 4-D нулевым вектором, и предшествующая ковариационная матрица является единичной матрицей 4 на 4, масштабируемой 10 000.

  • Отклонение воздействия является случайной переменной с обратной гаммой предшествующее распределение. Форма и значения масштабного коэффициента равняются 3 и 1, соответственно.

Создайте сопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Задайте количество предикторов p. Определите имена коэффициента регрессии к соответствующим именам переменных.

p = 3;
PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',["IPI" "E" "WR"]);

Загрузите набор данных Нельсона-Плоссера. Создайте переменные для ряда предиктора и ответа.

load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable{:,'GNPR'};

Перед R2019b, estimate мог возвратить до шести выходных параметров; последние пять обобщают условное апостериорное распределение. Ранее поддерживаемый синтаксис:

[~,estBeta,EstBetaCov,estSigma2,estSigma2Var,Summary] = estimate(PriorMdl,X,y);

Для R2019b, estimate поддержки, возвращающие только два выходных параметра. Условные следующие оценки находятся в сводной таблице оценки во втором положении выходного аргумента.

Оцените условное апостериорное распределение коэффициентов регрессии, учитывая, что отклонение воздействия равняется 10. Возвратите сводную таблицу оценки при помощи обновленного синтаксиса.

[~,Summary] = estimate(PriorMdl,X,y,'Sigma2',10);
Method: Analytic posterior distributions
Conditional variable: Sigma2 fixed at  10
Number of observations: 62
Number of predictors:   4
 
           |   Mean      Std          CI95         Positive     Distribution    
--------------------------------------------------------------------------------
 Intercept | -24.2494  4.1803  [-32.443, -16.056]    0.000   N (-24.25, 4.18^2) 
 IPI       |   4.3913  0.0673   [ 4.259,  4.523]     1.000   N (4.39, 0.07^2)   
 E         |   0.0011  0.0002   [ 0.001,  0.001]     1.000   N (0.00, 0.00^2)   
 WR        |   2.4683  0.1661   [ 2.143,  2.794]     1.000   N (2.47, 0.17^2)   
 Sigma2    |    10      0       [10.000, 10.000]     1.000   Fixed value        
 

Вычислите следующие оценки при помощи новой процедуры.

estBeta = Summary.Mean(1:end - 1) % Posterior mean of coefficients
estBeta = 4×1

  -24.2494
    4.3913
    0.0011
    2.4683

EstBetaCov = Summary.Covariances(1:end - 1,1:end - 1) % Posterior covariance of coefficients
EstBetaCov = 4×4

   17.4748    0.1748   -0.0005    0.1203
    0.1748    0.0045   -0.0000   -0.0067
   -0.0005   -0.0000    0.0000   -0.0000
    0.1203   -0.0067   -0.0000    0.0276

Смотрите также

Объекты

Функции