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.
Чтобы избежать ошибки, обновите свой код путем выполнения этой процедуры.
Ищите свой код экземпляры в который estimate возвращает любые положения выходного аргумента после первого.
В идентифицированных экземплярах определите ли estimate возвращает оценки предельного или условного распределения. Если вызов estimate использует 'Beta' или 'Sigma2' аргумент пары "имя-значение", функция возвращает оценки условного распределения. В противном случае, it возвращает оценки предельного распределения.
Для экземпляров, возвращающих оценки предельного распределения:
Возвратите PosteriorMdl и Summary когда вы вызываете estimate.
Оцените крайнюю следующую статистику с помощью соответствующего кода в этой таблице.
| Выходной аргумент | 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); |
Для примеров смотрите Замену Удаленный Синтаксис Когда Оценка Аналитичного Крайний Следующий и Замену Удаленный Синтаксис Когда Оценка Числового Крайний Следующий.
Для экземпляров, возвращающих оценки условного распределения, необходимо возвратить сводную таблицу оценки Summary во втором положении выходного аргумента. Эта таблица описывает, как извлечь условные следующие оценки из Summary.
| Выходной аргумент | Оценка |
|---|---|
estBeta |
|
EstBetaCov |
|
estSigma2 |
|
estSigma2Var |
|
Для примера смотрите Замену Удаленный Синтаксис Когда Оценка Следующего Условного выражения.
В этом примере показано, как заменить удаленный синтаксис estimate когда это возвращает аналитическое крайнее следующее.
Рассмотрите модель линейной регрессии кратного, которая предсказывает США действительный валовой национальный продукт (GNPR) использование линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и действительная заработная плата (WR). Примите следующее:
Прерывание и три коэффициента регрессии являются случайными переменными с многомерным нормальным предшествующим условным выражением распределения на отклонении воздействия. Предшествующее среднее значение является 4-D нулевым вектором, и предшествующая ковариационная матрица является единичной матрицей 4 на 4, масштабируемой 10 000.
Отклонение воздействия является случайной переменной с обратной гаммой предшествующее распределение. Форма и значения масштабного коэффициента равняются 3 и 1, соответственно.
Создайте сопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Определите номер предикторов . Определите имена коэффициента регрессии к соответствующим именам переменных.
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 coefficientsestBeta = 4×1
-24.2494
4.3913
0.0011
2.4683
EstBetaCov = Summary.Covariances(1:(end - 1),1:(end - 1)) % Posterior covariance of coefficientsEstBetaCov = 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 varianceestSigma2 = 44.1347
estSigma2Var = Summary.Covariances(end,end) % Posterior variance of disturbance varianceestSigma2Var = 60.8709
В этом примере показано, как заменить удаленный синтаксис estimate когда это возвращает числовое крайнее следующее.
Рассмотрите модель линейной регрессии кратного, которая предсказывает США действительный валовой национальный продукт (GNPR) использование линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и действительная заработная плата (WR). Примите следующее:
Прерывание и три коэффициента регрессии являются случайными переменными с многомерным нормальным предшествующим условным выражением распределения на отклонении воздействия. Предшествующее среднее значение является 4-D нулевым вектором, и предшествующая ковариационная матрица является единичной матрицей 4 на 4, масштабируемой 10 000.
Отклонение воздействия является случайной переменной с обратной гаммой предшествующее распределение. Форма и значения масштабного коэффициента равняются 3 и 1, соответственно.
Создайте полусопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Задайте количество предикторов . Определите имена коэффициента регрессии к соответствующим именам переменных.
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 coefficientsestBeta = 4×1
-23.9999
4.3933
0.0011
2.4696
EstBetaCov = Summary.Covariances(1:(end - 1),1:(end - 1)) % Posterior covariance of coefficientsEstBetaCov = 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 varianceestSigma2 = 46.9242
estSigma2Var = Summary.Covariances(end,end) % Posterior variance of disturbance varianceestSigma2Var = 71.7952
В этом примере показано, как заменить удаленный синтаксис estimate когда это возвращает следующее условное выражение.
Рассмотрите модель линейной регрессии кратного, которая предсказывает США действительный валовой национальный продукт (GNPR) использование линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и действительная заработная плата (WR). Примите следующее:
Прерывание и три коэффициента регрессии являются случайными переменными с многомерным нормальным предшествующим условным выражением распределения на отклонении воздействия. Предшествующее среднее значение является 4-D нулевым вектором, и предшествующая ковариационная матрица является единичной матрицей 4 на 4, масштабируемой 10 000.
Отклонение воздействия является случайной переменной с обратной гаммой предшествующее распределение. Форма и значения масштабного коэффициента равняются 3 и 1, соответственно.
Создайте сопряженную предшествующую модель нормальной обратной гаммы для параметров линейной регрессии. Задайте количество предикторов . Определите имена коэффициента регрессии к соответствующим именам переменных.
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 coefficientsestBeta = 4×1
-24.2494
4.3913
0.0011
2.4683
EstBetaCov = Summary.Covariances(1:end - 1,1:end - 1) % Posterior covariance of coefficientsEstBetaCov = 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