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, масштабированной на 10000.
Нарушение порядка отклонения является случайной переменной с обратным гамма-априорным распределением. Форма и шкала значений параметров 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 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, масштабированной на 10000.
Нарушение порядка отклонения является случайной переменной с обратным гамма-априорным распределением. Форма и шкала значений параметров 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 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, масштабированной на 10000.
Нарушение порядка отклонения является случайной переменной с обратным гамма-априорным распределением. Форма и шкала значений параметров 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 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